merge with master
[platform/core/appfw/pkgmgr-info.git] / parser / CMakeLists.txt
1 ### Description
2 # Communication modules for pkg-mgr client lib and server process
3 # By Youmin Ha <youmin.ha@samsung.com>
4
5 cmake_minimum_required(VERSION 2.6)
6 #set(CMAKE_SKIP_BUILD_RPATH true)
7 set(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS true)
8
9
10 ### Versioning
11 if(DEFINED ${VERSION})
12         message("VERSION: ${VERSION}")
13 else()
14         message("VERSION is not defined. set it as 0.1.0")
15         set(VERSION 0.1.0)
16 endif()
17 if(DEFINED ${VERSION_MAJOR})
18         message("VERSION_MAJOR: ${VERSION_MAJOR}")
19 else()
20         message( "VERSION_MAJOR is not defined. set it as 0")
21         set(VERSION_MAJOR 0)
22 endif()
23 message(STATUS "version/major : ${VERSION} / ${VERSION_MAJOR}")
24
25 ### Get required CFLAGS, LDFLAGS from pkg-config
26
27 include(FindPkgConfig)
28 pkg_check_modules(parser_pkgs REQUIRED dlog libxml-2.0 glib-2.0 sqlite3 db-util vconf)
29
30 foreach(flag ${parser_pkgs_CFLAGS})
31         set(parser_pkgs_CFLAGS_str "${parser_pkgs_CFLAGS_str} ${flag}")
32 endforeach()
33
34 ## Additional flag
35 SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -fvisibility=hidden")
36 SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -g -Wall")
37 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}")
38
39 ### Set current binary dir to be included (for generated *.h files)
40 include_directories(${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR})
41
42 ### Build modules
43
44 ## pkgmgr_parser object (by sewook.park)
45 # This library is for installer backend
46 add_library(pkgmgr_parser SHARED pkgmgr_parser.c pkgmgr_parser_db.c)
47 #add_library(pkgmgr_parser SHARED pkgmgr_parser.c)
48 set_target_properties(pkgmgr_parser PROPERTIES SOVERSION ${VERSION_MAJOR})
49 set_target_properties(pkgmgr_parser PROPERTIES VERSION ${VERSION})
50 set_target_properties(pkgmgr_parser PROPERTIES COMPILE_FLAGS "${parser_pkgs_CFLAGS_str}")
51 target_link_libraries(pkgmgr_parser ${parser_pkgs_LDFLAGS})
52
53 ### Create pc file
54 configure_file(pkgmgr-parser.pc.in ${CMAKE_CURRENT_BINARY_DIR}/pkgmgr-parser.pc @ONLY)
55 configure_file(preload_list.txt.in preload_list.txt @ONLY)
56 configure_file(manifest.xsd.in manifest.xsd @ONLY)
57 configure_file(xml.xsd.in xml.xsd @ONLY)
58
59 ## Install
60 INSTALL(TARGETS
61                         pkgmgr_parser
62                 DESTINATION lib
63                 COMPONENT RuntimeLibraries)
64 INSTALL(FILES
65                         pkgmgr_parser.h
66                 DESTINATION include/pkgmgr)
67 INSTALL(FILES
68                         pkgmgr_parser_db.h
69                 DESTINATION include/pkgmgr)
70
71 INSTALL(FILES
72                 ${CMAKE_CURRENT_BINARY_DIR}/pkgmgr-parser.pc
73                 DESTINATION lib/pkgconfig)
74
75 INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/preload_list.txt DESTINATION ${PREFIX}/etc/package-manager/preload/)
76 INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/manifest.xsd DESTINATION ${PREFIX}/etc/package-manager/preload/)
77 INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/xml.xsd DESTINATION ${PREFIX}/etc/package-manager/preload/)