Split CMakeLists files 91/237991/4
authorJunghyun Yeon <jungh.yeon@samsung.com>
Tue, 7 Jul 2020 07:35:44 +0000 (16:35 +0900)
committerJunghyun Yeon <jungh.yeon@samsung.com>
Mon, 3 Aug 2020 10:20:09 +0000 (19:20 +0900)
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 <jungh.yeon@samsung.com>
CMakeLists.txt
cmake/Modules/ApplyPkgConfig.cmake [new file with mode: 0644]
src/CMakeLists.txt [new file with mode: 0644]
src/install_preload_pkg/CMakeLists.txt [new file with mode: 0644]
src/pkg_cleardata/CMakeLists.txt [new file with mode: 0644]
src/pkg_getsize/CMakeLists.txt [new file with mode: 0644]
src/pkg_upgrade/CMakeLists.txt [new file with mode: 0644]
src/pkgcmd/CMakeLists.txt [new file with mode: 0644]
src/pkginfo/CMakeLists.txt [new file with mode: 0644]
src/rsc-slice/CMakeLists.txt [new file with mode: 0644]

index c099b48..35b9ef7 100644 (file)
@@ -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 (file)
index 0000000..97679d7
--- /dev/null
@@ -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 (file)
index 0000000..18fdd25
--- /dev/null
@@ -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 (file)
index 0000000..943f6c2
--- /dev/null
@@ -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 (file)
index 0000000..86a056f
--- /dev/null
@@ -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 (file)
index 0000000..cd1dfe5
--- /dev/null
@@ -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 (file)
index 0000000..acad83c
--- /dev/null
@@ -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 (file)
index 0000000..91a14d7
--- /dev/null
@@ -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 (file)
index 0000000..eb799a3
--- /dev/null
@@ -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 (file)
index 0000000..3ce52fe
--- /dev/null
@@ -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