CMAKE_MINIMUM_REQUIRED(VERSION 2.6) SET (this_target_pool launchpad_pool) SET (this_target_loader launchpad_loader) SET (this_target_lib launchpad) SET (VERSION_MAJOR 0) INCLUDE(FindPkgConfig) PKG_CHECK_MODULES(${this_target_pool} REQUIRED dlog libsystemd-daemon security-manager bundle gio-2.0 ttrace vconf libtzplatform-config libcap ) FOREACH(flag ${${this_target_pool}_CFLAGS}) SET(EXTRA_CFLAGS_pool "${EXTRA_CFLAGS_pool} ${flag}") ENDFOREACH(flag) PKG_CHECK_MODULES(${this_target_loader} REQUIRED dlog ecore elementary security-manager bundle aul vconf buxton2 libsystemd-daemon ) FOREACH(flag ${${this_target_loader}_CFLAGS}) SET(EXTRA_CFLAGS_loader "${EXTRA_CFLAGS_loader} ${flag}") ENDFOREACH(flag) PKG_CHECK_MODULES(${this_target_lib} REQUIRED dlog bundle aul security-manager ) FOREACH(flag ${${this_target_lib}_CFLAGS}) SET(EXTRA_CFLAGS_lib "${EXTRA_CFLAGS_lib} ${flag}") ENDFOREACH(flag) SET(EXTRA_CFLAGS_common "${EXTRA_CFLAGS_common} -Wl,-zdefs" ) SET(EXTRA_CFLAGS_common "${EXTRA_CFLAGS_common} -fvisibility=hidden") SET(EXTRA_CFLAGS_common "${EXTRA_CFLAGS_common} -fPIE") SET(EXTRA_CFLAGS_common "${EXTRA_CFLAGS_common} -fdata-sections -ffunction-sections -Wl,--gc-sections") SET(EXTRA_CFLAGS_common "${EXTRA_CFLAGS_common} -D_FILE_OFFSET_BITS=64") SET(EXTRA_CFLAGS_common "${EXTRA_CFLAGS_common} -Werror") SET(EXTRA_CFLAGS_pool "${EXTRA_CFLAGS_pool} ${EXTRA_CFLAGS_common}") SET(EXTRA_CFLAGS_loader "${EXTRA_CFLAGS_loader} ${EXTRA_CFLAGS_common}") SET(EXTRA_CFLAGS_lib "${EXTRA_CFLAGS_lib} ${EXTRA_CFLAGS_common}") SET(CMAKE_C_FLAGS_DEBUG "-O0 -g") SET(CMAKE_C_FLAGS_RELEASE "-O2") SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed") ADD_DEFINITIONS("-DSHARE_PREFIX=\"/usr/share/aul\"") IF(_APPFW_FEATURE_PRIORITY_CHANGE) ADD_DEFINITIONS("-D_APPFW_FEATURE_PRIORITY_CHANGE") ENDIF(_APPFW_FEATURE_PRIORITY_CHANGE) IF(_TIZEN_FEATURE_SET_PERSONALITY_32) ADD_DEFINITIONS("-DTIZEN_FEATURE_SET_PERSONALITY_32") ENDIF(_TIZEN_FEATURE_SET_PERSONALITY_32) ADD_DEFINITIONS("-DLAUNCHPAD_LOG") ADD_DEFINITIONS("-DPRELOAD_ACTIVATE") ADD_DEFINITIONS("-DPREEXEC_ACTIVATE") #ADD_DEFINITIONS("-DPERF_ACTIVATE") INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/inc) # launchpad-loader SET(LAUNCHPAD_LOADER "launchpad-loader") SET(${LAUNCHPAD_LOADER}_SOURCE_FILES src/launchpad_loader.c src/launchpad_common.c src/launchpad_lib.c ) ADD_EXECUTABLE(${LAUNCHPAD_LOADER} ${${LAUNCHPAD_LOADER}_SOURCE_FILES}) # To support 2.x applications which use their own shared libraries. # Since we cannot set LD_LIBRARY_PATH directly by security issue, we make the # dynamic linker looks in the CWD forcely. TARGET_LINK_LIBRARIES(${LAUNCHPAD_LOADER} "-ldl -Wl,-rpath,:") TARGET_LINK_LIBRARIES(${LAUNCHPAD_LOADER} ${${this_target_loader}_LDFLAGS} "-pie") SET_TARGET_PROPERTIES(${LAUNCHPAD_LOADER} PROPERTIES COMPILE_FLAGS ${EXTRA_CFLAGS_loader}) SET_TARGET_PROPERTIES(${LAUNCHPAD_LOADER} PROPERTIES SKIP_BUILD_RPATH TRUE ) # remove rpath option that is automatically generated by cmake. INSTALL(TARGETS ${LAUNCHPAD_LOADER} DESTINATION bin) # launchpad-process-pool SET(LAUNCHPAD_PROCESS_POOL "launchpad-process-pool") SET(${LAUNCHPAD_PROCESS_POOL}_SOURCE_FILES src/launchpad.c src/launchpad_common.c src/loader_info.c src/launcher_info.c src/debugger_info.c src/launchpad_debug.c src/launchpad_signal.c ) ADD_EXECUTABLE(${LAUNCHPAD_PROCESS_POOL} ${${LAUNCHPAD_PROCESS_POOL}_SOURCE_FILES}) TARGET_LINK_LIBRARIES(${LAUNCHPAD_PROCESS_POOL} ${${this_target_pool}_LDFLAGS} "-pie") SET_TARGET_PROPERTIES(${LAUNCHPAD_PROCESS_POOL} PROPERTIES COMPILE_FLAGS ${EXTRA_CFLAGS_pool}) SET_TARGET_PROPERTIES(${LAUNCHPAD_PROCESS_POOL} PROPERTIES SKIP_BUILD_RPATH TRUE ) # remove rpath option that is automatically generated by cmake. CONFIGURE_FILE(packaging/default.debugger.in packaging/default.debugger @ONLY) INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/packaging/default.debugger DESTINATION share/aul) INSTALL(TARGETS ${LAUNCHPAD_PROCESS_POOL} DESTINATION bin) CONFIGURE_FILE(packaging/default.loader.in packaging/default.loader @ONLY) INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/packaging/default.loader DESTINATION share/aul) # liblaunchpad SET(LAUNCHPAD_LIB "launchpad") ADD_LIBRARY(${LAUNCHPAD_LIB} SHARED src/launchpad_lib.c src/launchpad_common.c ) SET_TARGET_PROPERTIES(${LAUNCHPAD_LIB} PROPERTIES SOVERSION ${VERSION_MAJOR}) SET_TARGET_PROPERTIES(${LAUNCHPAD_LIB} PROPERTIES VERSION ${VERSION}) SET_TARGET_PROPERTIES(${LAUNCHPAD_LIB} PROPERTIES COMPILE_FLAGS ${EXTRA_CFLAGS_lib}) TARGET_LINK_LIBRARIES(${LAUNCHPAD_LIB} ${${this_target_lib}_LDFLAGS} "-ldl") INSTALL(TARGETS ${LAUNCHPAD_LIB} DESTINATION ${LIB_INSTALL_DIR} COMPONENT RuntimeLibraries) INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/inc/launchpad.h DESTINATION include/launchpad) CONFIGURE_FILE(launchpad.pc.in launchpad.pc @ONLY) INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/launchpad.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)