blob: 1fbed8a5cca515f45b9e4f8cb0cc3344a31adf85 (
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
141
142
143
144
145
146
147
148
149
150
151
152
|
CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
SET (this_target_pool launchpad_pool)
SET (this_target_loader launchpad_loader)
SET (this_target_lib launchpad)
INCLUDE(FindPkgConfig)
PKG_CHECK_MODULES(${this_target_pool} REQUIRED
dlog
libsystemd
security-manager
tanchor
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
libtzplatform-config
tanchor
bundle
aul
vconf
buxton2
libsystemd
voice-control-elm
gio-2.0
)
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
libtzplatform-config
tanchor
)
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} -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} -fPIE")
SET(EXTRA_CFLAGS_loader "${EXTRA_CFLAGS_loader} ${EXTRA_CFLAGS_common} -fPIE")
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(_TIZEN_FEATURE_PRIORITY_CHANGE)
ADD_DEFINITIONS("-DTIZEN_FEATURE_PRIORITY_CHANGE")
ENDIF(_TIZEN_FEATURE_PRIORITY_CHANGE)
IF(_TIZEN_FEATURE_LOADER_PRIORITY)
ADD_DEFINITIONS("-DTIZEN_FEATURE_LOADER_PRIORITY")
ENDIF(_TIZEN_FEATURE_LOADER_PRIORITY)
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,: -Wl,--disable-new-dtags")
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 -lm")
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 ${MAJORVER})
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)
|