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