1
project(akabeicore)
2
3
cmake_minimum_required(VERSION 2.6.0)
4
set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/modules")
5
6
# Compiles with debugging symbols (Debug mode)
7
if (CMAKE_COMPILER_IS_GNUCC)
8
    set(CMAKE_C_FLAGS_DEBUG "-ggdb")
9
endif(CMAKE_COMPILER_IS_GNUCC)
10
11
if(COMMAND cmake_policy)
12
   cmake_policy(SET CMP0003 NEW)
13
endif(COMMAND cmake_policy)
14
15
set(MAJOR_AKABEI_VERSION 0 CACHE INT "Akabei’s major version number" FORCE)
16
set(MINOR_AKABEI_VERSION 0 CACHE INT "Akabei’s minor version number" FORCE)
17
set(PATCH_AKABEI_VERSION 1 CACHE INT "Akabei’s patch version number" FORCE)
18
set(FIX_AKABEI_VERSION 0 CACHE INT "Akabei’s fix version number" FORCE)
19
set(AKABEI_VERSION_STRING "${MAJOR_AKABEI_VERSION}.${MINOR_AKABEI_VERSION}.${PATCH_AKABEI_VERSION}.${FIX_AKABEI_VERSION}")
20
21
# requires minimal Qt 4.4
22
set(QT_MIN_VERSION "4.4.0")
23
24
find_package(Qt4 REQUIRED)
25
find_package(LibArchive REQUIRED)
26
find_package(Sqlite REQUIRED)
27
28
add_definitions(${QT_DEFINITIONS} -W -Wall)
29
30
include_directories(
31
    BEFORE SYSTEM
32
    ${QT_INCLUDES}
33
    ${LIBARCHIVE_INCLUDE_DIR}
34
    ${CMAKE_SOURCE_DIR}
35
    ${CMAKE_CURRENT_BINARY_DIR}
36
    ${CMAKE_CURRENT_BINARY_DIR}/lib
37
    ${CMAKE_SOURCE_DIR}/lib
38
)
39
40
# Define install directories
41
set(DATA_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/share/akabei" CACHE "Akabei data installation directory" STRING)
42
set(BIN_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/bin" CACHE "Akabei binary installation directory" STRING)
43
set(LIB_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/lib" CACHE "Akabei library installation directory" STRING)
44
set(INCLUDES_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/include/akabeicore" CACHE "Akabei includes installation directory" STRING)
45
set(STATE_DIR "/var" CACHE "Directory to store cache data and log files, usually under ${STATE_DIR}/{cache,log,etc...})" STRING)
46
set(CONFIGURATION_DIR "/var" CACHE "Directory to store Akabei’s configuration files" STRING)
47
48
option(BUILD_TESTS "Builds various tests and examples for Akabei" ON)
49
50
CONFIGURE_FILE(
51
    "${CMAKE_CURRENT_SOURCE_DIR}/akabeicoreconfig.h.cmake"
52
    "${CMAKE_CURRENT_BINARY_DIR}/akabeicoreconfig.h"
53
    IMMEDIATE @ONLY)
54
55
add_subdirectory(lib)
56
add_subdirectory(tools)
57
add_subdirectory(etc)
58
add_subdirectory(docs)
59
60
include(UseDoxygen)
61
62
### Source tarball autogeneration ###
63
set(ARCHIVE_NAME ${CMAKE_PROJECT_NAME}-${AKABEI_VERSION_STRING})
64
add_custom_target(dist
65
    COMMAND git archive --prefix=${ARCHIVE_NAME}/ HEAD
66
        | bzip2 > ${CMAKE_BINARY_DIR}/${ARCHIVE_NAME}.tar.bz2
67
    WORKING_DIRECTORY ${CMAKE_SOURCE_DIR})
68
69
# uninstall target
70
configure_file(
71
    "${CMAKE_CURRENT_SOURCE_DIR}/cmake_uninstall.cmake.in"
72
    "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake"
73
    IMMEDIATE @ONLY)
74
75
add_custom_target(uninstall
76
    COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake)