Source directories are moved to src.
- src/bundle
- src/parcel
- src/tizen-database
- src/tizen-shared-queue
Change-Id: I3b0dd75dd1d18d5e6611d08e90754df3b393e9d5
Signed-off-by: Hwankyu Jhun <h.jhun@samsung.com>
-CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
-PROJECT(bundle C CXX)
-IF("${VERSION}" STREQUAL "")
- MESSAGE(FATAL_ERROR "VERSION is not defined")
-ENDIF()
-STRING(REGEX MATCH "^[0-9]+" VERSION_MAJOR ${VERSION})
-IF("${VERSION_MAJOR}" STREQUAL "")
- MESSAGE(FATAL_ERROR "can't get VERSION_MAJOR")
-ENDIF()
+CMAKE_MINIMUM_REQUIRED(VERSION 3.2)
-INCLUDE(FindPkgConfig)
-PKG_CHECK_MODULES(pkgs REQUIRED
- glib-2.0 dlog capi-base-common json-glib-1.0
-)
-
-FOREACH(flag ${pkgs_CFLAGS})
- SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
-ENDFOREACH(flag)
-SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -fvisibility=hidden -flto -Wall -Werror -Winline -Wno-noexcept-type")
-
-SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_CFLAGS} -std=c++17")
-SET(CMAKE_CXX_FLAGS_DEBUG "-O0 -g")
-SET(CMAKE_CXX_FLAGS_RELEASE "-O2")
-
-INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/include)
-INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/src)
-INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/)
+PROJECT(bundle)
-AUX_SOURCE_DIRECTORY(src SOURCES)
-
-ADD_LIBRARY (${PROJECT_NAME} SHARED ${SOURCES})
+SET(PREFIX ${CMAKE_INSTALL_PREFIX})
+SET(VERSION ${FULLVER})
-SET_TARGET_PROPERTIES(bundle PROPERTIES SOVERSION ${VERSION_MAJOR})
-SET_TARGET_PROPERTIES(bundle PROPERTIES VERSION "${VERSION}")
+SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall")
+SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Werror")
+SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wl,-zdefs")
+SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Winline")
+SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-noexcept-type")
+SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fvisibility=hidden")
+SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -flto")
-SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES COMPILE_FLAGS "${EXTRA_CFLAGS} -fPIE")
-SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES LINK_FLAGS "-pie")
-TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${pkgs_LDFLAGS})
+SET(CMAKE_C_FLAGS_DEBUG "-O0 -g")
+SET(CMAKE_C_FLAGS_RELEASE "-O2")
-### Make pkgconfig file
-SET(PREFIX ${CMAKE_INSTALL_PREFIX})
-CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/bundle.pc.in ${CMAKE_BINARY_DIR}/bundle.pc @ONLY)
+SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_C_FLAGS} -std=c++17")
+SET(CMAKE_CXX_FLAGS_DEBUG "-O0 -g")
+SET(CMAKE_CXX_FLAGS_RELEASE "-O2")
-### Install
-INSTALL(TARGETS bundle DESTINATION ${LIB_INSTALL_DIR})
-INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/include/ DESTINATION include/)
-INSTALL(FILES ${CMAKE_BINARY_DIR}/bundle.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig/)
+SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH}
+ "${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules/")
-ADD_SUBDIRECTORY(parcel)
-ADD_DEPENDENCIES(parcel bundle)
+SET(TARGET_BUNDLE "bundle")
+SET(TARGET_PARCEL "parcel")
+SET(TARGET_TIZEN_DATABASE "tizen-database")
+SET(TARGET_TIZEN_SHARED_QUEUE "tizen-shared-queue")
+SET(TARGET_BUNDLE_UNITTESTS "bundle_unittests")
+SET(TARGET_PARCEL_UNITTESTS "parcel_unittests")
+SET(TARGET_TIZEN_DATABASE_UNITTESTS "tizen-database_unittests")
+SET(TARGET_TIZEN_SHARED_QUEUE_UNITTESTS "tizen-shared-queue_unittests")
-ADD_SUBDIRECTORY(tizen-database)
-ADD_SUBDIRECTORY(tizen-shared-queue)
+INCLUDE(FindPkgConfig)
+INCLUDE(ApplyPkgConfig)
-IF(NOT DEFINED MINIMUM_BUILD)
-ENABLE_TESTING()
-SET(BUNDLE_UNITTESTS bundle_unittests)
-ADD_TEST(NAME ${BUNDLE_UNITTESTS} COMMAND ${BUNDLE_UNITTESTS}
- WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/tests/bundle_unittests)
+PKG_CHECK_MODULES(CAPI_BASE_COMMON_DEPS REQUIRED capi-base-common)
+PKG_CHECK_MODULES(DLOG_DEPS REQUIRED dlog)
+PKG_CHECK_MODULES(GLIB_DEPS REQUIRED glib-2.0)
+PKG_CHECK_MODULES(GMOCK_DEPS REQUIRED gmock)
+PKG_CHECK_MODULES(JSON_GLIB_DEPS REQUIRED json-glib-1.0)
+PKG_CHECK_MODULES(SQLITE3_DEPS REQUIRED sqlite3)
+ADD_SUBDIRECTORY(src)
ADD_SUBDIRECTORY(tests)
-ADD_DEPENDENCIES(bundle_unittests bundle)
-SET(PARCEL_UNITTESTS parcel_unittests)
-ADD_TEST(NAME ${PARCEL_UNITTESTS} COMMAND ${PARCEL_UNITTESTS}
- WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/tests/parcel_unittests)
+ENABLE_TESTING()
+ADD_TEST(NAME ${TARGET_BUNDLE_UNITTESTS}
+ COMMAND ${TARGET_BUNDLE_UNITTESTS}
+ WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/tests/bundle_unittests)
-ADD_DEPENDENCIES(parcel_unittests parcel)
+ADD_TEST(NAME ${TARGET_PARCEL_UNITTESTS}
+ COMMAND ${TARGET_PARCEL_UNITTESTS}
+ WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/tests/parcel_unittests)
-SET(TIZEN_DATABASE_UNITTESTS tizen-database_unittests)
-ADD_TEST(NAME ${TIZEN_DATABASE_UNITTESTS} COMMAND ${TIZEN_DATABASE_UNITTESTS}
- WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/tests/tizen-database_unittests)
+ADD_TEST(NAME ${TARGET_TIZEN_DATABASE_UNITTESTS}
+ COMMAND ${TARGET_TIZEN_DATABASE_UNITTESTS}
+ WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/tests/tizen-database_unittests)
-SET(TIZEN_SHARED_QUEUE_UNITTESTS tizen-shared-queue_unittests)
-ADD_TEST(NAME ${TIZEN_SHARED_QUEUE_UNITTESTS}
- COMMAND ${TIZEN_SHARED_QUEUE_UNITTESTS}
+ADD_TEST(NAME ${TARGET_TIZEN_SHARED_QUEUE_UNITTESTS}
+ COMMAND ${TARGET_TIZEN_SHARED_QUEUE_UNITTESTS}
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/tests/tizen-shared-queue_unittests)
-
-ENDIF(NOT DEFINED MINIMUM_BUILD)
--- /dev/null
+# Copyright (c) 2024 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)
export LDFLAGS+=" -lgcov"
%endif
-%cmake -DVERSION=%{version} .
+MAJORVER=`echo %{version} | awk 'BEGIN {FS="."}{print $1}'`
+%cmake . -DFULLVER=%{version} -DMAJORVER=${MAJORVER}
%__make %{?_smp_mflags}
%check
+export LD_LIBRARY_PATH="../../src/bundle:../../src/parcel"
ctest --verbose %{?_smp_mflags}
%if 0%{?gcov:1}
lcov -c --ignore-errors mismatch,graph,unused --no-external -b . -d . -o %{name}.info
+++ /dev/null
-CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
-PROJECT(parcel C CXX)
-
-INCLUDE(FindPkgConfig)
-PKG_CHECK_MODULES(pkgs REQUIRED dlog capi-base-common glib-2.0)
-
-FOREACH(flag ${pkgs_CFLAGS})
- SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
-ENDFOREACH(flag)
-SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -fvisibility=hidden -flto -Wall -Werror -Winline")
-
-SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_CFLAGS} -std=c++17")
-SET(CMAKE_CXX_FLAGS_DEBUG "-O0 -g")
-SET(CMAKE_CXX_FLAGS_RELEASE "-O2")
-
-INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../)
-INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/)
-INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/api)
-
-AUX_SOURCE_DIRECTORY(${CMAKE_SOURCE_DIR}/parcel PARCEL_SRCS)
-
-ADD_LIBRARY (${PROJECT_NAME} SHARED ${PARCEL_SRCS})
-
-SET_TARGET_PROPERTIES(parcel PROPERTIES SOVERSION ${VERSION_MAJOR})
-SET_TARGET_PROPERTIES(parcel PROPERTIES VERSION "${VERSION}")
-
-SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES COMPILE_FLAGS "${EXTRA_CFLAGS} -fPIE")
-SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES LINK_FLAGS "-pie")
-
-### Make pkgconfig file
-SET(PREFIX ${CMAKE_INSTALL_PREFIX})
-CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/parcel.pc.in
- ${CMAKE_BINARY_DIR}/parcel.pc @ONLY)
-
-### Install
-INSTALL(TARGETS parcel DESTINATION ${LIB_INSTALL_DIR})
-INSTALL(FILES ${CMAKE_BINARY_DIR}/parcel.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig/)
-
-SET(HEADER_PARCEL
- common.hh
- parcel.hh
- parcelable.hh
-)
-
-FOREACH(hfile ${HEADER_PARCEL})
- INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${hfile} DESTINATION include/parcel)
-ENDFOREACH(hfile)
-
-INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/api/parcel.h
- DESTINATION include/parcel)
--- /dev/null
+ADD_SUBDIRECTORY(bundle)
+ADD_SUBDIRECTORY(parcel)
+ADD_SUBDIRECTORY(tizen-database)
+ADD_SUBDIRECTORY(tizen-shared-queue)
--- /dev/null
+AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR} BUNDLE_SRCS)
+
+ADD_LIBRARY(${TARGET_BUNDLE} SHARED ${BUNDLE_SRCS})
+
+SET_TARGET_PROPERTIES(${TARGET_BUNDLE} PROPERTIES SOVERSION ${MAJORVER})
+SET_TARGET_PROPERTIES(${TARGET_BUNDLE} PROPERTIES VERSION ${FULLVER})
+
+TARGET_INCLUDE_DIRECTORIES(${TARGET_BUNDLE} PUBLIC
+ ${CMAKE_CURRENT_SOURCE_DIR}
+ ${CMAKE_CURRENT_SOURCE_DIR}/include
+ ${CMAKE_CURRENT_SOURCE_DIR}/../)
+
+APPLY_PKG_CONFIG(${TARGET_BUNDLE} PUBLIC
+ CAPI_BASE_COMMON_DEPS
+ DLOG_DEPS
+ GLIB_DEPS
+ JSON_GLIB_DEPS)
+
+SET(PREFIX ${CMAKE_INSTALL_PREFIX})
+SET(VERSION ${FULLVER})
+
+CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/bundle.pc.in
+ ${CMAKE_CURRENT_SOURCE_DIR}/bundle.pc @ONLY)
+
+INSTALL(TARGETS ${TARGET_BUNDLE} DESTINATION ${LIB_INSTALL_DIR})
+INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/ DESTINATION include/)
+INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/bundle.pc DESTINATION
+ ${LIB_INSTALL_DIR}/pkgconfig/)
--- /dev/null
+AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR} PARCEL_SRCS)
+
+ADD_LIBRARY(${TARGET_PARCEL} SHARED ${PARCEL_SRCS})
+
+TARGET_INCLUDE_DIRECTORIES(${TARGET_PARCEL} PUBLIC
+ ${CMAKE_CURRENT_SOURCE_DIR}
+ ${CMAKE_CURRENT_SOURCE_DIR}/api
+ ${CMAKE_CURRENT_SOURCE_DIR}/../)
+
+SET_TARGET_PROPERTIES(${TARGET_PARCEL} PROPERTIES SOVERSION ${MAJORVER})
+SET_TARGET_PROPERTIES(${TARGET_PARCEL} PROPERTIES VERSION ${FULLVER})
+
+APPLY_PKG_CONFIG(${TARGET_PARCEL} PUBLIC
+ CAPI_BASE_COMMON_DEPS
+ DLOG_DEPS
+ GLIB_DEPS
+)
+
+TARGET_LINK_LIBRARIES(${TARGET_PARCEL} PUBLIC ${TARGET_BUNDLE})
+
+CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/parcel.pc.in
+ ${CMAKE_CURRENT_SOURCE_DIR}/parcel.pc @ONLY)
+
+INSTALL(TARGETS ${TARGET_PARCEL} DESTINATION ${LIB_INSTALL_DIR})
+INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/parcel.pc
+ DESTINATION ${LIB_INSTALL_DIR}/pkgconfig/)
+
+INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
+ DESTINATION include/parcel/
+ FILES_MATCHING
+ PATTERN "*.hh"
+ PATTERN "*_private.hh" EXCLUDE
+ PATTERN "*_implementation.hh" EXCLUDE)
+
+ INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/api
+ DESTINATION include/parcel/
+ FILES_MATCHING
+ PATTERN "*.h")
-### Make pkgconfig file
-SET(PREFIX ${CMAKE_INSTALL_PREFIX})
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/tizen-database.pc.in
${CMAKE_BINARY_DIR}/tizen-database.pc @ONLY)
-### Install
-INSTALL(FILES ${CMAKE_BINARY_DIR}/tizen-database.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig/)
+INSTALL(FILES ${CMAKE_BINARY_DIR}/tizen-database.pc
+ DESTINATION ${LIB_INSTALL_DIR}/pkgconfig/)
INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/database.hpp
DESTINATION include/tizen-database)
-### Make pkgconfig file
-SET(PREFIX ${CMAKE_INSTALL_PREFIX})
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/tizen-shared-queue.pc.in
${CMAKE_BINARY_DIR}/tizen-shared-queue.pc @ONLY)
-### Install
INSTALL(FILES ${CMAKE_BINARY_DIR}/tizen-shared-queue.pc
DESTINATION ${LIB_INSTALL_DIR}/pkgconfig/)
INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/shared-queue.hpp
ADD_SUBDIRECTORY(parcel_unittests)
ADD_SUBDIRECTORY(tizen-database_unittests)
ADD_SUBDIRECTORY(tizen-shared-queue_unittests)
+
+ADD_DEPENDENCIES(${TARGET_BUNDLE_UNITTESTS} ${TARGET_BUNDLE})
+ADD_DEPENDENCIES(${TARGET_PARCEL_UNITTESTS} ${TARGET_PARCEL})
-CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
-PROJECT(bundle_unittests C CXX)
+AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR}/src BUNDLE_UNITTESTS_SRCS)
-INCLUDE(FindPkgConfig)
-PKG_CHECK_MODULES(bundle_unittests REQUIRED
- dlog
- gmock
- glib-2.0
- json-glib-1.0
- capi-base-common
-)
-
-FOREACH(flag ${bundle_unittests_CFLAGS})
- SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
-ENDFOREACH(flag)
-SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -fvisibility=hidden -Wall -Werror -Winline")
-
-SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_CFLAGS} -std=c++17")
-SET(CMAKE_CXX_FLAGS_DEBUG "-O0 -g")
-SET(CMAKE_CXX_FLAGS_RELEASE "-O2")
+ADD_EXECUTABLE(${TARGET_BUNDLE_UNITTESTS} ${BUNDLE_UNITTESTS_SRCS})
-INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../)
-INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../../)
-INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../../src)
-INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../../include)
-INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../../bundle)
-
-AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR}/src UNITTESTS_SOURCES)
-AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR}/../../src BUNDLE_SOURCES)
+TARGET_INCLUDE_DIRECTORIES(${TARGET_BUNDLE_UNITTESTS} PUBLIC
+ ${CMAKE_CURRENT_SOURCE_DIR}
+ ${CMAKE_CURRENT_SOURCE_DIR}/../
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../bundle/include
+)
-ADD_EXECUTABLE(${PROJECT_NAME}
- ${BUNDLE_SOURCES}
- ${UNITTESTS_SOURCES}
+APPLY_PKG_CONFIG(${TARGET_BUNDLE_UNITTESTS} PUBLIC
+ GMOCK_DEPS
+ DLOG_DEPS
+ GLIB_DEPS
)
-SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES COMPILE_FLAGS "${EXTRA_CFLAGS}")
-TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${bundle_unittests_LDFLAGS})
+TARGET_LINK_LIBRARIES(${TARGET_BUNDLE_UNITTESTS} PRIVATE ${TARGET_BUNDLE})
-INSTALL(TARGETS ${PROJECT_NAME} DESTINATION /usr/bin/)
+INSTALL(TARGETS ${TARGET_BUNDLE_UNITTESTS} DESTINATION bin)
-CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
-PROJECT(parcel_unittests C CXX)
+AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR} PARCEL_UNITTESTS_SRCS)
-INCLUDE(FindPkgConfig)
-PKG_CHECK_MODULES(parcel_unittests REQUIRED
- capi-base-common
- dlog
- glib-2.0
- gmock
- json-glib-1.0
-)
-
-FOREACH(flag ${parcel_unittests_CFLAGS})
- SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
-ENDFOREACH(flag)
-SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -fvisibility=hidden -Wall -Werror -Winline")
-
-SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_CFLAGS} -std=c++17")
-SET(CMAKE_CXX_FLAGS_DEBUG "-O0 -g")
-SET(CMAKE_CXX_FLAGS_RELEASE "-O2")
+ADD_EXECUTABLE(${TARGET_PARCEL_UNITTESTS} ${PARCEL_UNITTESTS_SRCS})
-INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../)
-INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../../)
-INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../../src)
-INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../../include)
-INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../../parcel)
-INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../../parcel/api)
-
-AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR}/ UNITTESTS_SOURCES)
-AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR}/../../src BUNDLE_SOURCES)
-AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR}/../../parcel PARCEL_SOURCES)
+TARGET_INCLUDE_DIRECTORIES(${TARGET_PARCEL_UNITTESTS} PUBLIC
+ ${CMAKE_CURRENT_SOURCE_DIR}
+ ${CMAKE_CURRENT_SOURCE_DIR}/../
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../src
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../src/parcel
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../src/parcel/api
+)
-ADD_EXECUTABLE(${PROJECT_NAME}
- ${BUNDLE_SOURCES}
- ${PARCEL_SOURCES}
- ${UNITTESTS_SOURCES}
+APPLY_PKG_CONFIG(${TARGET_PARCEL_UNITTESTS} PUBLIC
+ GMOCK_DEPS
)
-SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES COMPILE_FLAGS "${EXTRA_CFLAGS}")
-TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${parcel_unittests_LDFLAGS})
+TARGET_LINK_LIBRARIES(${TARGET_PARCEL_UNITTESTS} PRIVATE ${TARGET_PARCEL})
-INSTALL(TARGETS ${PROJECT_NAME} DESTINATION /usr/bin/)
+INSTALL(TARGETS ${TARGET_PARCEL_UNITTESTS} DESTINATION bin)
-CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
-PROJECT(tizen-database_unittests CXX)
+AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR}/src TIZEN_DATABASE_UNITTESTS_SRCS)
-INCLUDE(FindPkgConfig)
-PKG_CHECK_MODULES(tizen-database_unittests REQUIRED
- gmock
- sqlite3
-)
-
-SET(EXTRA_CFLAGS "")
-FOREACH(flag ${database_unittests_CFLAGS})
- SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
-ENDFOREACH(flag)
-SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -fvisibility=hidden -Wall -Werror")
-
-SET(CMAKE_CXX_FLAGS "${EXTRA_CFLAGS} -std=c++17")
-SET(CMAKE_CXX_FLAGS_DEBUG "-O0 -g")
-SET(CMAKE_CXX_FLAGS_RELEASE "-O2")
+ADD_EXECUTABLE(${TARGET_TIZEN_DATABASE_UNITTESTS}
+ ${TIZEN_DATABASE_UNITTESTS_SRCS})
-INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../../)
-AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR}/src UNITTESTS_SOURCES)
+TARGET_INCLUDE_DIRECTORIES(${TARGET_TIZEN_DATABASE_UNITTESTS} PUBLIC
+ ${CMAKE_CURRENT_SOURCE_DIR}
+ ${CMAKE_CURRENT_SOURCE_DIR}/../
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../src
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../src/tizen-database
+)
-ADD_EXECUTABLE(${PROJECT_NAME}
- ${UNITTESTS_SOURCES}
+APPLY_PKG_CONFIG(${TARGET_TIZEN_DATABASE_UNITTESTS} PUBLIC
+ GMOCK_DEPS
+ SQLITE3_DEPS
)
-SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES COMPILE_FLAGS "${EXTRA_CFLAGS}")
-TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${tizen-database_unittests_LDFLAGS})
-INSTALL(TARGETS ${PROJECT_NAME} DESTINATION /usr/bin/)
\ No newline at end of file
+#TARGET_LINK_LIBRARIES(${TARGET_TIZEN_DATABASE_UNITTESTS} PRIVATE
+# ${TARGET_TIZEN_DATABASE})
+
+INSTALL(TARGETS ${TARGET_TIZEN_DATABASE_UNITTESTS} DESTINATION bin)
-CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
-PROJECT(tizen-shared-queue_unittests CXX)
+AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR}
+ TIZEN_SHARED_QUEUE_UNITTESTS_SRCS)
-INCLUDE(FindPkgConfig)
-PKG_CHECK_MODULES(tizen-shared-queue_unittests REQUIRED gmock)
+ADD_EXECUTABLE(${TARGET_TIZEN_SHARED_QUEUE_UNITTESTS}
+ ${TIZEN_SHARED_QUEUE_UNITTESTS_SRCS})
-SET(EXTRA_CFLAGS "")
-FOREACH(flag ${tizen-shared-queue_unittests_CFLAGS})
- SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
-ENDFOREACH(flag)
-SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -fvisibility=hidden -Wall -Werror")
+TARGET_INCLUDE_DIRECTORIES(${TARGET_TIZEN_SHARED_QUEUE_UNITTESTS} PUBLIC
+ ${CMAKE_CURRENT_SOURCE_DIR}
+ ${CMAKE_CURRENT_SOURCE_DIR}/../
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../src
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../src/tizen-shared-queue
+)
-SET(CMAKE_CXX_FLAGS "${EXTRA_CFLAGS} -std=c++17")
-SET(CMAKE_CXX_FLAGS_DEBUG "-O0 -g")
-SET(CMAKE_CXX_FLAGS_RELEASE "-O2")
+APPLY_PKG_CONFIG(${TARGET_TIZEN_SHARED_QUEUE_UNITTESTS} PUBLIC
+ GMOCK_DEPS
+)
-INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../../)
-AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR} UNITTESTS_SOURCES)
+#TARGET_LINK_LIBRARIES(${TARGET_TIZEN_SHARED_QUEUE_UNITTESTS}
+# PRIVATE ${TARGET_TIZEN_SHARED_QUEUE})
-ADD_EXECUTABLE(${PROJECT_NAME} ${UNITTESTS_SOURCES})
-
-SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES COMPILE_FLAGS
- "${EXTRA_CFLAGS}")
-TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${tizen-shared-queue_unittests_LDFLAGS})
-INSTALL(TARGETS ${PROJECT_NAME} DESTINATION /usr/bin/)
+INSTALL(TARGETS ${TARGET_TIZEN_SHARED_QUEUE_UNITTESTS} DESTINATION bin)