Fix pkg db version
[platform/core/appfw/pkgmgr-info.git] / CMakeLists.txt
index ff5f1d6..16a168f 100644 (file)
@@ -1,6 +1,6 @@
 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
 
-PROJECT(pkgmgr-info C)
+PROJECT(pkgmgr-info)
 
 INCLUDE(TizenCommon)
 
@@ -9,62 +9,100 @@ SET(EXEC_PREFIX "\${prefix}")
 SET(INCLUDEDIR "\${prefix}/include")
 SET(CMAKE_SKIP_BUILD_RPATH true)
 
+ADD_DEFINITIONS("-DLIB_PATH=\"${LIB_INSTALL_DIR}\"")
+
 ### Local include directories
-INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include ${CMAKE_SOURCE_DIR}/src ${CMAKE_SOURCE_DIR}/parser)
+INCLUDE_DIRECTORIES(
+  ${CMAKE_SOURCE_DIR}/include
+  ${CMAKE_SOURCE_DIR}/parser/include
+  ${CMAKE_SOURCE_DIR}/src
+  ${CMAKE_SOURCE_DIR}/src/common
+  ${CMAKE_SOURCE_DIR}/src/common/socket
+  ${CMAKE_SOURCE_DIR}/src/common/parcel
+  ${CMAKE_SOURCE_DIR}/src/server
+  ${CMAKE_SOURCE_DIR}/src/server/cynara_checker
+  ${CMAKE_SOURCE_DIR}/src/server/filter_checker
+  ${CMAKE_SOURCE_DIR}/src/server/database
+  ${CMAKE_SOURCE_DIR}/src/server/request_handler
+)
 
 ### Required packages
 INCLUDE(FindPkgConfig)
-pkg_check_modules(pkgs REQUIRED glib-2.0 dlog vconf sqlite3 db-util libxml-2.0 dbus-1 dbus-glib-1 libtzplatform-config libsmack bundle)
-
-FOREACH(flag ${pkgs_CFLAGS})
-       SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
-ENDFOREACH(flag)
-
 
-pkg_check_modules(libpkgs REQUIRED glib-2.0 dlog vconf sqlite3 db-util libxml-2.0 dbus-1 dbus-glib-1 libtzplatform-config libsmack bundle)
+pkg_check_modules(libpkgs REQUIRED
+  glib-2.0
+  gio-2.0
+  gio-unix-2.0
+  dlog
+  vconf
+  libtzplatform-config
+  libsmack
+  bundle
+  capi-system-info
+  minizip
+  libsystemd
+  parcel
+  cynara-client-async
+  cynara-session
+  cynara-creds-socket
+  capi-system-resource
+)
 
 FOREACH(flag ${libpkgs_CFLAGS})
        SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
 ENDFOREACH(flag)
 
-SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}")
+pkg_check_modules(libpkgs_server REQUIRED
+  glib-2.0
+  gio-2.0
+  gio-unix-2.0
+  dlog
+  vconf
+  sqlite3
+  libtzplatform-config
+  libsmack
+  bundle
+  capi-system-info
+  minizip
+  libsystemd
+  parcel
+  cynara-client-async
+  cynara-session
+  cynara-creds-socket
+  capi-system-resource
+  tizen-database
+)
+
+FOREACH(flag ${libpkgs_server_CFLAGS})
+       SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
+ENDFOREACH(flag)
 
 ## Additional flag
 SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -fvisibility=hidden")
 SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -g -Wall")
 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}")
 
+# Linker flags
+SET(EXTRA_LINKER_FLAGS "-Wl,--as-needed")
+SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${EXTRA_LINKER_FLAGS}")
+
+IF(NOT ASAN_ENABLED)
+  ENABLE_TESTING()
+  SET(TARGET_PKGMGR_INFO_UNIT_TEST "pkgmgr-info-unit-test")
+ENDIF(NOT ASAN_ENABLED)
+
 ################## ## build comm libraries
 ADD_SUBDIRECTORY(parser)
-
-## build pkgmgr-info library
-ADD_LIBRARY(pkgmgr-info SHARED
-       src/pkgmgrinfo_client.c
-       src/pkgmgrinfo_db.c
-       src/pkgmgrinfo_certinfo.c
-       src/pkgmgrinfo_pkginfo.c
-       src/pkgmgrinfo_appinfo.c
-       src/pkgmgrinfo_basic.c
-       src/pkgmgrinfo_private.c
-       src/pkgmgrinfo_resource.c)
-
-SET_TARGET_PROPERTIES(pkgmgr-info PROPERTIES SOVERSION ${MAJORVER})
-SET_TARGET_PROPERTIES(pkgmgr-info PROPERTIES VERSION ${FULLVER})
-TARGET_LINK_LIBRARIES(pkgmgr-info pkgmgr_parser ${libpkgs_LDFLAGS})
+ADD_SUBDIRECTORY(tool)
+ADD_SUBDIRECTORY(plugin_list)
+ADD_SUBDIRECTORY(src)
+IF(NOT ASAN_ENABLED)
+  ADD_SUBDIRECTORY(test)
+ENDIF(NOT ASAN_ENABLED)
 
 CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/pkgmgr-info.pc.in ${CMAKE_BINARY_DIR}/pkgmgr-info.pc @ONLY)
-CONFIGURE_FILE(parser_path.conf.in parser_path.conf @ONLY)
-CONFIGURE_FILE(mdparser_list.txt.in mdparser_list.txt @ONLY)
-CONFIGURE_FILE(category_parser_list.txt.in category_parser_list.txt @ONLY)
-CONFIGURE_FILE(tag_parser_list.txt.in tag_parser_list.txt @ONLY)
+CONFIGURE_FILE(pkg_db_version.txt.in pkg_db_version.txt @ONLY)
 
-INSTALL(TARGETS pkgmgr-info DESTINATION ${LIB_INSTALL_DIR} COMPONENT RuntimeLibraries)
 INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/pkgmgr-info.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
-INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/include/pkgmgr-info.h DESTINATION include)
-INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/include/pkgmgrinfo_type.h DESTINATION include)
-INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/include/pkgmgrinfo_basic.h DESTINATION include)
-INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/include/pkgmgrinfo_resource.h DESTINATION include)
-INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/parser_path.conf DESTINATION ${SYSCONFDIR}/package-manager/)
-INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/mdparser_list.txt DESTINATION ${SYSCONFDIR}/package-manager/parserlib/metadata)
-INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/category_parser_list.txt DESTINATION ${SYSCONFDIR}/package-manager/parserlib/category)
-INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/tag_parser_list.txt DESTINATION ${SYSCONFDIR}/package-manager/parserlib)
+INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/ DESTINATION include)
+INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/pkg_db_version.txt DESTINATION ${SYSCONFDIR}/package-manager/)