tizen 2.4 release
[framework/appfw/pkgmgr-info.git] / CMakeLists.txt
1 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
2 #SET(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS true)
3
4 PROJECT(pkgmgr-info C)
5
6 SET(VERSION 0.0.17)
7 SET(VERSION_MAJOR 0)
8
9 IF(_APPFW_FEATURE_EXPANSION_PKG_INSTALL)
10         ADD_DEFINITIONS("-D_APPFW_FEATURE_EXPANSION_PKG_INSTALL")
11 ENDIF(_APPFW_FEATURE_EXPANSION_PKG_INSTALL)
12
13 IF(_APPFW_FEATURE_DELTA_UPDATE)
14         ADD_DEFINITIONS("-D_APPFW_FEATURE_DELTA_UPDATE")
15 ENDIF(_APPFW_FEATURE_DELTA_UPDATE)
16
17 IF(_APPFW_FEATURE_MOUNT_INSTALL)
18         ADD_DEFINITIONS("-D_APPFW_FEATURE_MOUNT_INSTALL")
19 ENDIF(_APPFW_FEATURE_MOUNT_INSTALL)
20
21
22 SET(PREFIX ${CMAKE_INSTALL_PREFIX})
23 SET(EXEC_PREFIX "\${prefix}")
24 SET(INCLUDEDIR "\${prefix}/include")
25
26 set(CMAKE_SKIP_BUILD_RPATH true)
27
28 ### Local include directories
29 INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include ${CMAKE_SOURCE_DIR}/src ${CMAKE_SOURCE_DIR}/parser)
30
31 ### Required packages
32 INCLUDE(FindPkgConfig)
33 pkg_check_modules(pkgs REQUIRED openssl glib-2.0 dlog vconf sqlite3 db-util libxml-2.0 dbus-1 dbus-glib-1 bundle )
34
35 FOREACH(flag ${pkgs_CFLAGS})
36         SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
37 ENDFOREACH(flag)
38
39
40 pkg_check_modules(libpkgs REQUIRED openssl glib-2.0 dlog vconf sqlite3 db-util libxml-2.0 dbus-1 dbus-glib-1 bundle)
41
42 FOREACH(flag ${libpkgs_CFLAGS})
43         SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
44 ENDFOREACH(flag)
45
46 SET(pc_requires "glib-2.0")
47
48 set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}")
49
50 ## About debug
51 SET(debug_type "-DPM_CONSOLE_USE")              # for debug - use console window
52
53 ## Additional flag
54 SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -fvisibility=hidden")
55 SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -g -Wall")
56 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}")
57 SET(PC_REQUIRED ${pc_requires})
58
59 ################## ## build comm libraries
60 add_subdirectory(parser)
61
62 ## build pkgmgr-info library
63 add_library(pkgmgr-info SHARED
64                 src/pkgmgrinfo_client.c
65                 src/pkgmgrinfo_db.c
66                 src/pkgmgrinfo_certinfo.c
67                 src/pkgmgrinfo_appinfo.c src/pkgmgrinfo_pkginfo.c
68                 src/pkgmgrinfo_private.c
69                 src/pkgmgrinfo_basic.c
70                 src/pkgmgrinfo_resource.c )
71
72 SET_TARGET_PROPERTIES(pkgmgr-info PROPERTIES SOVERSION ${VERSION_MAJOR})
73 SET_TARGET_PROPERTIES(pkgmgr-info PROPERTIES VERSION ${VERSION})
74 TARGET_LINK_LIBRARIES(pkgmgr-info pkgmgr_parser ${libpkgs_LDFLAGS})
75
76 CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/pkgmgr-info.pc.in ${CMAKE_BINARY_DIR}/pkgmgr-info.pc @ONLY)
77 configure_file(parser_path.conf.in parser_path.conf @ONLY)
78 configure_file(pkgmgr-info.manifest.in pkgmgr-info.manifest @ONLY)
79 configure_file(pkgmgr-parser.manifest.in pkgmgr-parser.manifest @ONLY)
80 configure_file(dump_pkgmgr.sh.in dump_pkgmgr.sh @ONLY)
81
82 INSTALL(TARGETS pkgmgr-info DESTINATION ${LIB_INSTALL_DIR} COMPONENT RuntimeLibraries)
83 INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/pkgmgr-info.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
84 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/include/pkgmgr-info.h DESTINATION include)
85 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/include/pkgmgrinfo_resource.h DESTINATION include)
86 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/include/pkgmgrinfo_basic.h DESTINATION include)
87 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/include/pkgmgrinfo_type.h DESTINATION include)
88 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/include/pkgmgrinfo_zone.h DESTINATION include)
89 INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/parser_path.conf DESTINATION ${PREFIX}/etc/package-manager/)
90 INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/dump_pkgmgr.sh DESTINATION /opt/etc/dump.d/module.d/)
91