blob: 15735c75e1b7de08c32375b3e6551c16bad94e5f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
|
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
)
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)
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)
|