1 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
3 SET(REQUIRES_LIST ${REQUIRES_LIST}
13 IF("${ENABLE_DATABASE}" STREQUAL "YES")
14 SET(REQUIRES_LIST ${REQUIRES_LIST} sqlite3)
17 INCLUDE(FindPkgConfig)
18 PKG_CHECK_MODULES(stc_pkgs REQUIRED "${REQUIRES_LIST}")
20 FOREACH(flag ${stc_pkgs_CFLAGS})
21 SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
24 SET(SOURCE_DIR ${CMAKE_SOURCE_DIR}/src)
25 SET(HELPER_SOURCE_DIR ${SOURCE_DIR}/helper)
26 SET(DATABASE_SOURCE_DIR ${SOURCE_DIR}/database)
27 SET(MONITOR_SOURCE_DIR ${SOURCE_DIR}/monitor)
28 SET(CONFIGURE_SOURCE_DIR ${SOURCE_DIR}/configure)
29 SET(LIMITATION_SOURCE_DIR ${SOURCE_DIR}/limitation)
30 SET(PLUGIN_DIR ${CMAKE_SOURCE_DIR}/plugin)
32 INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include)
33 INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/interfaces)
35 INCLUDE_DIRECTORIES(${SOURCE_DIR})
36 INCLUDE_DIRECTORIES(${HELPER_SOURCE_DIR})
38 INCLUDE_DIRECTORIES(${DATABASE_SOURCE_DIR})
39 INCLUDE_DIRECTORIES(${DATABASE_SOURCE_DIR}/include)
41 INCLUDE_DIRECTORIES(${MONITOR_SOURCE_DIR})
42 INCLUDE_DIRECTORIES(${MONITOR_SOURCE_DIR}/include)
44 INCLUDE_DIRECTORIES(${CONFIGURE_SOURCE_DIR})
45 INCLUDE_DIRECTORIES(${CONFIGURE_SOURCE_DIR}/include)
47 INCLUDE_DIRECTORIES(${LIMITATION_SOURCE_DIR})
48 INCLUDE_DIRECTORIES(${LIMITATION_SOURCE_DIR}/include)
50 INCLUDE_DIRECTORIES(${PLUGIN_DIR}/include)
52 FILE(GLOB SOURCE_SRCS ${SOURCE_DIR}/*.c)
53 FILE(GLOB HELPER_SRCS ${HELPER_SOURCE_DIR}/*.c)
54 FILE(GLOB MONITOR_SRCS ${MONITOR_SOURCE_DIR}/*.c)
55 FILE(GLOB CONFIGURE_SRCS ${CONFIGURE_SOURCE_DIR}/*.c)
56 FILE(GLOB LIMITATION_SRCS ${LIMITATION_SOURCE_DIR}/*.c)
58 SET(SRCS ${SRCS} ${SOURCE_SRCS} ${HELPER_SRCS} ${MONITOR_SRCS} ${CONFIGURE_SRCS} ${LIMITATION_SRCS})
60 IF("${ENABLE_DATABASE}" STREQUAL "YES")
61 FILE(GLOB DATABASE_SRCS ${DATABASE_SOURCE_DIR}/*.c)
62 FILE(GLOB DATABASE_TABLES_SRCS ${DATABASE_SOURCE_DIR}/tables/*.c)
64 SET(SRCS ${SRCS} ${DATABASE_SRCS} ${DATABASE_TABLES_SRCS})
66 INSTALL(FILES ${DATA_DIR}/traffic_db.sql DESTINATION /usr/share)
69 SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -fpic -Wall -Werror-implicit-function-declaration -fvisibility=hidden")
70 SET(ARM_CFLAGS "${ARM_CFLAGS} -mapcs -mabi=aapcs-linux -msoft-float -Uarm -fpic")
71 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}")
73 SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed -pie")
75 ADD_DEFINITIONS("-DUSE_DLOG")
76 ADD_DEFINITIONS("-DDATABASE_FULL_PATH=\"${DATABASE_FULL_PATH}\"")
78 SET(SRCS ${SRCS} ${INTERFACES}/generated-code.c)
79 SET_SOURCE_FILES_PROPERTIES(${INTERFACES}/generated-code.c PROPERTIES GENERATED TRUE)
81 ADD_EXECUTABLE(${PROJECT_NAME} ${SRCS})
82 TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${stc_pkgs_LDFLAGS} -ldl)
83 INSTALL(TARGETS ${PROJECT_NAME} RUNTIME DESTINATION ${BIN_DIR})
84 ADD_DEPENDENCIES(${PROJECT_NAME} GENERATED_DBUS_CODE)
86 ADD_SUBDIRECTORY(utils)