Call API to support trust-anchor
[platform/core/appfw/launchpad.git] / CMakeLists.txt
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)
5
6 INCLUDE(FindPkgConfig)
7 PKG_CHECK_MODULES(${this_target_pool} REQUIRED
8         dlog
9         libsystemd
10         security-manager
11         tanchor
12         bundle
13         gio-2.0
14         ttrace
15         vconf
16         libtzplatform-config
17         libcap
18         )
19
20 FOREACH(flag ${${this_target_pool}_CFLAGS})
21         SET(EXTRA_CFLAGS_pool "${EXTRA_CFLAGS_pool} ${flag}")
22 ENDFOREACH(flag)
23
24 PKG_CHECK_MODULES(${this_target_loader} REQUIRED
25         dlog
26         ecore
27         elementary
28         security-manager
29         libtzplatform-config
30         tanchor
31         bundle
32         aul
33         vconf
34         buxton2
35         libsystemd
36         )
37
38 FOREACH(flag ${${this_target_loader}_CFLAGS})
39         SET(EXTRA_CFLAGS_loader "${EXTRA_CFLAGS_loader} ${flag}")
40 ENDFOREACH(flag)
41
42 PKG_CHECK_MODULES(${this_target_lib} REQUIRED
43         dlog
44         bundle
45         aul
46         security-manager
47         libtzplatform-config
48         tanchor
49         )
50
51 FOREACH(flag ${${this_target_lib}_CFLAGS})
52         SET(EXTRA_CFLAGS_lib "${EXTRA_CFLAGS_lib} ${flag}")
53 ENDFOREACH(flag)
54
55 SET(EXTRA_CFLAGS_common "${EXTRA_CFLAGS_common} -Wl,-zdefs" )
56 SET(EXTRA_CFLAGS_common "${EXTRA_CFLAGS_common} -fvisibility=hidden")
57 SET(EXTRA_CFLAGS_common "${EXTRA_CFLAGS_common} -fPIE")
58 SET(EXTRA_CFLAGS_common "${EXTRA_CFLAGS_common} -fdata-sections -ffunction-sections -Wl,--gc-sections")
59 SET(EXTRA_CFLAGS_common "${EXTRA_CFLAGS_common} -D_FILE_OFFSET_BITS=64")
60 SET(EXTRA_CFLAGS_common "${EXTRA_CFLAGS_common} -Werror")
61
62 SET(EXTRA_CFLAGS_pool "${EXTRA_CFLAGS_pool} ${EXTRA_CFLAGS_common}")
63 SET(EXTRA_CFLAGS_loader "${EXTRA_CFLAGS_loader} ${EXTRA_CFLAGS_common}")
64 SET(EXTRA_CFLAGS_lib "${EXTRA_CFLAGS_lib} ${EXTRA_CFLAGS_common}")
65
66 SET(CMAKE_C_FLAGS_DEBUG "-O0 -g")
67 SET(CMAKE_C_FLAGS_RELEASE "-O2")
68 SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed")
69
70 ADD_DEFINITIONS("-DSHARE_PREFIX=\"/usr/share/aul\"")
71 IF(_TIZEN_FEATURE_PRIORITY_CHANGE)
72         ADD_DEFINITIONS("-DTIZEN_FEATURE_PRIORITY_CHANGE")
73 ENDIF(_TIZEN_FEATURE_PRIORITY_CHANGE)
74 IF(_TIZEN_FEATURE_LOADER_PRIORITY)
75         ADD_DEFINITIONS("-DTIZEN_FEATURE_LOADER_PRIORITY")
76 ENDIF(_TIZEN_FEATURE_LOADER_PRIORITY)
77 IF(_TIZEN_FEATURE_SET_PERSONALITY_32)
78         ADD_DEFINITIONS("-DTIZEN_FEATURE_SET_PERSONALITY_32")
79 ENDIF(_TIZEN_FEATURE_SET_PERSONALITY_32)
80
81 ADD_DEFINITIONS("-DLAUNCHPAD_LOG")
82 ADD_DEFINITIONS("-DPRELOAD_ACTIVATE")
83 ADD_DEFINITIONS("-DPREEXEC_ACTIVATE")
84 #ADD_DEFINITIONS("-DPERF_ACTIVATE")
85
86 INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/inc)
87
88 # launchpad-loader
89 SET(LAUNCHPAD_LOADER "launchpad-loader")
90 SET(${LAUNCHPAD_LOADER}_SOURCE_FILES
91         src/launchpad_loader.c
92         src/launchpad_common.c
93         src/launchpad_lib.c
94         )
95 ADD_EXECUTABLE(${LAUNCHPAD_LOADER} ${${LAUNCHPAD_LOADER}_SOURCE_FILES})
96
97 # To support 2.x applications which use their own shared libraries.
98 # Since we cannot set LD_LIBRARY_PATH directly by security issue, we make the
99 # dynamic linker looks in the CWD forcely.
100 TARGET_LINK_LIBRARIES(${LAUNCHPAD_LOADER} "-ldl -Wl,-rpath,: -Wl,--disable-new-dtags")
101 TARGET_LINK_LIBRARIES(${LAUNCHPAD_LOADER} ${${this_target_loader}_LDFLAGS} "-pie")
102 SET_TARGET_PROPERTIES(${LAUNCHPAD_LOADER} PROPERTIES COMPILE_FLAGS ${EXTRA_CFLAGS_loader})
103 SET_TARGET_PROPERTIES(${LAUNCHPAD_LOADER}
104         PROPERTIES SKIP_BUILD_RPATH TRUE
105         ) # remove rpath option that is automatically generated by cmake.
106 INSTALL(TARGETS ${LAUNCHPAD_LOADER} DESTINATION bin)
107
108 # launchpad-process-pool
109 SET(LAUNCHPAD_PROCESS_POOL "launchpad-process-pool")
110 SET(${LAUNCHPAD_PROCESS_POOL}_SOURCE_FILES
111         src/launchpad.c
112         src/launchpad_common.c
113         src/loader_info.c
114         src/launcher_info.c
115         src/debugger_info.c
116         src/launchpad_debug.c
117         src/launchpad_signal.c
118         )
119 ADD_EXECUTABLE(${LAUNCHPAD_PROCESS_POOL} ${${LAUNCHPAD_PROCESS_POOL}_SOURCE_FILES})
120
121 TARGET_LINK_LIBRARIES(${LAUNCHPAD_PROCESS_POOL} ${${this_target_pool}_LDFLAGS} "-pie -lm")
122 SET_TARGET_PROPERTIES(${LAUNCHPAD_PROCESS_POOL} PROPERTIES COMPILE_FLAGS ${EXTRA_CFLAGS_pool})
123 SET_TARGET_PROPERTIES(${LAUNCHPAD_PROCESS_POOL}
124         PROPERTIES SKIP_BUILD_RPATH TRUE
125         ) # remove rpath option that is automatically generated by cmake.
126
127 CONFIGURE_FILE(packaging/default.debugger.in packaging/default.debugger @ONLY)
128 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/packaging/default.debugger DESTINATION share/aul)
129 INSTALL(TARGETS ${LAUNCHPAD_PROCESS_POOL} DESTINATION bin)
130
131 CONFIGURE_FILE(packaging/default.loader.in packaging/default.loader @ONLY)
132 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/packaging/default.loader DESTINATION share/aul)
133
134 # liblaunchpad
135 SET(LAUNCHPAD_LIB "launchpad")
136 ADD_LIBRARY(${LAUNCHPAD_LIB} SHARED
137                 src/launchpad_lib.c
138                 src/launchpad_common.c
139                 )
140 SET_TARGET_PROPERTIES(${LAUNCHPAD_LIB} PROPERTIES SOVERSION ${MAJORVER})
141 SET_TARGET_PROPERTIES(${LAUNCHPAD_LIB} PROPERTIES VERSION ${VERSION})
142 SET_TARGET_PROPERTIES(${LAUNCHPAD_LIB} PROPERTIES COMPILE_FLAGS ${EXTRA_CFLAGS_lib})
143 TARGET_LINK_LIBRARIES(${LAUNCHPAD_LIB} ${${this_target_lib}_LDFLAGS} "-ldl")
144
145 INSTALL(TARGETS ${LAUNCHPAD_LIB} DESTINATION ${LIB_INSTALL_DIR} COMPONENT RuntimeLibraries)
146 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/inc/launchpad.h DESTINATION include/launchpad)
147 CONFIGURE_FILE(launchpad.pc.in launchpad.pc @ONLY)
148 INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/launchpad.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
149
150
151