X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=CMakeLists.txt;h=16a168f4348df90493895d035f7c273c17dfa147;hb=485988169281fa2cb670ee3c9561a88ab4d7d1c8;hp=276c7977748fe6d9a65b6831764565344e83eb26;hpb=3c9cc18c676e4f4290ef43c2b1100aaba750ddc5;p=platform%2Fcore%2Fappfw%2Fpkgmgr-info.git diff --git a/CMakeLists.txt b/CMakeLists.txt index 276c797..16a168f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,68 +1,108 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.6) -#SET(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS true) -PROJECT(pkgmgr-info C) +PROJECT(pkgmgr-info) INCLUDE(TizenCommon) SET(PREFIX ${CMAKE_INSTALL_PREFIX}) SET(EXEC_PREFIX "\${prefix}") SET(INCLUDEDIR "\${prefix}/include") +SET(CMAKE_SKIP_BUILD_RPATH true) -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}") - -## About debug -SET(debug_type "-DPM_CONSOLE_USE") # for debug - use console window +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}") -################## ## build comm libraries -add_subdirectory(parser) +# Linker flags +SET(EXTRA_LINKER_FLAGS "-Wl,--as-needed") +SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${EXTRA_LINKER_FLAGS}") -## build pkgmgr-info library -add_library(pkgmgr-info SHARED src/pkgmgr-info-basic.c src/pkgmgr-info.c src/pkgmgr-info-internal.c src/pkgmgrinfo_resource.c) +IF(NOT ASAN_ENABLED) + ENABLE_TESTING() + SET(TARGET_PKGMGR_INFO_UNIT_TEST "pkgmgr-info-unit-test") +ENDIF(NOT ASAN_ENABLED) - -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}) +################## ## build comm libraries +ADD_SUBDIRECTORY(parser) +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/pkgmgr-info-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/)