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>
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" )
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/)
--- /dev/null
+# 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)
--- /dev/null
+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)
--- /dev/null
+# 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
--- /dev/null
+# 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
--- /dev/null
+# 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
--- /dev/null
+# 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
--- /dev/null
+# 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
--- /dev/null
+# 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
--- /dev/null
+# 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