CMAKE_MINIMUM_REQUIRED(VERSION 2.8) PROJECT(aul) SET(PREFIX ${CMAKE_INSTALL_PREFIX}) SET(BINDIR "${CMAKE_INSTALL_PREFIX}/bin") SET(LIBDIR ${LIB_INSTALL_DIR}) SET(INCLUDEDIR "\${prefix}/include") SET(EXEC_PREFIX "\${prefix}") ADD_DEFINITIONS("-DSHARE_PREFIX=\"${SHARE_INSTALL_PREFIX}/aul\"") ADD_DEFINITIONS("-DAPPSVC_DB_VERSION=\"${APPSVC_DB_VERSION}\"") ADD_DEFINITIONS("-DCOMPONENT_DB_VERSION=\"${COMPONENT_DB_VERSION}\"") ADD_DEFINITIONS("-DLIBDIR=\"${LIBDIR}\"") ## Compile flags SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wl,-zdefs -fvisibility=hidden -g -Wall -Werror -fpic ") SET(CMAKE_C_FLAGS_DEBUG "-O0 -g") SET(CMAKE_C_FLAGS_RELEASE "-O2") SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_C_FLAGS} -std=c++17") SET(CMAKE_CXX_FLAGS_DEBUG "-O0 -g") SET(CMAKE_CXX_FLAGS_RELEASE "-O2") SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed") SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules/") ## Target SET(TARGET_AUL "aul") SET(TARGET_AUL_SERVER "aul-server") ENABLE_TESTING() SET(TARGET_AUL_UNIT_TESTS "aul-unit-tests") SET(TARGET_APP_CONTROL_TESTS "app-control-tests") INCLUDE(FindPkgConfig) INCLUDE(ApplyPkgConfig) PKG_CHECK_MODULES(BUNDLE_DEPS REQUIRED bundle) PKG_CHECK_MODULES(CAPI_SYSTEM_INFO_DEPS REQUIRED capi-system-info) PKG_CHECK_MODULES(CAPI_SYSTEM_RESOURCE_DEPS REQUIRED capi-system-resource) PKG_CHECK_MODULES(DLOG_DEPS REQUIRED dlog) PKG_CHECK_MODULES(GIO_DEPS REQUIRED gio-2.0) PKG_CHECK_MODULES(GLIB_DEPS REQUIRED glib-2.0) PKG_CHECK_MODULES(GMOCK_DEPS REQUIRED gmock) PKG_CHECK_MODULES(INIPARSER_DEPS REQUIRED iniparser) PKG_CHECK_MODULES(LIBSMACK_DEPS REQUIRED libsmack) PKG_CHECK_MODULES(LIBTZPLATFORM_CONFIG_DEPS REQUIRED libtzplatform-config) PKG_CHECK_MODULES(LIBXML_DEPS REQUIRED libxml-2.0) PKG_CHECK_MODULES(PARCEL_DEPS REQUIRED parcel) PKG_CHECK_MODULES(PKGMGR_INFO_DEPS REQUIRED pkgmgr-info) PKG_CHECK_MODULES(PKGMGR_INSTALLER_DEPS REQUIRED pkgmgr-installer) PKG_CHECK_MODULES(SQLITE3_DEPS REQUIRED sqlite3) PKG_CHECK_MODULES(STORAGE_DEPS REQUIRED storage) PKG_CHECK_MODULES(TTRACE_DEPS REQUIRED ttrace) PKG_CHECK_MODULES(UUID_DEPS REQUIRED uuid) PKG_CHECK_MODULES(VCONF_DEPS REQUIRED vconf) PKG_CHECK_MODULES(XDGMIME_DEPS REQUIRED xdgmime) ## Target sources AUX_SOURCE_DIRECTORY(src SRCS) AUX_SOURCE_DIRECTORY(aul AUL_SRCS) AUX_SOURCE_DIRECTORY(aul/api AUL_API_SRCS) AUX_SOURCE_DIRECTORY(aul/app_control AUL_APP_CONTROL_SRCS) AUX_SOURCE_DIRECTORY(aul/app_group AUL_APP_GROUP_SRCS) AUX_SOURCE_DIRECTORY(aul/app_info AUL_APP_INFO_SRCS) AUX_SOURCE_DIRECTORY(aul/app_manager AUL_APP_MANAGER_SRCS) AUX_SOURCE_DIRECTORY(aul/common AUL_COMMON_SRCS) AUX_SOURCE_DIRECTORY(aul/component AUL_COMPONENT_SRCS) AUX_SOURCE_DIRECTORY(aul/socket AUL_SOCKET_SRCS) ADD_LIBRARY(${TARGET_AUL} SHARED ${SRCS} ${AUL_SRCS} ${AUL_API_SRCS} ${AUL_APP_CONTROL_SRCS} ${AUL_APP_GROUP_SRCS} ${AUL_APP_MANAGER_SRCS} ${AUL_APP_INFO_SRCS} ${AUL_COMMON_SRCS} ${AUL_COMPONENT_SRCS} ${AUL_SOCKET_SRCS} ${AUL_BOOT_SEQUENCE_SRCS} ) TARGET_INCLUDE_DIRECTORIES(${TARGET_AUL} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/include ${CMAKE_CURRENT_SOURCE_DIR}/include/internal ${CMAKE_CURRENT_SOURCE_DIR}/aul/ ${CMAKE_CURRENT_SOURCE_DIR}/aul/api ${CMAKE_CURRENT_SOURCE_DIR}/aul/app_control ${CMAKE_CURRENT_SOURCE_DIR}/aul/app_manager ${CMAKE_CURRENT_SOURCE_DIR}/aul/common ${CMAKE_CURRENT_SOURCE_DIR}/aul/component ${CMAKE_CURRENT_SOURCE_DIR}/aul/socket ) SET_TARGET_PROPERTIES(${TARGET_AUL} PROPERTIES SOVERSION ${MAJORVER}) SET_TARGET_PROPERTIES(${TARGET_AUL} PROPERTIES VERSION ${FULLVER}) APPLY_PKG_CONFIG(${TARGET_AUL} PUBLIC BUNDLE_DEPS CAPI_SYSTEM_INFO_DEPS CAPI_SYSTEM_RESOURCE_DEPS DLOG_DEPS GIO_DEPS GLIB_DEPS INIPARSER_DEPS LIBSMACK_DEPS LIBTZPLATFORM_CONFIG_DEPS LIBXML_DEPS PARCEL_DEPS PKGMGR_INFO_DEPS STORAGE_DEPS TTRACE_DEPS UUID_DEPS VCONF_DEPS XDGMIME_DEPS ) INSTALL(TARGETS ${TARGET_AUL} DESTINATION ${LIB_INSTALL_DIR} COMPONENT RuntimeLibraries) # pkgconfig file CONFIGURE_FILE(aul.pc.in aul.pc @ONLY) CONFIGURE_FILE(feature/preexec_list.txt.in feature/preexec_list.txt @ONLY) CONFIGURE_FILE(data/appsvc_db.sql.in data/appsvc_db.sql @ONLY) CONFIGURE_FILE(scripts/12_appsvc-add.post.in scripts/12_appsvc-add.post @ONLY) CONFIGURE_FILE(scripts/501.appsvc_db_upgrade.sh.in scripts/501.appsvc_db_upgrade.sh @ONLY) CONFIGURE_FILE(scripts/upgrade/1_appsvc_db_upgrade.sh.in scripts/upgrade/1_appsvc_db_upgrade.sh @ONLY) CONFIGURE_FILE(scripts/upgrade/2_appsvc_db_upgrade.sh.in scripts/upgrade/2_appsvc_db_upgrade.sh @ONLY) INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/scripts/501.appsvc_db_upgrade.sh DESTINATION /usr/share/upgrade/scripts) INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/scripts/upgrade/1_appsvc_db_upgrade.sh DESTINATION /etc/aul/upgrade/scripts) INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/scripts/upgrade/2_appsvc_db_upgrade.sh DESTINATION /etc/aul/upgrade/scripts) INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/aul.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig) INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/feature/preexec_list.txt DESTINATION ${SHARE_INSTALL_PREFIX}/aul ) INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/data/miregex DESTINATION ${SHARE_INSTALL_PREFIX}/aul ) INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/aul.conf DESTINATION /etc/dbus-1/system.d) INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/include/ DESTINATION include/aul FILES_MATCHING PATTERN "*.h" ) INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/aul/api/ DESTINATION include/aul/api FILES_MATCHING PATTERN "*.h" ) ## Sub directories ADD_SUBDIRECTORY(parser) ADD_SUBDIRECTORY(server) ADD_SUBDIRECTORY(test) ADD_SUBDIRECTORY(tool)