1 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
2 SET (this_target_pool launchpad_pool)
3 SET (this_target_loader launchpad_loader)
4 SET (this_target_lib launchpad)
7 PKG_CHECK_MODULES(${this_target_pool} REQUIRED
21 FOREACH(flag ${${this_target_pool}_CFLAGS})
22 SET(EXTRA_CFLAGS_pool "${EXTRA_CFLAGS_pool} ${flag}")
25 PKG_CHECK_MODULES(${this_target_loader} REQUIRED
41 FOREACH(flag ${${this_target_loader}_CFLAGS})
42 SET(EXTRA_CFLAGS_loader "${EXTRA_CFLAGS_loader} ${flag}")
45 PKG_CHECK_MODULES(${this_target_lib} REQUIRED
55 FOREACH(flag ${${this_target_lib}_CFLAGS})
56 SET(EXTRA_CFLAGS_lib "${EXTRA_CFLAGS_lib} ${flag}")
59 SET(EXTRA_CFLAGS_common "${EXTRA_CFLAGS_common} -Wl,-zdefs" )
60 SET(EXTRA_CFLAGS_common "${EXTRA_CFLAGS_common} -fvisibility=hidden")
61 SET(EXTRA_CFLAGS_common "${EXTRA_CFLAGS_common} -fdata-sections -ffunction-sections -Wl,--gc-sections")
62 SET(EXTRA_CFLAGS_common "${EXTRA_CFLAGS_common} -D_FILE_OFFSET_BITS=64")
63 SET(EXTRA_CFLAGS_common "${EXTRA_CFLAGS_common} -Werror")
65 SET(EXTRA_CFLAGS_pool "${EXTRA_CFLAGS_pool} ${EXTRA_CFLAGS_common} -fPIE")
66 SET(EXTRA_CFLAGS_loader "${EXTRA_CFLAGS_loader} ${EXTRA_CFLAGS_common} -fPIE")
67 SET(EXTRA_CFLAGS_lib "${EXTRA_CFLAGS_lib} ${EXTRA_CFLAGS_common}")
69 SET(CMAKE_C_FLAGS_DEBUG "-O0 -g")
70 SET(CMAKE_C_FLAGS_RELEASE "-O2")
71 SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed")
73 ADD_DEFINITIONS("-DSHARE_PREFIX=\"/usr/share/aul\"")
74 IF(_TIZEN_FEATURE_PRIORITY_CHANGE)
75 ADD_DEFINITIONS("-DTIZEN_FEATURE_PRIORITY_CHANGE")
76 ENDIF(_TIZEN_FEATURE_PRIORITY_CHANGE)
77 IF(_TIZEN_FEATURE_LOADER_PRIORITY)
78 ADD_DEFINITIONS("-DTIZEN_FEATURE_LOADER_PRIORITY")
79 ENDIF(_TIZEN_FEATURE_LOADER_PRIORITY)
80 IF(_TIZEN_FEATURE_SET_PERSONALITY_32)
81 ADD_DEFINITIONS("-DTIZEN_FEATURE_SET_PERSONALITY_32")
82 ENDIF(_TIZEN_FEATURE_SET_PERSONALITY_32)
84 ADD_DEFINITIONS("-DLAUNCHPAD_LOG")
85 ADD_DEFINITIONS("-DPRELOAD_ACTIVATE")
86 ADD_DEFINITIONS("-DPREEXEC_ACTIVATE")
87 #ADD_DEFINITIONS("-DPERF_ACTIVATE")
89 INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/inc)
92 SET(LAUNCHPAD_LOADER "launchpad-loader")
93 SET(${LAUNCHPAD_LOADER}_SOURCE_FILES
94 src/launchpad_loader.c
95 src/launchpad_common.c
98 ADD_EXECUTABLE(${LAUNCHPAD_LOADER} ${${LAUNCHPAD_LOADER}_SOURCE_FILES})
100 # To support 2.x applications which use their own shared libraries.
101 # Since we cannot set LD_LIBRARY_PATH directly by security issue, we make the
102 # dynamic linker looks in the CWD forcely.
103 TARGET_LINK_LIBRARIES(${LAUNCHPAD_LOADER} "-ldl -Wl,-rpath,: -Wl,--disable-new-dtags")
104 TARGET_LINK_LIBRARIES(${LAUNCHPAD_LOADER} ${${this_target_loader}_LDFLAGS} "-pie")
105 SET_TARGET_PROPERTIES(${LAUNCHPAD_LOADER} PROPERTIES COMPILE_FLAGS ${EXTRA_CFLAGS_loader})
106 SET_TARGET_PROPERTIES(${LAUNCHPAD_LOADER}
107 PROPERTIES SKIP_BUILD_RPATH TRUE
108 ) # remove rpath option that is automatically generated by cmake.
109 INSTALL(TARGETS ${LAUNCHPAD_LOADER} DESTINATION bin)
111 # launchpad-process-pool
112 SET(LAUNCHPAD_PROCESS_POOL "launchpad-process-pool")
113 SET(${LAUNCHPAD_PROCESS_POOL}_SOURCE_FILES
115 src/launchpad_common.c
119 src/launchpad_debug.c
120 src/launchpad_signal.c
122 ADD_EXECUTABLE(${LAUNCHPAD_PROCESS_POOL} ${${LAUNCHPAD_PROCESS_POOL}_SOURCE_FILES})
124 TARGET_LINK_LIBRARIES(${LAUNCHPAD_PROCESS_POOL} ${${this_target_pool}_LDFLAGS} "-pie -lm")
125 SET_TARGET_PROPERTIES(${LAUNCHPAD_PROCESS_POOL} PROPERTIES COMPILE_FLAGS ${EXTRA_CFLAGS_pool})
126 SET_TARGET_PROPERTIES(${LAUNCHPAD_PROCESS_POOL}
127 PROPERTIES SKIP_BUILD_RPATH TRUE
128 ) # remove rpath option that is automatically generated by cmake.
130 CONFIGURE_FILE(packaging/default.debugger.in packaging/default.debugger @ONLY)
131 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/packaging/default.debugger DESTINATION share/aul)
132 INSTALL(TARGETS ${LAUNCHPAD_PROCESS_POOL} DESTINATION bin)
134 CONFIGURE_FILE(packaging/default.loader.in packaging/default.loader @ONLY)
135 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/packaging/default.loader DESTINATION share/aul)
138 SET(LAUNCHPAD_LIB "launchpad")
139 ADD_LIBRARY(${LAUNCHPAD_LIB} SHARED
141 src/launchpad_common.c
143 SET_TARGET_PROPERTIES(${LAUNCHPAD_LIB} PROPERTIES SOVERSION ${MAJORVER})
144 SET_TARGET_PROPERTIES(${LAUNCHPAD_LIB} PROPERTIES VERSION ${VERSION})
145 SET_TARGET_PROPERTIES(${LAUNCHPAD_LIB} PROPERTIES COMPILE_FLAGS ${EXTRA_CFLAGS_lib})
146 TARGET_LINK_LIBRARIES(${LAUNCHPAD_LIB} ${${this_target_lib}_LDFLAGS} "-ldl")
148 INSTALL(TARGETS ${LAUNCHPAD_LIB} DESTINATION ${LIB_INSTALL_DIR} COMPONENT RuntimeLibraries)
149 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/inc/launchpad.h DESTINATION include/launchpad)
150 CONFIGURE_FILE(launchpad.pc.in launchpad.pc @ONLY)
151 INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/launchpad.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)