CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
-PROJECT(aul C CXX)
-SET(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS true)
+
+PROJECT(aul)
+
SET(PREFIX ${CMAKE_INSTALL_PREFIX})
+SET(BINDIR "${CMAKE_INSTALL_PREFIX}/bin")
+SET(LIBDIR ${LIB_INSTALL_DIR})
+SET(INCLUDEDIR "\${prefix}/include")
SET(EXEC_PREFIX "\${prefix}")
-SET(VERSION ${FULLVER})
ADD_DEFINITIONS("-DSHARE_PREFIX=\"${SHARE_INSTALL_PREFIX}/aul\"")
-# Set required packages
-INCLUDE(FindPkgConfig)
-SET(AUL-1_LIB_PKG_CHECK_MODULES
- bundle
- capi-system-info
- dlog
- gio-2.0
- glib-2.0
- iniparser
- libsmack
- libtzplatform-config
- libxml-2.0
- pkgmgr-info
- sqlite3
- storage
- ttrace
- uuid
- vconf
- xdgmime
- )
-pkg_check_modules(libpkgs REQUIRED ${AUL-1_LIB_PKG_CHECK_MODULES})
-
-FOREACH(flag ${libpkgs_CFLAGS})
- SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
-ENDFOREACH(flag)
-
-pkg_check_modules(APP_LAUNCHER_DEPS glib-2.0 pkgmgr-info bundle)
-FOREACH(APP_LAUNCHER_FLAGS ${APP_LAUNCHER_DEPS_CFLAGS})
- SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${APP_LAUNCHER_FLAGS}")
-ENDFOREACH(APP_LAUNCHER_FLAGS)
-
-# Compiler flags
-INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include)
-INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/legacy)
-INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/feature)
-INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR})
-INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/aul)
-INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/aul/api)
-INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/aul/app_manager)
-INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/aul/common)
-INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/aul/socket)
-
-SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -Wl,-zdefs" )
-SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -fvisibility=hidden")
-SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -fpic")
-SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -Werror")
-SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}")
+## Compile flags
+SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wl,-zdefs -fvisibility=hidden -g -Wall -Werror -fpic")
SET(CMAKE_C_FLAGS_DEBUG "-O0 -g")
SET(CMAKE_C_FLAGS_RELEASE "-O2")
-SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_CFLAGS} -fvisibility=hidden -std=c++14")
+SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_C_FLAGS} -std=c++14")
SET(CMAKE_CXX_FLAGS_DEBUG "-O0 -g")
SET(CMAKE_CXX_FLAGS_RELEASE "-O2")
-SET(CMAKE_SKIP_BUILD_RPATH true)
-# Linker flags
SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed")
-# aul
-AUX_SOURCE_DIRECTORY(src SOURCES)
-AUX_SOURCE_DIRECTORY(aul AUL_SOURCES)
-AUX_SOURCE_DIRECTORY(aul/api AUL_API_SOURCES)
-AUX_SOURCE_DIRECTORY(aul/app_manager AUL_APP_MANAGER_SOURCES)
-AUX_SOURCE_DIRECTORY(aul/common AUL_COMMON_SOURCES)
-AUX_SOURCE_DIRECTORY(aul/socket AUL_SOCKET_SOURCES)
-add_library(aul SHARED
- ${SOURCES}
- ${AUL_SOURCES}
- ${AUL_API_SOURCES}
- ${AUL_APP_MANAGER_SOURCES}
- ${AUL_COMMON_SOURCES}
- ${AUL_SOCKET_SOURCES})
-TARGET_LINK_LIBRARIES(aul ${libpkgs_LDFLAGS})
-SET_TARGET_PROPERTIES(aul PROPERTIES SOVERSION ${MAJORVER})
-SET_TARGET_PROPERTIES(aul PROPERTIES VERSION ${FULLVER})
-INSTALL(TARGETS aul DESTINATION ${LIB_INSTALL_DIR} COMPONENT RuntimeLibraries)
+SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules/")
+
+## Target
+SET(TARGET_AUL "aul")
+
+ENABLE_TESTING()
+SET(TARGET_AUL_UNIT_TEST "aul-unit-test")
+
+INCLUDE(FindPkgConfig)
+INCLUDE(ApplyPkgConfig)
+
+PKG_CHECK_MODULES(BUNDLE_DEPS REQUIRED bundle)
+PKG_CHECK_MODULES(CAPI_SYSTEM_INFO_DEPS REQUIRED capi-system-info)
+PKG_CHECK_MODULES(DLOG_DEPS REQUIRED dlog)
+PKG_CHECK_MODULES(GIO_DEPS REQUIRED gio-2.0)
+PKG_CHECK_MODULES(GLIB_DEPS REQUIRED glib-2.0)
+PKG_CHECK_MODULES(GMOCK_DEPS REQUIRED gmock)
+PKG_CHECK_MODULES(INIPARSER_DEPS REQUIRED iniparser)
+PKG_CHECK_MODULES(LIBSMACK_DEPS REQUIRED libsmack)
+PKG_CHECK_MODULES(LIBTZPLATFORM_CONFIG_DEPS REQUIRED libtzplatform-config)
+PKG_CHECK_MODULES(LIBXML_DEPS REQUIRED libxml-2.0)
+PKG_CHECK_MODULES(PKGMGR_INFO_DEPS REQUIRED pkgmgr-info)
+PKG_CHECK_MODULES(PKGMGR_INSTALLER_DEPS REQUIRED pkgmgr-installer)
+PKG_CHECK_MODULES(SQLITE3_DEPS REQUIRED sqlite3)
+PKG_CHECK_MODULES(STORAGE_DEPS REQUIRED storage)
+PKG_CHECK_MODULES(TTRACE_DEPS REQUIRED ttrace)
+PKG_CHECK_MODULES(UUID_DEPS REQUIRED uuid)
+PKG_CHECK_MODULES(VCONF_DEPS REQUIRED vconf)
+PKG_CHECK_MODULES(XDGMIME_DEPS REQUIRED xdgmime)
+
+
+## Target sources
+AUX_SOURCE_DIRECTORY(src SRCS)
+AUX_SOURCE_DIRECTORY(aul AUL_SRCS)
+AUX_SOURCE_DIRECTORY(aul/api AUL_API_SRCS)
+AUX_SOURCE_DIRECTORY(aul/app_manager AUL_APP_MANAGER_SRCS)
+AUX_SOURCE_DIRECTORY(aul/common AUL_COMMON_SRCS)
+AUX_SOURCE_DIRECTORY(aul/socket AUL_SOCKET_SRCS)
+
+ADD_LIBRARY(${TARGET_AUL} SHARED
+ ${SRCS}
+ ${AUL_SRCS}
+ ${AUL_API_SRCS}
+ ${AUL_APP_MANAGER_SRCS}
+ ${AUL_COMMON_SRCS}
+ ${AUL_SOCKET_SRCS}
+)
+
+TARGET_INCLUDE_DIRECTORIES(${TARGET_AUL} PUBLIC
+ ${CMAKE_CURRENT_SOURCE_DIR}
+ ${CMAKE_CURRENT_SOURCE_DIR}/include
+ ${CMAKE_CURRENT_SOURCE_DIR}/include/internal
+ ${CMAKE_CURRENT_SOURCE_DIR}/aul/
+ ${CMAKE_CURRENT_SOURCE_DIR}/aul/api
+ ${CMAKE_CURRENT_SOURCE_DIR}/aul/app_manager
+ ${CMAKE_CURRENT_SOURCE_DIR}/aul/common
+ ${CMAKE_CURRENT_SOURCE_DIR}/aul/socket
+)
+
+SET_TARGET_PROPERTIES(${TARGET_AUL} PROPERTIES SOVERSION ${MAJORVER})
+SET_TARGET_PROPERTIES(${TARGET_AUL} PROPERTIES VERSION ${FULLVER})
+
+APPLY_PKG_CONFIG(${TARGET_AUL} PUBLIC
+ BUNDLE_DEPS
+ CAPI_SYSTEM_INFO_DEPS
+ DLOG_DEPS
+ GIO_DEPS
+ GLIB_DEPS
+ INIPARSER_DEPS
+ LIBSMACK_DEPS
+ LIBTZPLATFORM_CONFIG_DEPS
+ LIBXML_DEPS
+ PKGMGR_INFO_DEPS
+ SQLITE3_DEPS
+ STORAGE_DEPS
+ TTRACE_DEPS
+ UUID_DEPS
+ VCONF_DEPS
+ XDGMIME_DEPS
+)
+
+INSTALL(TARGETS ${TARGET_AUL} DESTINATION ${LIB_INSTALL_DIR} COMPONENT RuntimeLibraries)
# pkgconfig file
CONFIGURE_FILE(aul.pc.in aul.pc @ONLY)
CONFIGURE_FILE(feature/preexec_list.txt.in feature/preexec_list.txt @ONLY)
-SET(HEADERS_LIB_AUL
- aul.h
- aul_sock.h
- aul_proc.h
- aul_rsc_mgr.h
- aul_svc.h
- aul_cmd.h
- aul_app_com.h
- aul_screen_connector.h
- aul_window.h
- aul_widget.h
- aul_job_scheduler.h
- aul_rpc_port.h
- aul_complication.h
- aul_debug_info.h
- aul_watchdog.h
- aul_svc_internal.h
- aul_key.h
- aul_comp_status.h
- aul_app_group.h
- aul_comp_info.h
- aul_comp_context.h
- aul_comp_info_internal.h
- aul_watch_control.h
- aul_comp_types.h
- aul_launcher_service.h
- aul_running_context.h
- )
-
-# Install headers, other files
-FOREACH(hfile ${HEADERS_LIB_AUL})
- INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/include/${hfile} DESTINATION include/aul)
-ENDFOREACH(hfile)
-
-SET(HEADERS_LIB_AUL_API
- aul_app_context.h
- aul_app_manager.h
- aul_app_event.h
- )
-FOREACH(hfile ${HEADERS_LIB_AUL_API})
- INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/aul/api/${hfile} DESTINATION include/aul/api)
-ENDFOREACH(hfile)
-
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/aul.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/feature/preexec_list.txt DESTINATION ${SHARE_INSTALL_PREFIX}/aul )
INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/data/miregex DESTINATION ${SHARE_INSTALL_PREFIX}/aul )
INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/aul.conf DESTINATION /etc/dbus-1/system.d)
+INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/include/ DESTINATION include/aul/
+ FILES_MATCHING
+ PATTERN "*.h"
+)
+INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/aul/api/ DESTINATION include/aul/api/
+ FILES_MATCHING
+ PATTERN "*.h"
+)
-# tool
+## Sub directories
ADD_SUBDIRECTORY(tool)
ADD_SUBDIRECTORY(parser)
+ADD_SUBDIRECTORY(test)
--- /dev/null
+# Copyright (c) 2020 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)
BuildRequires: pkgconfig(libxml-2.0)
BuildRequires: pkgconfig(uuid)
BuildRequires: pkgconfig(libsmack)
+BuildRequires: pkgconfig(gmock)
Recommends: amd
Recommends: amd-mod-component-manager
-CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
-
ADD_SUBDIRECTORY(metadata)
ADD_SUBDIRECTORY(component)
-CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
-PROJECT(component-plugin-parser C)
-
-SET(COMPONENT_PLUGIN_PARSER "component-based-application")
+SET(TARGET_COMPONENT_PLUGIN_PARSER "component-based-application")
SET(SHARED_DIR "${CMAKE_INSTALL_PREFIX}/share")
-INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/inc)
-
-AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR}/src SRCS)
-
-INCLUDE(FindPkgConfig)
-pkg_check_modules(COMPONENT_PLUGIN_PARSER REQUIRED
- glib-2.0
- libxml-2.0
- dlog
- libtzplatform-config
- pkgmgr-installer
- pkgmgr-info
- sqlite3
- )
+SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC -Wall -Werror -Winline")
-FOREACH(flag ${COMPONENT_PLUGIN_PARSER_CFLAGS})
- SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
-ENDFOREACH(flag)
+AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR}/src
+ COMPONENT_PLUGIN_PARSER_SRCS)
-SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -fvisibility=hidden -fPIC -Wall -Werror -Winline")
+ADD_LIBRARY(${TARGET_COMPONENT_PLUGIN_PARSER} SHARED ${COMPONENT_PLUGIN_PARSER_SRCS})
+TARGET_LINK_LIBRARIES(${TARGET_COMPONENT_PLUGIN_PARSER} PUBLIC dl)
-ADD_LIBRARY(${COMPONENT_PLUGIN_PARSER} SHARED ${SRCS})
+TARGET_INCLUDE_DIRECTORIES(${TARGET_COMPONENT_PLUGIN_PARSER}
+ PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/inc)
-SET_TARGET_PROPERTIES(${COMPONENT_PLUGIN_PARSER} PROPERTIES COMPILE_FLAGS "${EXTRA_CFLAGS}")
-TARGET_LINK_LIBRARIES(${COMPONENT_PLUGIN_PARSER} ${COMPONENT_PLUGIN_PARSER_LDFLAGS} "-ldl")
+APPLY_PKG_CONFIG(${TARGET_COMPONENT_PLUGIN_PARSER} PUBLIC
+ DLOG_DEPS
+ GLIB_DEPS
+ LIBTZPLATFORM_CONFIG_DEPS
+ LIBXML_DEPS
+ PKGMGR_INFO_DEPS
+ PKGMGR_INSTALLER_DEPS
+ SQLITE3_DEPS
+)
-INSTALL(TARGETS ${COMPONENT_PLUGIN_PARSER}
- DESTINATION ${SYSCONF_INSTALL_DIR}/package-manager/parserlib)
+INSTALL(TARGETS ${TARGET_COMPONENT_PLUGIN_PARSER}
+ DESTINATION ${SYSCONF_INSTALL_DIR}/package-manager/parserlib)
INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/data/component.info
- DESTINATION ${SHARED_DIR}/parser-plugins)
+ DESTINATION ${SHARED_DIR}/parser-plugins)
INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/script/14_component-add.post
- DESTINATION ${SYSCONF_INSTALL_DIR}/gumd/useradd.d)
+ DESTINATION ${SYSCONF_INSTALL_DIR}/gumd/useradd.d)
INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/script/501.component_upgrade.sh
- DESTINATION ${SHARE_INSTALL_PREFIX}/upgrade/scripts)
+ DESTINATION ${SHARE_INSTALL_PREFIX}/upgrade/scripts)
-CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
-PROJECT(aul-parser C)
+SET(TARGET_AUL_PARSER "aul-parser")
-INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/inc)
+SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC")
-AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR}/src SRCS)
+AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR}/src AUL_PARSER_SRCS)
-pkg_check_modules(PKGS REQUIRED
- glib-2.0
- libxml-2.0
- dlog
- libtzplatform-config
- pkgmgr-installer
- sqlite3
- )
+ADD_LIBRARY(${TARGET_AUL_PARSER} SHARED ${AUL_PARSER_SRCS})
-FOREACH(FLAGS ${PKGS_CFLAGS})
- SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${FLAGS}")
-ENDFOREACH(FLAGS)
+TARGET_INCLUDE_DIRECTORIES(${TARGET_AUL_PARSER}
+ PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/inc)
-SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fvisibility=hidden -fPIC")
+APPLY_PKG_CONFIG(${TARGET_AUL_PARSER} PUBLIC
+ DLOG_DEPS
+ GLIB_DEPS
+ LIBTZPLATFORM_CONFIG_DEPS
+ LIBXML_DEPS
+ PKGMGR_INSTALLER_DEPS
+ SQLITE3_DEPS
+)
-ADD_LIBRARY(aul-parser SHARED ${SRCS})
-TARGET_LINK_LIBRARIES(aul-parser ${PKGS_LDFLAGS})
-
-INSTALL(TARGETS aul-parser DESTINATION ${SYSCONF_INSTALL_DIR}/package-manager/parserlib/metadata)
+INSTALL(TARGETS ${TARGET_AUL_PARSER}
+ DESTINATION ${SYSCONF_INSTALL_DIR}/package-manager/parserlib/metadata)
--- /dev/null
+ADD_SUBDIRECTORY(unit_tests)
--- /dev/null
+AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR}/ UNIT_TESTS_SRCS)
+AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR}/mock/ UNIT_TESTS_SRCS)
+ADD_EXECUTABLE(${TARGET_AUL_UNIT_TEST} ${UNIT_TESTS_SRCS})
+
+TARGET_INCLUDE_DIRECTORIES(${TARGET_AUL_UNIT_TEST} PUBLIC
+ "${CMAKE_CURRENT_SOURCE_DIR}/../"
+ "${CMAKE_CURRENT_SOURCE_DIR}/../../include"
+ "${CMAKE_CURRENT_SOURCE_DIR}/../../src"
+)
+
+APPLY_PKG_CONFIG(${TARGET_AUL_UNIT_TEST} PUBLIC
+ GLIB_DEPS
+ GMOCK_DEPS
+ BUNDLE_DEPS
+)
+
+TARGET_LINK_LIBRARIES(${TARGET_AUL_UNIT_TEST} PUBLIC ${TARGET_AUL})
+SET_TARGET_PROPERTIES(${TARGET_AUL_UNIT_TEST} PROPERTIES COMPILE_FLAGS "-fPIE")
+SET_TARGET_PROPERTIES(${TARGET_AUL_UNIT_TEST} PROPERTIES LINK_FLAGS "-pie")
+
+ADD_TEST(
+ NAME ${TARGET_AUL_UNIT_TEST}
+ COMMAND ${TARGET_AUL_UNIT_TEST}
+)
--- /dev/null
+// Copyright (c) 2020 Samsung Electronics Co., Ltd All Rights Reserved
+// Use of this source code is governed by a apache 2.0 license that can be
+// found in the LICENSE file.
+
+#include <gtest/gtest.h>
+#include <gmock/gmock.h>
+
+int main(int argc, char** argv) {
+ try {
+ testing::InitGoogleTest(&argc, argv);
+ } catch(...) {
+ std::cout << "Exception occurred" << std::endl;
+ }
+
+ int ret;
+ try {
+ ret = RUN_ALL_TESTS();
+ } catch (const ::testing::internal::GoogleTestFailureException& e) {
+ ret = -1;
+ std::cout << "GoogleTestFailureException was thrown:" << e.what()
+ << std::endl;
+ }
+
+ return ret;
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef UNIT_TESTS_MOCK_MOCK_HOOK_H_
+#define UNIT_TESTS_MOCK_MOCK_HOOK_H_
+
+#define MOCK_HOOK_P0(MOCK_CLASS, f) \
+ TestFixture::GetMock<MOCK_CLASS>().f()
+#define MOCK_HOOK_P1(MOCK_CLASS, f, p1) \
+ TestFixture::GetMock<MOCK_CLASS>().f(p1)
+#define MOCK_HOOK_P2(MOCK_CLASS, f, p1, p2) \
+ TestFixture::GetMock<MOCK_CLASS>().f(p1, p2)
+#define MOCK_HOOK_P3(MOCK_CLASS, f, p1, p2, p3) \
+ TestFixture::GetMock<MOCK_CLASS>().f(p1, p2, p3)
+#define MOCK_HOOK_P4(MOCK_CLASS, f, p1, p2, p3, p4) \
+ TestFixture::GetMock<MOCK_CLASS>().f(p1, p2, p3, p4)
+#define MOCK_HOOK_P5(MOCK_CLASS, f, p1, p2, p3, p4, p5) \
+ TestFixture::GetMock<MOCK_CLASS>().f(p1, p2, p3, p4, p5)
+#define MOCK_HOOK_P6(MOCK_CLASS, f, p1, p2, p3, p4, p5, p6) \
+ TestFixture::GetMock<MOCK_CLASS>().f(p1, p2, p3, p4, p5, p6)
+#define MOCK_HOOK_P7(MOCK_CLASS, f, p1, p2, p3, p4, p5, p6, p7) \
+ TestFixture::GetMock<MOCK_CLASS>().f(p1, p2, p3, p4, p5, p6, p7)
+#define MOCK_HOOK_P8(MOCK_CLASS, f, p1, p2, p3, p4, p5, p6, p7, p8) \
+ TestFixture::GetMock<MOCK_CLASS>().f(p1, p2, p3, p4, p5, p6, p7, p8)
+#define MOCK_HOOK_P10(MOCK_CLASS, f, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10) \
+ TestFixture::GetMock<MOCK_CLASS>().f( \
+ p1, p2, p3, p4, p5, p6, p7, p8, p9, p10)
+
+#endif // UNIT_TESTS_MOCK_MOCK_HOOK_H_
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef UNIT_TESTS_MOCK_MODULE_MOCK_H_
+#define UNIT_TESTS_MOCK_MODULE_MOCK_H_
+
+class ModuleMock {
+ public:
+ virtual ~ModuleMock() {}
+};
+
+#endif // UNIT_TESTS_MOCK_MODULE_MOCK_H_
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "unit_tests/mock/test_fixture.h"
+
+#include <memory>
+
+std::unique_ptr<ModuleMock> TestFixture::mock_;
--- /dev/null
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef UNIT_TESTS_MOCK_TEST_FIXTURE_H_
+#define UNIT_TESTS_MOCK_TEST_FIXTURE_H_
+
+#include <gtest/gtest.h>
+
+#include <memory>
+#include <stdexcept>
+#include <string>
+#include <utility>
+
+#include "unit_tests/mock/module_mock.h"
+
+class TestFixture : public ::testing::Test {
+ public:
+ explicit TestFixture(std::unique_ptr<ModuleMock>&& mock) {
+ mock_ = std::move(mock);
+ }
+ virtual ~TestFixture() {
+ mock_.reset();
+ }
+
+ virtual void SetUp() {}
+ virtual void TearDown() {}
+
+ template <typename T>
+ static T& GetMock() {
+ auto ptr = dynamic_cast<T*>(mock_.get());
+ if (!ptr)
+ throw std::invalid_argument("The test does not provide mock of \"" +
+ std::string(typeid(T).name()) + "\"");
+ return *ptr;
+ }
+
+ static std::unique_ptr<ModuleMock> mock_;
+};
+
+#endif // UNIT_TESTS_MOCK_TEST_FIXTURE_H_
-IF(_TIZEN_FEATURE_PRELINK)
-SET(CMAKE_C_FLAGS_app_launcher "${CMAKE_C_FLAGS}")
-ELSE(_TIZEN_FEATURE_PRELINK)
-SET(CMAKE_C_FLAGS_app_launcher "${CMAKE_C_FLAGS} -fPIE")
-ENDIF(_TIZEN_FEATURE_PRELINK)
-
-SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIE")
-
-add_executable(aul_test
- aul_test.c)
-target_link_libraries(aul_test aul ${pkgs_LDFLAGS} "-pie")
-INSTALL(TARGETS aul_test DESTINATION bin)
-
-add_executable(launch_app
- launch_app.c)
-target_link_libraries(launch_app aul ${pkgs_LDFLAGS} "-pie")
-INSTALL(TARGETS launch_app DESTINATION bin)
-
-# test
-add_executable(open_app
- open_app.c)
-target_link_libraries(open_app aul ${pkgs_LDFLAGS} "-pie")
-INSTALL(TARGETS open_app DESTINATION bin)
-
-add_executable(appid2pid
- appid2pid.c)
-target_link_libraries(appid2pid aul ${pkgs_LDFLAGS} "-pie")
-INSTALL(TARGETS appid2pid DESTINATION bin)
-
-add_executable(launch_debug
- launch_debug.c)
-target_link_libraries(launch_debug aul ${pkgs_LDFLAGS} "-pie")
-INSTALL(TARGETS launch_debug DESTINATION bin)
-
-add_executable(app_launcher
- app_launcher.c)
-
-IF(_TIZEN_FEATURE_PRELINK)
-message(STATUS "[__PRELINK__] Enable")
-target_link_libraries(app_launcher aul ${pkgs_LDFLAGS})
-ELSE(_TIZEN_FEATURE_PRELINK)
-message(STATUS "[__PRELINK__] Disable")
-target_link_libraries(app_launcher aul ${pkgs_LDFLAGS} "-pie")
-ENDIF(_TIZEN_FEATURE_PRELINK)
-SET_TARGET_PROPERTIES(app_launcher PROPERTIES COMPILE_FLAGS ${CMAKE_C_FLAGS_app_launcher})
-
-INSTALL(TARGETS app_launcher DESTINATION bin)
-
-add_executable(appgroup_info
- app_group_info.c)
-target_link_libraries(appgroup_info aul ${pkgs_LDFLAGS} "-pie")
-INSTALL(TARGETS appgroup_info DESTINATION bin)
-
-add_executable(app_com_tool
- app_com_tool.c)
-target_link_libraries(app_com_tool aul ${pkgs_LDFLAGS} "-pie")
-INSTALL(TARGETS app_com_tool DESTINATION bin)
-
-add_executable(compmgr_tool
- compmgr_tool.c)
-target_link_libraries(compmgr_tool aul ${pkgs_LDFLAGS} "-pie")
-INSTALL(TARGETS compmgr_tool DESTINATION bin)
-
+ADD_SUBDIRECTORY(app_com_tool)
+ADD_SUBDIRECTORY(app_launcher)
+ADD_SUBDIRECTORY(appgroup_info)
+ADD_SUBDIRECTORY(appid2pid)
+ADD_SUBDIRECTORY(aul_test)
+ADD_SUBDIRECTORY(compmgr_tool)
+ADD_SUBDIRECTORY(launch_app)
+ADD_SUBDIRECTORY(launch_debug)
+ADD_SUBDIRECTORY(open_app)
ADD_SUBDIRECTORY(recovery)
--- /dev/null
+SET(TARGET_APP_COM_TOOL "app_com_tool")
+
+ADD_EXECUTABLE(${TARGET_APP_COM_TOOL} ${CMAKE_CURRENT_SOURCE_DIR}/app_com_tool.c)
+SET_TARGET_PROPERTIES(${TARGET_APP_COM_TOOL} PROPERTIES COMPILE_FLAGS ${CFLAGS} "-fPIE")
+SET_TARGET_PROPERTIES(${TARGET_APP_COM_TOOL} PROPERTIES LINK_FLAGS "-pie")
+TARGET_LINK_LIBRARIES(${TARGET_APP_COM_TOOL} PRIVATE ${TARGET_AUL})
+
+TARGET_INCLUDE_DIRECTORIES(${TARGET_APP_COM_TOOL} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/../../src)
+TARGET_INCLUDE_DIRECTORIES(${TARGET_APP_COM_TOOL} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/../../include)
+
+INSTALL(TARGETS ${TARGET_APP_COM_TOOL} DESTINATION bin)
--- /dev/null
+SET(TARGET_APP_LAUNCHER "app_launcher")
+
+ADD_EXECUTABLE(${TARGET_APP_LAUNCHER}
+ ${CMAKE_CURRENT_SOURCE_DIR}/app_launcher.c)
+
+IF(_TIZEN_FEATURE_PRELINK)
+MESSAGE(STATUS "[__PRELINK__] Enable")
+ELSE(_TIZEN_FEATURE_PRELINK)
+MESSAGE(STATUS "[__PRELINK__] Disable")
+SET_TARGET_PROPERTIES(${TARGET_APP_LAUNCHER} PROPERTIES COMPILE_FLAGS ${CFLAGS} "-fPIE")
+SET_TARGET_PROPERTIES(${TARGET_APP_LAUNCHER} PROPERTIES LINK_FLAGS "-pie")
+ENDIF(_TIZEN_FEATURE_PRELINK)
+
+TARGET_LINK_LIBRARIES(${TARGET_APP_LAUNCHER} PRIVATE ${TARGET_AUL})
+
+TARGET_INCLUDE_DIRECTORIES(${TARGET_APP_LAUNCHER} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/../../src)
+TARGET_INCLUDE_DIRECTORIES(${TARGET_APP_LAUNCHER} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/../../include)
+
+INSTALL(TARGETS ${TARGET_APP_LAUNCHER} DESTINATION bin)
--- /dev/null
+SET(TARGET_APP_GROUP_INFO "appgroup_info")
+
+ADD_EXECUTABLE(${TARGET_APP_GROUP_INFO} ${CMAKE_CURRENT_SOURCE_DIR}/app_group_info.c)
+SET_TARGET_PROPERTIES(${TARGET_APP_GROUP_INFO} PROPERTIES COMPILE_FLAGS ${CFLAGS} "-fPIE")
+SET_TARGET_PROPERTIES(${TARGET_APP_GROUP_INFO} PROPERTIES LINK_FLAGS "-pie")
+TARGET_LINK_LIBRARIES(${TARGET_APP_GROUP_INFO} PRIVATE ${TARGET_AUL})
+
+TARGET_INCLUDE_DIRECTORIES(${TARGET_APP_GROUP_INFO} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/../../src)
+TARGET_INCLUDE_DIRECTORIES(${TARGET_APP_GROUP_INFO} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/../../include)
+
+INSTALL(TARGETS ${TARGET_APP_GROUP_INFO} DESTINATION bin)
--- /dev/null
+SET(TARGET_APPID2PID "appid2pid")
+
+ADD_EXECUTABLE(${TARGET_APPID2PID} ${CMAKE_CURRENT_SOURCE_DIR}/appid2pid.c)
+SET_TARGET_PROPERTIES(${TARGET_APPID2PID} PROPERTIES COMPILE_FLAGS ${CFLAGS} "-fPIE")
+SET_TARGET_PROPERTIES(${TARGET_APPID2PID} PROPERTIES LINK_FLAGS "-pie")
+TARGET_LINK_LIBRARIES(${TARGET_APPID2PID} PRIVATE ${TARGET_AUL})
+
+TARGET_INCLUDE_DIRECTORIES(${TARGET_APPID2PID} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/../../src)
+TARGET_INCLUDE_DIRECTORIES(${TARGET_APPID2PID} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/../../include)
+
+INSTALL(TARGETS ${TARGET_APPID2PID} DESTINATION bin)
--- /dev/null
+SET(TARGET_AUL_TEST "aul_test")
+
+ADD_EXECUTABLE(${TARGET_AUL_TEST} ${CMAKE_CURRENT_SOURCE_DIR}/aul_test.c)
+SET_TARGET_PROPERTIES(${TARGET_AUL_TEST} PROPERTIES COMPILE_FLAGS ${CFLAGS} "-fPIE")
+SET_TARGET_PROPERTIES(${TARGET_AUL_TEST} PROPERTIES LINK_FLAGS "-pie")
+TARGET_LINK_LIBRARIES(${TARGET_AUL_TEST} PRIVATE ${TARGET_AUL})
+
+TARGET_INCLUDE_DIRECTORIES(${TARGET_AUL_TEST} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/../../src)
+TARGET_INCLUDE_DIRECTORIES(${TARGET_AUL_TEST} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/../../include)
+
+INSTALL(TARGETS ${TARGET_AUL_TEST} DESTINATION bin)
--- /dev/null
+SET(TARGET_COMPMGR_TOOL "compmgr_tool")
+
+ADD_EXECUTABLE(${TARGET_COMPMGR_TOOL} ${CMAKE_CURRENT_SOURCE_DIR}/compmgr_tool.c)
+SET_TARGET_PROPERTIES(${TARGET_COMPMGR_TOOL} PROPERTIES COMPILE_FLAGS ${CFLAGS} "-fPIE")
+SET_TARGET_PROPERTIES(${TARGET_COMPMGR_TOOL} PROPERTIES LINK_FLAGS "-pie")
+TARGET_LINK_LIBRARIES(${TARGET_COMPMGR_TOOL} PRIVATE ${TARGET_AUL})
+
+TARGET_INCLUDE_DIRECTORIES(${TARGET_COMPMGR_TOOL} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/../../src)
+TARGET_INCLUDE_DIRECTORIES(${TARGET_COMPMGR_TOOL} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/../../include)
+
+INSTALL(TARGETS ${TARGET_COMPMGR_TOOL} DESTINATION bin)
--- /dev/null
+SET(TARGET_LAUNCH_APP "launch_app")
+
+ADD_EXECUTABLE(${TARGET_LAUNCH_APP} ${CMAKE_CURRENT_SOURCE_DIR}/launch_app.c)
+SET_TARGET_PROPERTIES(${TARGET_LAUNCH_APP} PROPERTIES COMPILE_FLAGS ${CFLAGS} "-fPIE")
+SET_TARGET_PROPERTIES(${TARGET_LAUNCH_APP} PROPERTIES LINK_FLAGS "-pie")
+TARGET_LINK_LIBRARIES(${TARGET_LAUNCH_APP} PRIVATE ${TARGET_AUL})
+
+TARGET_INCLUDE_DIRECTORIES(${TARGET_LAUNCH_APP} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/../../src)
+TARGET_INCLUDE_DIRECTORIES(${TARGET_LAUNCH_APP} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/../../include)
+
+INSTALL(TARGETS ${TARGET_LAUNCH_APP} DESTINATION bin)
--- /dev/null
+SET(TARGET_LAUNCH_DEBUG "launch_debug")
+
+ADD_EXECUTABLE(${TARGET_LAUNCH_DEBUG} ${CMAKE_CURRENT_SOURCE_DIR}/launch_debug.c)
+SET_TARGET_PROPERTIES(${TARGET_LAUNCH_DEBUG} PROPERTIES COMPILE_FLAGS ${CFLAGS} "-fPIE")
+SET_TARGET_PROPERTIES(${TARGET_LAUNCH_DEBUG} PROPERTIES LINK_FLAGS "-pie")
+TARGET_LINK_LIBRARIES(${TARGET_LAUNCH_DEBUG} PRIVATE ${TARGET_AUL})
+
+TARGET_INCLUDE_DIRECTORIES(${TARGET_LAUNCH_DEBUG} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/../../src)
+TARGET_INCLUDE_DIRECTORIES(${TARGET_LAUNCH_DEBUG} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/../../include)
+
+INSTALL(TARGETS ${TARGET_LAUNCH_DEBUG} DESTINATION bin)
--- /dev/null
+SET(TARGET_OPEN_APP "open_app")
+
+ADD_EXECUTABLE(${TARGET_OPEN_APP} ${CMAKE_CURRENT_SOURCE_DIR}/open_app.c)
+SET_TARGET_PROPERTIES(${TARGET_OPEN_APP} PROPERTIES COMPILE_FLAGS ${CFLAGS} "-fPIE")
+SET_TARGET_PROPERTIES(${TARGET_OPEN_APP} PROPERTIES LINK_FLAGS "-pie")
+TARGET_LINK_LIBRARIES(${TARGET_OPEN_APP} PRIVATE ${TARGET_AUL})
+
+TARGET_INCLUDE_DIRECTORIES(${TARGET_OPEN_APP} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/../../src)
+TARGET_INCLUDE_DIRECTORIES(${TARGET_OPEN_APP} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/../../include)
+
+INSTALL(TARGETS ${TARGET_OPEN_APP} DESTINATION bin)
-CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
-PROJECT(aul-db-recovery C)
-
-SET(PREFIX "${CMAKE_INSTALL_PREFIX}")
-SET(EXEC_PREFIX "\${prefix}")
-SET(PROJECT_NAME "${PROJECT_NAME}")
-SET(LIBDIR ${LIB_INSTALL_DIR})
-SET(INCLUDEDIR "\${prefix}/include")
-SET(VERSION ${FULLVER})
-
-INCLUDE(FindPkgConfig)
-SET(requires "dlog sqlite3 libsmack libtzplatform-config")
-pkg_check_modules(aul-db-recovery REQUIRED ${requires})
-
-FOREACH(flag ${aul-db-recovery_CFLAGS})
- SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
-ENDFOREACH(flag)
-SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -fvisibility=hidden -Wall -Werror -Winline")
-
-INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../../src)
-INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../../include)
-
-ADD_EXECUTABLE(appsvc-db-recovery
- ${CMAKE_CURRENT_SOURCE_DIR}/appsvc_db_recovery.c
- ${CMAKE_CURRENT_SOURCE_DIR}/../../src/aul_db.c)
-TARGET_LINK_LIBRARIES(appsvc-db-recovery ${aul-db-recovery_LDFLAGS} "-pie")
-INSTALL(TARGETS appsvc-db-recovery DESTINATION bin)
-
-ADD_EXECUTABLE(component-db-recovery
- ${CMAKE_CURRENT_SOURCE_DIR}/component_db_recovery.c
- ${CMAKE_CURRENT_SOURCE_DIR}/../../src/aul_db.c)
-TARGET_LINK_LIBRARIES(component-db-recovery ${aul-db-recovery_LDFLAGS} "-pie")
-INSTALL(TARGETS component-db-recovery DESTINATION bin)
+########################
+## appsvc-db-recovery ##
+########################
+SET(TARGET_APPSVC_DB_RECOVERY "appsvc-db-recovery")
+ADD_EXECUTABLE(${TARGET_APPSVC_DB_RECOVERY}
+ ${CMAKE_CURRENT_SOURCE_DIR}/appsvc_db_recovery.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../src/aul_db.c)
+SET_TARGET_PROPERTIES(${TARGET_APPSVC_DB_RECOVERY} PROPERTIES COMPILE_FLAGS ${CFLAGS} "-fPIE")
+SET_TARGET_PROPERTIES(${TARGET_APPSVC_DB_RECOVERY} PROPERTIES LINK_FLAGS "-pie")
+
+TARGET_INCLUDE_DIRECTORIES(${TARGET_APPSVC_DB_RECOVERY} PUBLIC
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../src)
+
+APPLY_PKG_CONFIG(${TARGET_APPSVC_DB_RECOVERY} PUBLIC
+ DLOG_DEPS
+ SQLITE3_DEPS
+ LIBSMACK_DEPS
+ LIBTZPLATFORM_CONFIG_DEPS)
+
+INSTALL(TARGETS ${TARGET_APPSVC_DB_RECOVERY} DESTINATION bin)
+
+###########################
+## component-db-recovery ##
+###########################
+SET(TARGET_COMPONENT_DB_RECOVERY "component-db-recovery")
+
+ADD_EXECUTABLE(${TARGET_COMPONENT_DB_RECOVERY}
+ ${CMAKE_CURRENT_SOURCE_DIR}/component_db_recovery.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../src/aul_db.c)
+SET_TARGET_PROPERTIES(${TARGET_COMPONENT_DB_RECOVERY} PROPERTIES COMPILE_FLAGS ${CFLAGS} "-fPIE")
+SET_TARGET_PROPERTIES(${TARGET_COMPONENT_DB_RECOVERY} PROPERTIES LINK_FLAGS "-pie")
+
+TARGET_INCLUDE_DIRECTORIES(${TARGET_COMPONENT_DB_RECOVERY} PUBLIC
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../src)
+
+APPLY_PKG_CONFIG(${TARGET_COMPONENT_DB_RECOVERY} PUBLIC
+ DLOG_DEPS
+ SQLITE3_DEPS
+ LIBSMACK_DEPS
+ LIBTZPLATFORM_CONFIG_DEPS)
+
+INSTALL(TARGETS ${TARGET_COMPONENT_DB_RECOVERY} DESTINATION bin)