summaryrefslogtreecommitdiff
path: root/CMakeLists.txt
blob: 8bb667d36d961a2995085b4e9586a56b5a57596b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
PROJECT(buxton2)

# check variables
IF(NOT DEFINED VERSION)
	MESSAGE(FATAL_ERROR "VERSION is not defined")
ENDIF()
STRING(REGEX MATCH "^[0-9]*" MAJVER ${VERSION})

IF(NOT DEFINED LIB_INSTALL_DIR)
	SET(LIB_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/lib)
	MESSAGE(WARNING "LIB_INSTALL_DIR is not defined, default value is used")
ENDIF()
IF(NOT DEFINED INCLUDE_INSTALL_DIR)
	SET(INCLUDE_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/include)
	MESSAGE(WARNING "INCLUDE_INSTALL_DIR is not defined, default value is used")
ENDIF()

OPTION(NDEBUG "Assertions disabled" TRUE)
IF(NDEBUG)
	ADD_DEFINITIONS(-DNDEBUG)
ENDIF()

OPTION(DEBUG_LOG "Debug log enabled" FALSE)
IF(DEBUG_LOG)
	ADD_DEFINITIONS(-DDEBUG_LOG)
ENDIF()

OPTION(BUILD_EXAMPLE "Build example code" FALSE)

IF(NOT "${CONFPATH}" STREQUAL "")
	ADD_DEFINITIONS(-DCONFPATH="${CONFPATH}")
ENDIF()
IF(NOT "${MODULE_DIR}" STREQUAL "")
	ADD_DEFINITIONS(-DMODULE_DIR="${MODULE_DIR}")
ENDIF()
IF(NOT "${BASE_DB_DIR}" STREQUAL "")
	ADD_DEFINITIONS(-DBASE_DB_DIR="${BASE_DB_DIR}")
ENDIF()
IF(NOT "${DB_DIR}" STREQUAL "")
	ADD_DEFINITIONS(-DDB_DIR="${DB_DIR}")
ENDIF()
IF(NOT "${TMPFS_DIR}" STREQUAL "")
	ADD_DEFINITIONS(-DTMPFS_DIR="${TMPFS_DIR}")
ENDIF()
IF(NOT "${SOCKPATH}" STREQUAL "")
	ADD_DEFINITIONS(-DSOCKPATH="${SOCKPATH}")
ENDIF()

# pkg-config
SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules/")
INCLUDE(ApplyPkgConfig)
INCLUDE(FindPkgConfig)

PKG_CHECK_MODULES(PKGS REQUIRED glib-2.0>=2.36 dlog)
PKG_CHECK_MODULES(GLIB_DEPS REQUIRED glib-2.0>=2.36 dlog)
PKG_CHECK_MODULES(GMOCK_DEPS REQUIRED gmock)
PKG_CHECK_MODULES(SQLITE3_DEPS REQUIRED sqlite3)
PKG_CHECK_MODULES(TZPLATFORM_CONFIG_DEPS REQUIRED libtzplatform-config)
PKG_CHECK_MODULES(SYSTEMD_DEPS REQUIRED libsystemd)
PKG_CHECK_MODULES(CYNARA_CLIENT_DEPS REQUIRED cynara-client-async)
PKG_CHECK_MODULES(GIO_DEPS REQUIRED gio-2.0)
PKG_CHECK_MODULES(VCONF_INTERNAL_KEYS_DEPS REQUIRED vconf-internal-keys)
PKG_CHECK_MODULES(DLOG_DEPS REQUIRED dlog)

FOREACH(flag ${PKGS_CFLAGS})
	SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
ENDFOREACH()

SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -Wall")
MESSAGE("CFLAGS: ${CMAKE_C_FLAGS}")

ENABLE_TESTING()
SET(TARGET_BUXTON2_UNIT_TEST "buxton2-unit-test")

# build subdirectories
INCLUDE_DIRECTORIES(common)

ADD_SUBDIRECTORY(daemon)
ADD_SUBDIRECTORY(backend)
ADD_SUBDIRECTORY(lib)
ADD_SUBDIRECTORY(client)
ADD_SUBDIRECTORY(vconf-compat)
ADD_SUBDIRECTORY(test)

IF(BUILD_EXAMPLE)
	ADD_SUBDIRECTORY(example)
ENDIF()

INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/scripts/buxton_dump.sh DESTINATION /opt/etc/dump.d/module.d/)