From: Junghyun Yeon Date: Tue, 7 Jul 2020 07:35:44 +0000 (+0900) Subject: Split CMakeLists files X-Git-Tag: submit/tizen/20200814.081404~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=2407202ea18906d794967a941b347d9089dd81de;p=platform%2Fcore%2Fappfw%2Fpkgmgr-tool.git Split CMakeLists files Each tools has own directory and files for it has moved into it. So CMakeList file could be separated. Change-Id: I3a2557d4cceced4aa27fcb40fc3d01c4d61603de Signed-off-by: Junghyun Yeon --- diff --git a/CMakeLists.txt b/CMakeLists.txt index c099b48..35b9ef7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -7,25 +7,33 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.6) SET(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS true) SET(CMAKE_SKIP_BUILD_RPATH true) -PROJECT(pkgmgr-tool C) - -SET(PREFIX ${CMAKE_INSTALL_PREFIX}) -SET(EXEC_PREFIX "\${prefix}") -SET(LIBDIR ${LIB_INSTALL_DIR}) -SET(INCLUDEDIR "\${prefix}/include") - -SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${TEST_CFLAGS}") - -#Verbose -INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/client/include) - +PROJECT(pkgmgr-tool) + +#Target +SET(TARGET_PKGCMD "pkgcmd") +SET(TARGET_PKG_INFO "pkginfo") +SET(TARGET_PKG_GETSIZE "pkg_getsize") +SET(TARGET_PKG_CLEARDATA "pkg_cleardata") +SET(TARGET_INSTALL_PRELOAD_PKG "install_preload_pkg") +SET(TARGET_PKG_UPGRADE "pkg_upgrade") +SET(TARGET_RSC_SLICE "rsc-slice") + +SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules/") INCLUDE(FindPkgConfig) - -pkg_check_modules(pkgs_test REQUIRED dlog glib-2.0 bundle pkgmgr pkgmgr-parser pkgmgr-info pkgmgr-installer iniparser -libtzplatform-config aul storage sqlite3) -FOREACH(flag ${pkgs_test_CFLAGS}) - SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}") -ENDFOREACH(flag) +INCLUDE(ApplyPkgConfig) + +PKG_CHECK_MODULES(DLOG_DEPS REQUIRED dlog) +PKG_CHECK_MODULES(GLIB_DEPS REQUIRED glib-2.0) +PKG_CHECK_MODULES(BUNDLE_DEPS REQUIRED bundle) +PKG_CHECK_MODULES(PKGMGR_DEPS REQUIRED pkgmgr) +PKG_CHECK_MODULES(PKGMGR_PARSER_DEPS REQUIRED pkgmgr-parser) +PKG_CHECK_MODULES(PKGMGR_INFO_DEPS REQUIRED pkgmgr-info) +PKG_CHECK_MODULES(PKGMGR_INSTALLER_DEPS REQUIRED pkgmgr-installer) +PKG_CHECK_MODULES(INIPARSER_DEPS REQUIRED iniparser) +PKG_CHECK_MODULES(TZPLATFORM_DEPS REQUIRED libtzplatform-config) +PKG_CHECK_MODULES(AUL_DEPS REQUIRED aul) +PKG_CHECK_MODULES(STORAGE_DEPS REQUIRED storage) +PKG_CHECK_MODULES(SQLITE_DEPS REQUIRED sqlite3) INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include) SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -Wl,-zdefs -pie" ) @@ -35,33 +43,7 @@ SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -fPIE") SET(CMAKE_C_FLAGS_DEBUG "-O0 -g -fPIE") SET(CMAKE_C_FLAGS_RELEASE "-O2 -fPIE") -ADD_EXECUTABLE(pkgcmd src/pkgcmd/pkg_cmd.c src/pkgcmd/delta.c) -TARGET_LINK_LIBRARIES(pkgcmd ${pkgs_test_LDFLAGS}) -INSTALL(TARGETS pkgcmd DESTINATION bin) - -ADD_EXECUTABLE(pkginfo src/pkginfo/pkg_info.c) -TARGET_LINK_LIBRARIES(pkginfo ${pkgs_test_LDFLAGS}) -INSTALL(TARGETS pkginfo DESTINATION bin) - -ADD_EXECUTABLE(pkg_getsize src/pkg_getsize/pkg_getsize.c) -TARGET_LINK_LIBRARIES(pkg_getsize ${pkgs_test_LDFLAGS}) -INSTALL(TARGETS pkg_getsize DESTINATION bin) - -ADD_EXECUTABLE(pkg_cleardata src/pkg_cleardata/pkg_cleardata.c) -TARGET_LINK_LIBRARIES(pkg_cleardata ${pkgs_test_LDFLAGS}) -INSTALL(TARGETS pkg_cleardata DESTINATION bin) - -ADD_EXECUTABLE(install_preload_pkg src/install_preload_pkg/install_preload_pkg.c) -TARGET_LINK_LIBRARIES(install_preload_pkg ${pkgs_test_LDFLAGS}) -INSTALL(TARGETS install_preload_pkg DESTINATION bin) - -ADD_EXECUTABLE(pkg_upgrade src/pkg_upgrade/pkg_upgrade.c) -TARGET_LINK_LIBRARIES(pkg_upgrade ${pkgs_test_LDFLAGS}) -INSTALL(TARGETS pkg_upgrade DESTINATION bin) - -ADD_EXECUTABLE(rsc-slice src/rsc-slice/pkg_rsc_slice.c) -TARGET_LINK_LIBRARIES(rsc-slice ${pkgs_test_LDFLAGS}) -INSTALL(TARGETS rsc-slice DESTINATION bin) +ADD_SUBDIRECTORY(src) INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/data/mime.wac.xml DESTINATION /usr/share/mime/packages/) INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/data/mime.tpk.xml DESTINATION /usr/share/mime/packages/) diff --git a/cmake/Modules/ApplyPkgConfig.cmake b/cmake/Modules/ApplyPkgConfig.cmake new file mode 100644 index 0000000..97679d7 --- /dev/null +++ b/cmake/Modules/ApplyPkgConfig.cmake @@ -0,0 +1,35 @@ +# Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +# +# This function applies external (out of source tree) dependencies +# to given target. Arguments are: +# TARGET - valid cmake target +# PRIVACY - dependency can be inherited by dependent targets or not: +# PUBLIC - this should be used by default, cause compile/link flags passing +# PRIVATE - do not passes any settings to dependent targets, +# may be usefull for static libraries from the inside of the project +# Argument ARGV2 and following are supposed to be names of checked pkg config +# packages. This function will use variables created by check_pkg_modules(). +# - ${DEP_NAME}_LIBRARIES +# - ${DEP_NAME}_INCLUDE_DIRS +# - ${DEP_NAME}_CFLAGS +# +FUNCTION(APPLY_PKG_CONFIG TARGET PRIVACY) + MATH(EXPR DEST_INDEX "${ARGC}-1") + FOREACH(I RANGE 2 ${DEST_INDEX}) + IF(NOT ${ARGV${I}}_FOUND) + MESSAGE(FATAL_ERROR "Not found dependency - ${ARGV${I}}_FOUND") + ENDIF(NOT ${ARGV${I}}_FOUND) + TARGET_LINK_LIBRARIES(${TARGET} ${PRIVACY} "${${ARGV${I}}_LIBRARIES}") + TARGET_INCLUDE_DIRECTORIES(${TARGET} ${PRIVACY} SYSTEM "${${ARGV${I}}_INCLUDE_DIRS}") + STRING(REPLACE ";" " " CFLAGS_STR "${${ARGV${I}}_CFLAGS}") + SET(CFLAGS_LIST ${CFLAGS_STR}) + SEPARATE_ARGUMENTS(CFLAGS_LIST) + FOREACH(OPTION ${CFLAGS_LIST}) + TARGET_COMPILE_OPTIONS(${TARGET} ${PRIVACY} ${OPTION}) + ENDFOREACH(OPTION) + SET_TARGET_PROPERTIES(${TARGET} PROPERTIES SKIP_BUILD_RPATH true) + ENDFOREACH(I RANGE 2 ${DEST_INDEX}) +ENDFUNCTION(APPLY_PKG_CONFIG TARGET PRIVACY) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt new file mode 100644 index 0000000..18fdd25 --- /dev/null +++ b/src/CMakeLists.txt @@ -0,0 +1,7 @@ +ADD_SUBDIRECTORY(install_preload_pkg) +ADD_SUBDIRECTORY(pkg_cleardata) +ADD_SUBDIRECTORY(pkg_getsize) +ADD_SUBDIRECTORY(pkg_upgrade) +ADD_SUBDIRECTORY(pkgcmd) +ADD_SUBDIRECTORY(pkginfo) +ADD_SUBDIRECTORY(rsc-slice) diff --git a/src/install_preload_pkg/CMakeLists.txt b/src/install_preload_pkg/CMakeLists.txt new file mode 100644 index 0000000..943f6c2 --- /dev/null +++ b/src/install_preload_pkg/CMakeLists.txt @@ -0,0 +1,17 @@ +# Target - sources +SET(SRCS + install_preload_pkg.c +) + +# Target - definition +ADD_EXECUTABLE(${TARGET_INSTALL_PRELOAD_PKG} ${SRCS}) + +# Dependency +APPLY_PKG_CONFIG(${TARGET_INSTALL_PRELOAD_PKG} PUBLIC + TZPLATFORM_DEPS + PKGMGR_DEPS + GLIB_DEPS +) + +# Install +INSTALL(TARGETS ${TARGET_INSTALL_PRELOAD_PKG} DESTINATION bin) \ No newline at end of file diff --git a/src/pkg_cleardata/CMakeLists.txt b/src/pkg_cleardata/CMakeLists.txt new file mode 100644 index 0000000..86a056f --- /dev/null +++ b/src/pkg_cleardata/CMakeLists.txt @@ -0,0 +1,21 @@ +# Target - sources +SET(SRCS + pkg_cleardata.c +) + +# Target - definition +ADD_EXECUTABLE(${TARGET_PKG_CLEARDATA} ${SRCS}) + +# Dependency +APPLY_PKG_CONFIG(${TARGET_PKG_CLEARDATA} PUBLIC + TZPLATFORM_DEPS + PKGMGR_DEPS + GLIB_DEPS + DLOG_DEPS + PKGMGR_INSTALLER_DEPS + STORAGE_DEPS + PKGMGR_INFO_DEPS +) + +# Install +INSTALL(TARGETS ${TARGET_PKG_CLEARDATA} DESTINATION bin) \ No newline at end of file diff --git a/src/pkg_getsize/CMakeLists.txt b/src/pkg_getsize/CMakeLists.txt new file mode 100644 index 0000000..cd1dfe5 --- /dev/null +++ b/src/pkg_getsize/CMakeLists.txt @@ -0,0 +1,20 @@ +# Target - sources +SET(SRCS + pkg_getsize.c +) + +# Target - definition +ADD_EXECUTABLE(${TARGET_PKG_GETSIZE} ${SRCS}) + +# Dependency +APPLY_PKG_CONFIG(${TARGET_PKG_GETSIZE} PUBLIC + PKGMGR_INFO_DEPS + TZPLATFORM_DEPS + DLOG_DEPS + PKGMGR_DEPS + PKGMGR_INSTALLER_DEPS + STORAGE_DEPS +) + +# Install +INSTALL(TARGETS ${TARGET_PKG_GETSIZE} DESTINATION bin) \ No newline at end of file diff --git a/src/pkg_upgrade/CMakeLists.txt b/src/pkg_upgrade/CMakeLists.txt new file mode 100644 index 0000000..acad83c --- /dev/null +++ b/src/pkg_upgrade/CMakeLists.txt @@ -0,0 +1,21 @@ +# Target - sources +SET(SRCS + pkg_upgrade.c +) + +# Target - definition +ADD_EXECUTABLE(${TARGET_PKG_UPGRADE} ${SRCS}) + +# Dependency +APPLY_PKG_CONFIG(${TARGET_PKG_UPGRADE} PUBLIC + INIPARSER_DEPS + SQLITE_DEPS + PKGMGR_INFO_DEPS + PKGMGR_DEPS + PKGMGR_PARSER_DEPS + STORAGE_DEPS + TZPLATFORM_DEPS +) + +# Install +INSTALL(TARGETS ${TARGET_PKG_UPGRADE} DESTINATION bin) \ No newline at end of file diff --git a/src/pkgcmd/CMakeLists.txt b/src/pkgcmd/CMakeLists.txt new file mode 100644 index 0000000..91a14d7 --- /dev/null +++ b/src/pkgcmd/CMakeLists.txt @@ -0,0 +1,20 @@ +# Target - sources +SET(SRCS + pkg_cmd.c + delta.c +) + +# Target - definition +ADD_EXECUTABLE(${TARGET_PKGCMD} ${SRCS}) + +# Dependency +APPLY_PKG_CONFIG(${TARGET_PKGCMD} PUBLIC + GLIB_DEPS + PKGMGR_DEPS + PKGMGR_INFO_DEPS + PKGMGR_INSTALLER_DEPS + TZPLATFORM_DEPS +) + +# Install +INSTALL(TARGETS ${TARGET_PKGCMD} DESTINATION bin) \ No newline at end of file diff --git a/src/pkginfo/CMakeLists.txt b/src/pkginfo/CMakeLists.txt new file mode 100644 index 0000000..eb799a3 --- /dev/null +++ b/src/pkginfo/CMakeLists.txt @@ -0,0 +1,19 @@ +# Target - sources +SET(SRCS + pkg_info.c +) + +# Target - definition +ADD_EXECUTABLE(${TARGET_PKG_INFO} ${SRCS}) + +# Dependency +APPLY_PKG_CONFIG(${TARGET_PKG_INFO} PUBLIC + PKGMGR_INFO_DEPS + PKGMGR_PARSER_DEPS + PKGMGR_DEPS + PKGMGR_INSTALLER_DEPS + TZPLATFORM_DEPS +) + +# Install +INSTALL(TARGETS ${TARGET_PKG_INFO} DESTINATION bin) \ No newline at end of file diff --git a/src/rsc-slice/CMakeLists.txt b/src/rsc-slice/CMakeLists.txt new file mode 100644 index 0000000..3ce52fe --- /dev/null +++ b/src/rsc-slice/CMakeLists.txt @@ -0,0 +1,17 @@ +# Target - sources +SET(SRCS + pkg_rsc_slice.c +) + +# Target - definition +ADD_EXECUTABLE(${TARGET_RSC_SLICE} ${SRCS}) + +# Dependency +APPLY_PKG_CONFIG(${TARGET_RSC_SLICE} PUBLIC + AUL_DEPS + GLIB_DEPS + BUNDLE_DEPS +) + +# Install +INSTALL(TARGETS ${TARGET_RSC_SLICE} DESTINATION bin) \ No newline at end of file