tizen 2.3 release
[framework/appfw/alarm-manager.git] / src / CMakeLists.txt
1 SET(this_target alarm)
2 ADD_DEFINITIONS("-DPREFIX=\"${PREFIX}\"")
3
4 SET(PREFIX ${CMAKE_INSTALL_PREFIX})
5 SET(EXEC_PREFIX "\${prefix}")
6 SET(LIBDIR "\${prefix}/lib")
7 SET(INCLUDEDIR "\${prefix}/include")
8 SET(VERSION_MAJOR 1)
9 SET(VERSION "${VERSION_MAJOR}.1")
10
11 INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include)
12
13 SET(LIB_PKGS glib-2.0 gobject-2.0 dlog security-server bundle appsvc gio-2.0 gio-unix-2.0)
14
15 INCLUDE(FindPkgConfig)
16 pkg_check_modules(lib_pkgs REQUIRED ${LIB_PKGS})
17
18 FOREACH(flag ${lib_pkgs_CFLAGS})
19         SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag} -Wall -Wno-unused")
20 ENDFOREACH(flag)
21
22 SET(${this_target}_SOURCE_FILES
23         alarm-lib.c
24         alarm-lib-stub.c
25 )
26
27 ADD_CUSTOM_COMMAND(
28         WORKING_DIRECTORY
29         OUTPUT alarm-mgr-stub.c
30         COMMAND gdbus-codegen --interface-prefix com.samsung.
31                                 --generate-c-code alarm-mgr-stub
32                                 ../alarm_mgr.xml
33         COMMENT "Generating Server GDBus .c/.h")
34
35 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}")
36
37 ADD_LIBRARY(${this_target} SHARED ${${this_target}_SOURCE_FILES} alarm-mgr-stub.c)
38
39 SET_TARGET_PROPERTIES(${this_target} PROPERTIES COMPILE_FLAGS "${EXTRA_CFLAGS}")
40 SET_TARGET_PROPERTIES(${this_target} PROPERTIES LINK_FLAGS "-Wl,--as-needed -Wl,--hash-style=both")
41 SET_TARGET_PROPERTIES(${this_target} PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${EXECUTABLE_OUTPUT_PATH}")
42
43 SET_TARGET_PROPERTIES(${this_target}
44         PROPERTIES
45         VERSION 0.0.0
46         SOVERSION ${MAJORVER}
47         CLEAN_DIRECT_OUTPUT 1
48 )
49
50 TARGET_LINK_LIBRARIES(${this_target} ${lib_pkgs_LDFLAGS})
51
52 ADD_CUSTOM_COMMAND(TARGET ${this_target}
53                 POST_BUILD
54                 COMMAND ${CMAKE_COMMAND} -E create_symlink ${CMAKE_SHARED_LIBRARY_PREFIX}${this_target}${CMAKE_SHARED_LIBRARY_SUFFIX}.${FULLVER}${LIBRARY_OUTPUT_PATH}  ${CMAKE_SHARED_LIBRARY_PREFIX}${this_target}${CMAKE_SHARED_LIBRARY_SUFFIX}.${MAJORVER}
55
56 )
57
58 # pkgconfig file
59 CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/alarm-service.pc.in ${CMAKE_SOURCE_DIR}/alarm-service.pc @ONLY)
60 INSTALL(FILES ${CMAKE_SOURCE_DIR}/alarm-service.pc DESTINATION lib/pkgconfig)
61 INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/include/ DESTINATION include/ FILES_MATCHING PATTERN "alarm.h")
62 INSTALL(TARGETS ${this_target} DESTINATION lib)
63