Use std::make_unique instead of new
[platform/core/appfw/pkgmgr-tool.git] / CMakeLists.txt
1 #
2 # Copyright (c) 2015 Samsung Electronics Co., Ltd.
3 # All rights reserved
4 #
5
6 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
7 SET(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS true)
8 SET(CMAKE_SKIP_BUILD_RPATH true)
9
10 PROJECT(pkgmgr-tool)
11
12 #Target
13 SET(TARGET_PKGCMD "pkgcmd")
14 SET(TARGET_PKG_INFO "pkginfo")
15 SET(TARGET_PKG_GETSIZE "pkg_getsize")
16 SET(TARGET_PKG_CLEARDATA "pkg_cleardata")
17 SET(TARGET_INSTALL_PRELOAD_PKG "install_preload_pkg")
18 SET(TARGET_PKG_UPGRADE "pkg_upgrade")
19 SET(TARGET_RSC_SLICE "rsc-slice")
20
21 SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules/")
22 INCLUDE(FindPkgConfig)
23 INCLUDE(ApplyPkgConfig)
24
25 PKG_CHECK_MODULES(DLOG_DEPS REQUIRED dlog)
26 PKG_CHECK_MODULES(GLIB_DEPS REQUIRED glib-2.0)
27 PKG_CHECK_MODULES(BUNDLE_DEPS REQUIRED bundle)
28 PKG_CHECK_MODULES(PKGMGR_DEPS REQUIRED pkgmgr)
29 PKG_CHECK_MODULES(PKGMGR_PARSER_DEPS REQUIRED pkgmgr-parser)
30 PKG_CHECK_MODULES(PKGMGR_INFO_DEPS REQUIRED pkgmgr-info)
31 PKG_CHECK_MODULES(PKGMGR_INSTALLER_DEPS REQUIRED pkgmgr-installer)
32 PKG_CHECK_MODULES(INIPARSER_DEPS REQUIRED iniparser)
33 PKG_CHECK_MODULES(TZPLATFORM_DEPS REQUIRED libtzplatform-config)
34 PKG_CHECK_MODULES(AUL_DEPS REQUIRED aul)
35 PKG_CHECK_MODULES(STORAGE_DEPS REQUIRED storage)
36 PKG_CHECK_MODULES(SQLITE_DEPS REQUIRED sqlite3)
37 PKG_CHECK_MODULES(SMACK_DEPS REQUIRED libsmack)
38
39 INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include)
40 SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -Wl,-zdefs -pie" )
41 SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -fvisibility=hidden")
42 SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -g -Wall -Werror")
43 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -fPIE")
44 SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14 -Wall -Werror -ffunction-sections -fdata-sections -fmerge-all-constants -fPIE")
45 SET(CMAKE_C_FLAGS_DEBUG "-O0 -g -fPIE")
46 SET(CMAKE_C_FLAGS_RELEASE "-O2 -fPIE")
47
48 SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed,--gc-sections -pie")
49
50 ADD_SUBDIRECTORY(src)
51 ADD_SUBDIRECTORY(tests)
52
53 IF(NOT DEFINED MINIMUM_BUILD)
54 ENABLE_TESTING()
55 SET(PKGMGR_TOOL_UNIT_TESTS pkgmgr-tool_unittests)
56 ADD_TEST(NAME ${PKGMGR_TOOL_UNIT_TESTS} COMMAND ${PKGMGR_TOOL_UNIT_TESTS})
57 ENDIF(NOT DEFINED MINIMUM_BUILD)
58
59 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/data/mime.wac.xml DESTINATION /usr/share/mime/packages/)
60 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/data/mime.tpk.xml DESTINATION /usr/share/mime/packages/)
61
62 CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/data/pkgmgr.patch.sh.in pkgmgr.patch.sh @ONLY)
63 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/pkgmgr.patch.sh DESTINATION ${SYSCONF_INSTALL_DIR}/opt/upgrade/)
64 CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/data/pkgmgr-unzip-pkg.sh.in pkgmgr-unzip-pkg.sh @ONLY)
65 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/pkgmgr-unzip-pkg.sh DESTINATION ${SYSCONF_INSTALL_DIR}/package-manager/)
66 CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/data/pkgmgr-create-delta.sh.in pkgmgr-create-delta.sh @ONLY)
67 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/pkgmgr-create-delta.sh DESTINATION ${SYSCONF_INSTALL_DIR}/package-manager/)
68 CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/data/pkgmgr-clear-skel.sh.in pkgmgr-clear-skel.sh @ONLY)
69 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/pkgmgr-clear-skel.sh DESTINATION /usr/share/fixed_multiuser/scripts/)
70 CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/data/pkgmgr-label-initial-image.sh.in pkgmgr-label-initial-image.sh @ONLY)
71 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/pkgmgr-label-initial-image.sh DESTINATION ${SYSCONF_INSTALL_DIR}/package-manager/)
72 CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/data/updates/update.sh.in update.sh @ONLY)
73 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/update.sh DESTINATION /etc/package-manager/updates/)
74 CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/data/700.pkgmgr.patch.sh.in 700.pkgmgr.patch.sh @ONLY)
75 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/700.pkgmgr.patch.sh DESTINATION /usr/share/upgrade/scripts/)
76 CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/data/701.app2sd.patch.sh.in 701.app2sd.patch.sh @ONLY)
77 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/701.app2sd.patch.sh DESTINATION /usr/share/upgrade/scripts/)
78 CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/data/updates/upgrade_to_30000.sh.in upgrade_to_30000.sh @ONLY)
79 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/upgrade_to_30000.sh DESTINATION /etc/package-manager/updates/)
80 CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/data/updates/upgrade_to_30001.sh.in upgrade_to_30001.sh @ONLY)
81 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/upgrade_to_30001.sh DESTINATION /etc/package-manager/updates/)
82 CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/data/updates/upgrade_to_30002.sh.in upgrade_to_30002.sh @ONLY)
83 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/upgrade_to_30002.sh DESTINATION /etc/package-manager/updates/)
84 CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/data/updates/upgrade_to_30003.sh.in upgrade_to_30003.sh @ONLY)
85 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/upgrade_to_30003.sh DESTINATION /etc/package-manager/updates/)
86 CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/data/updates/upgrade_to_30004.sh.in upgrade_to_30004.sh @ONLY)
87 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/upgrade_to_30004.sh DESTINATION /etc/package-manager/updates/)
88 CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/data/updates/upgrade_to_30005.sh.in upgrade_to_30005.sh @ONLY)
89 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/upgrade_to_30005.sh DESTINATION /etc/package-manager/updates/)