summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBohdan Solonenko (GitHub) <BSolonenko@luxoft.com>2018-11-23 10:28:55 +0200
committerGitHub <noreply@github.com>2018-11-23 10:28:55 +0200
commit97b613dde1cf28ee8c83eb16fda3ed8bfb1ff858 (patch)
tree762f76fcd2605ef6739c5e051baddc842c799d6f
parent6087af8ea8bb316453e85ae894d2644636817a09 (diff)
parentc00055f6332140a2c7b6b23fff73a204cfba93a0 (diff)
downloadsdl_core-97b613dde1cf28ee8c83eb16fda3ed8bfb1ff858.tar.gz
Merge pull request #2765 from BSolonenko/feature/sdl_on_qnx7_and_agl_part_2
Refactoring cmake structure
-rw-r--r--CMakeLists.txt1
-rw-r--r--cmake/helpers/dependencies.cmake38
-rw-r--r--cmake/helpers/dependencies/BSON.cmake42
-rw-r--r--cmake/helpers/dependencies/apr-util.cmake61
-rw-r--r--cmake/helpers/dependencies/apr.cmake58
-rw-r--r--cmake/helpers/dependencies/boost.cmake11
-rw-r--r--cmake/helpers/dependencies/boost/filesystem.cmake29
-rw-r--r--cmake/helpers/dependencies/boost/system.cmake22
-rw-r--r--cmake/helpers/dependencies/boost/thread.cmake28
-rw-r--r--cmake/helpers/dependencies/log4cxx.cmake25
-rw-r--r--cmake_toolchains/Toolchain-QNX7-QCC-Base.cmake114
-rw-r--r--src/3rd_party/CMakeLists.txt3
-rw-r--r--src/3rd_party/apr-util-cmake/CMakeLists.txt7
-rw-r--r--src/appMain/CMakeLists.txt6
-rw-r--r--src/components/application_manager/CMakeLists.txt4
-rw-r--r--src/components/application_manager/src/application_manager_impl.cc2
-rw-r--r--src/components/application_manager/test/application_manager_impl_test.cc2
-rw-r--r--src/components/protocol_handler/CMakeLists.txt4
-rw-r--r--src/components/protocol_handler/src/handshake_handler.cc2
-rw-r--r--src/components/protocol_handler/src/protocol_handler_impl.cc2
-rw-r--r--src/components/protocol_handler/test/protocol_handler_tm_test.cc2
-rw-r--r--src/components/utils/CMakeLists.txt22
-rw-r--r--src/plugins/appenders/CMakeLists.txt14
-rw-r--r--src/plugins/appenders/include/safe_file_appender.h (renamed from src/plugins/appenders/safe_file_appender.h)0
-rw-r--r--src/plugins/appenders/include/safe_rolling_file_appender.h (renamed from src/plugins/appenders/safe_rolling_file_appender.h)0
-rw-r--r--src/plugins/appenders/src/safe_file_appender.cc (renamed from src/plugins/appenders/safe_file_appender.cc)0
-rw-r--r--src/plugins/appenders/src/safe_rolling_file_appender.cc (renamed from src/plugins/appenders/safe_rolling_file_appender.cc)0
-rw-r--r--tools/cmake/helpers/install_rules.cmake10
28 files changed, 445 insertions, 64 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index b17f708773..d54ffcbd50 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -32,6 +32,7 @@ project(${PROJECT})
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH}
"${CMAKE_SOURCE_DIR}/tools/cmake/modules/")
+include("${CMAKE_CURRENT_LIST_DIR}/cmake/helpers/dependencies.cmake")
include("${CMAKE_CURRENT_LIST_DIR}/tools/cmake/helpers/install_rules.cmake")
include(${CMAKE_SOURCE_DIR}/tools/cmake/helpers/platform.cmake)
include(
diff --git a/cmake/helpers/dependencies.cmake b/cmake/helpers/dependencies.cmake
new file mode 100644
index 0000000000..29c2fc8737
--- /dev/null
+++ b/cmake/helpers/dependencies.cmake
@@ -0,0 +1,38 @@
+include_guard(GLOBAL)
+
+set(dependency_descriptor_dir "${CMAKE_CURRENT_LIST_DIR}/dependencies")
+file(GLOB dependency_descriptors "${dependency_descriptor_dir}/*")
+foreach(dependency IN LISTS dependency_descriptors)
+ get_filename_component(dependency_name "${dependency}" NAME_WE)
+ list(APPEND buildable_dependencies "${dependency_name}")
+endforeach()
+
+function(SDL_find_package)
+ # Handle REQUIRED somehow so this doesn't fail
+ if(REQUIRED IN_LIST ARGV)
+ set(${ARGV0}_REQUIRED ON)
+ endif()
+ list(REMOVE_ITEM ARGV REQUIRED)
+
+ find_package(${ARGV} QUIET)
+ if(NOT ${ARGV0}_FOUND
+ AND NOT
+ ${ARGV0}
+ IN_LIST
+ buildable_dependencies)
+ if(${ARGV0}_REQUIRED)
+ message(
+ FATAL_ERROR "Required package ${ARGV0} was not found and there is no "
+ "dependency descriptor file which can provide it.")
+ endif()
+ else()
+ include("${dependency_descriptor_dir}/${ARGV0}.cmake")
+ endif()
+ if(${ARGV0}_REQUIRED AND NOT ${ARGV0}_FOUND)
+ message(
+ FATAL_ERROR
+ "Required package ${ARGV0} was missing and the dependency "
+ "descriptor ${dependency_descriptor_dir}/${ARGV0}.cmake did not provide it."
+ )
+ endif()
+endfunction()
diff --git a/cmake/helpers/dependencies/BSON.cmake b/cmake/helpers/dependencies/BSON.cmake
new file mode 100644
index 0000000000..9c53e53df7
--- /dev/null
+++ b/cmake/helpers/dependencies/BSON.cmake
@@ -0,0 +1,42 @@
+# Copyright (c) 2018, Ford Motor Company All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+#
+# Redistributions of source code must retain the above copyright notice, this
+# list of conditions and the following disclaimer.
+#
+# Redistributions in binary form must reproduce the above copyright notice, this
+# list of conditions and the following disclaimer in the documentation and/or
+# other materials provided with the distribution.
+#
+# Neither the name of the Ford Motor Company nor the names of its contributors
+# may be used to endorse or promote products derived from this software without
+# specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+include(FetchContent)
+
+fetchcontent_declare(BSON
+ GIT_REPOSITORY
+ https://github.com/BSolonenko/bson_c_lib.git
+ GIT_TAG
+ topic/sdl_rework)
+
+fetchcontent_getproperties(BSON)
+if(NOT bson_POPULATED)
+ fetchcontent_populate(BSON)
+ add_subdirectory("${bson_SOURCE_DIR}" "${bson_BINARY_DIR}")
+endif()
+
+set(BSON_FOUND ON)
diff --git a/cmake/helpers/dependencies/apr-util.cmake b/cmake/helpers/dependencies/apr-util.cmake
new file mode 100644
index 0000000000..2283f51eb7
--- /dev/null
+++ b/cmake/helpers/dependencies/apr-util.cmake
@@ -0,0 +1,61 @@
+if(TARGET apr-util::apr-util)
+ set(apr-util_FOUND ON)
+ return()
+endif()
+
+find_path(apr-util_INCLUDE_DIR NAMES apu.h PATH_SUFFIXES include)
+
+if(apr-util_INCLUDE_DIR)
+ set(apr-util_VERSION_MAJOR 0)
+ set(apr-util_VERSION_MINOR 0)
+ set(apr-util_VERSION_PATCH 0)
+
+ if(EXISTS "${apr-util_INCLUDE_DIR}/apr-1/apu_version.h")
+ # Read and parse apr version header file for version number
+ file(STRINGS "${apr-util_INCLUDE_DIR}/apr-1/apu_version.h"
+ _apr_util_version_HEADER_CONTENTS
+ REGEX "#define APU_[A-Z]+_VERSION[ \t]+[0-9]+")
+ string(REGEX
+ REPLACE ".*#define APU_MAJOR_VERSION[ \t]+([0-9]+).*"
+ "\\1"
+ apr-util_VERSION_MAJOR
+ "${_apr_util_version_HEADER_CONTENTS}")
+ string(REGEX
+ REPLACE ".*#define APU_MINOR_VERSION[ \t]+([0-9]+).*"
+ "\\1"
+ apr-util_VERSION_MINOR
+ "${_apr_util_version_HEADER_CONTENTS}")
+ string(REGEX
+ REPLACE ".*#define APU_PATCH_VERSION[ \t]+([0-9]+).*"
+ "\\1"
+ apr-util_VERSION_PATCH
+ "${_apr_util_version_HEADER_CONTENTS}")
+ unset(_apr_util_version_HEADER_CONTENTS)
+ endif()
+ set(
+ apr-util_VERSION_STRING
+ "${apr-util_VERSION_MAJOR}.${apr-util_VERSION_MINOR}.${apr-util_VERSION_PATCH}"
+ )
+endif()
+
+find_library(apr-util_LIBRARY NAMES aprutil-1 PATH_SUFFIXES lib)
+
+mark_as_advanced(apr-util_INCLUDE_DIR apr-util_LIBRARY apr-util_FOUND)
+
+if(apr-util_LIBRARY AND apr-util_INCLUDE_DIR)
+ set(apr-util_FOUND ON)
+ message(
+ STATUS
+ "Found apr-util: ${apr-util_LIBRARY} (found version \"${apr-util_VERSION_STRING}\")"
+ )
+else()
+ message(STATUS "apr-util library not found")
+ return()
+endif()
+
+add_library(apr-util::apr-util UNKNOWN IMPORTED GLOBAL)
+set_target_properties(apr-util::apr-util
+ PROPERTIES INTERFACE_INCLUDE_DIRECTORIES
+ "${apr-util_INCLUDE_DIR}"
+ IMPORTED_LOCATION
+ "${apr-util_LIBRARY}")
diff --git a/cmake/helpers/dependencies/apr.cmake b/cmake/helpers/dependencies/apr.cmake
new file mode 100644
index 0000000000..fff1f99973
--- /dev/null
+++ b/cmake/helpers/dependencies/apr.cmake
@@ -0,0 +1,58 @@
+if(TARGET apr::apr)
+ set(apr_FOUND ON)
+ return()
+endif()
+
+find_path(apr_INCLUDE_DIR NAMES apr.h PATH_SUFFIXES include)
+
+if(apr_INCLUDE_DIR)
+ set(apr_VERSION_MAJOR 0)
+ set(apr_VERSION_MINOR 0)
+ set(apr_VERSION_PATCH 0)
+
+ if(EXISTS "${apr_INCLUDE_DIR}/apr-1/apr_version.h")
+ # Read and parse apr version header file for version number
+ file(STRINGS "${apr_INCLUDE_DIR}/apr-1/apr_version.h"
+ _apr_version_HEADER_CONTENTS
+ REGEX "#define APR_[A-Z]+_VERSION[ \t]+[0-9]+")
+ string(REGEX
+ REPLACE ".*#define APR_MAJOR_VERSION[ \t]+([0-9]+).*"
+ "\\1"
+ apr_VERSION_MAJOR
+ "${_apr_version_HEADER_CONTENTS}")
+ string(REGEX
+ REPLACE ".*#define APR_MINOR_VERSION[ \t]+([0-9]+).*"
+ "\\1"
+ apr_VERSION_MINOR
+ "${_apr_version_HEADER_CONTENTS}")
+ string(REGEX
+ REPLACE ".*#define APR_PATCH_VERSION[ \t]+([0-9]+).*"
+ "\\1"
+ apr_VERSION_PATCH
+ "${_apr_version_HEADER_CONTENTS}")
+ unset(_apr_version_HEADER_CONTENTS)
+ endif()
+ set(apr_VERSION_STRING
+ "${apr_VERSION_MAJOR}.${apr_VERSION_MINOR}.${apr_VERSION_PATCH}")
+endif()
+
+find_library(apr_LIBRARY NAMES apr-1 PATH_SUFFIXES lib)
+
+mark_as_advanced(apr_INCLUDE_DIR apr_LIBRARY apr_FOUND)
+
+if(apr_LIBRARY AND apr_INCLUDE_DIR)
+ set(apr_FOUND ON)
+ message(
+ STATUS "Found apr: ${apr_LIBRARY} (found version \"${apr_VERSION_STRING}\")"
+ )
+else()
+ message(STATUS "apr library not found")
+ return()
+endif()
+
+add_library(apr::apr UNKNOWN IMPORTED GLOBAL)
+set_target_properties(apr::apr
+ PROPERTIES INTERFACE_INCLUDE_DIRECTORIES
+ "${apr_INCLUDE_DIR}"
+ IMPORTED_LOCATION
+ "${apr_LIBRARY}")
diff --git a/cmake/helpers/dependencies/boost.cmake b/cmake/helpers/dependencies/boost.cmake
new file mode 100644
index 0000000000..2214907317
--- /dev/null
+++ b/cmake/helpers/dependencies/boost.cmake
@@ -0,0 +1,11 @@
+if(boost_FOUND)
+ return()
+endif()
+
+include("${dependency_descriptor_dir}/boost/filesystem.cmake")
+include("${dependency_descriptor_dir}/boost/system.cmake")
+include("${dependency_descriptor_dir}/boost/thread.cmake")
+
+if(boost_filesystem_FOUND AND boost_thread_FOUND AND boost_system_FOUND)
+ set(boost_FOUND ON)
+endif()
diff --git a/cmake/helpers/dependencies/boost/filesystem.cmake b/cmake/helpers/dependencies/boost/filesystem.cmake
new file mode 100644
index 0000000000..8891a0e8bb
--- /dev/null
+++ b/cmake/helpers/dependencies/boost/filesystem.cmake
@@ -0,0 +1,29 @@
+if(TARGET boost::filesystem)
+ set(boost_filesystem_FOUND ON)
+ return()
+endif()
+
+find_path(boost_filesystem_INCLUDE_DIR
+ NAMES boost/filesystem.hpp
+ PATH_SUFFIXES include)
+
+find_library(boost_filesystem_LIBRARY NAMES boost_filesystem PATH_SUFFIXES lib)
+
+mark_as_advanced(boost_filesystem_INCLUDE_DIR boost_filesystem_LIBRARY
+ boost_filesystem_FOUND)
+
+if(boost_filesystem_INCLUDE_DIR AND boost_filesystem_LIBRARY)
+ set(boost_filesystem_FOUND ON)
+ message(STATUS "boost::filesystem found")
+ message(STATUS "boost_filesystem_LIBRARY -> ${boost_filesystem_LIBRARY}")
+else()
+ message(STATUS "----> boost::filesystem not found!!!")
+ return()
+endif()
+
+add_library(boost::filesystem UNKNOWN IMPORTED GLOBAL ${boost_system_LIBRARY})
+set_target_properties(boost::filesystem
+ PROPERTIES INTERFACE_INCLUDE_DIRECTORIES
+ "${boost_filesystem_INCLUDE_DIR}"
+ IMPORTED_LOCATION
+ "${boost_filesystem_LIBRARY}")
diff --git a/cmake/helpers/dependencies/boost/system.cmake b/cmake/helpers/dependencies/boost/system.cmake
new file mode 100644
index 0000000000..50b6677245
--- /dev/null
+++ b/cmake/helpers/dependencies/boost/system.cmake
@@ -0,0 +1,22 @@
+if(TARGET boost::system)
+ set(boost_system_FOUND ON)
+ return()
+endif()
+
+find_library(boost_system_LIBRARY NAMES boost_system PATH_SUFFIXES lib)
+
+mark_as_advanced(boost_system_LIBRARY boost_system_FOUND)
+
+if(boost_system_LIBRARY)
+ set(boost_system_FOUND ON)
+ message(STATUS "boost::system found")
+ message(STATUS "boost_system_LIBRARY -> ${boost_system_LIBRARY}")
+
+else()
+ message(STATUS "----> boost::system not found!!!")
+ return()
+endif()
+
+add_library(boost::system UNKNOWN IMPORTED GLOBAL ${boost_system_LIBRARY})
+set_target_properties(boost::system
+ PROPERTIES IMPORTED_LOCATION "${boost_system_LIBRARY}")
diff --git a/cmake/helpers/dependencies/boost/thread.cmake b/cmake/helpers/dependencies/boost/thread.cmake
new file mode 100644
index 0000000000..ecf16abfbe
--- /dev/null
+++ b/cmake/helpers/dependencies/boost/thread.cmake
@@ -0,0 +1,28 @@
+if(TARGET boost::thread)
+ set(boost_thread_FOUND ON)
+ return()
+endif()
+
+find_path(boost_thread_INCLUDE_DIR NAMES boost/thread.hpp PATH_SUFFIXES include)
+
+find_library(boost_thread_LIBRARY NAMES boost_thread PATH_SUFFIXES lib)
+
+mark_as_advanced(boost_thread_INCLUDE_DIR boost_thread_LIBRARY
+ boost_thread_FOUND)
+
+if(boost_thread_INCLUDE_DIR AND boost_thread_LIBRARY)
+ set(boost_thread_FOUND ON)
+ message(STATUS "boost::thread found")
+ message(STATUS "boost_thread_LIBRARY -> ${boost_thread_LIBRARY}")
+
+else()
+ message(STATUS "----> boost::thread not found!!!")
+ return()
+endif()
+
+add_library(boost::thread UNKNOWN IMPORTED GLOBAL)
+set_target_properties(boost::thread
+ PROPERTIES INTERFACE_INCLUDE_DIRECTORIES
+ "${boost_thread_INCLUDE_DIR}"
+ IMPORTED_LOCATION
+ "${boost_thread_LIBRARY}")
diff --git a/cmake/helpers/dependencies/log4cxx.cmake b/cmake/helpers/dependencies/log4cxx.cmake
new file mode 100644
index 0000000000..3ff6a759a1
--- /dev/null
+++ b/cmake/helpers/dependencies/log4cxx.cmake
@@ -0,0 +1,25 @@
+if(TARGET log4cxx::log4cxx)
+ set(log4cxx_FOUND ON)
+ return()
+endif()
+
+find_path(log4cxx_INCLUDE_DIR NAMES log4cxx/log4cxx.h PATH_SUFFIXES include)
+
+find_library(log4cxx_LIBRARY NAMES log4cxx PATH_SUFFIXES lib)
+
+mark_as_advanced(log4cxx_INCLUDE_DIR log4cxx_LIBRARY log4cxx_FOUND)
+
+if(log4cxx_LIBRARY AND log4cxx_INCLUDE_DIR)
+ set(log4cxx_FOUND ON)
+ message(STATUS "Found log4cxx: ${log4cxx_LIBRARY}")
+else()
+ message(STATUS "log4cxx library not found")
+ return()
+endif()
+
+add_library(log4cxx::log4cxx UNKNOWN IMPORTED GLOBAL)
+set_target_properties(log4cxx::log4cxx
+ PROPERTIES INTERFACE_INCLUDE_DIRECTORIES
+ "${log4cxx_INCLUDE_DIR}"
+ IMPORTED_LOCATION
+ "${log4cxx_LIBRARY}")
diff --git a/cmake_toolchains/Toolchain-QNX7-QCC-Base.cmake b/cmake_toolchains/Toolchain-QNX7-QCC-Base.cmake
index f27fc10027..c344c42231 100644
--- a/cmake_toolchains/Toolchain-QNX7-QCC-Base.cmake
+++ b/cmake_toolchains/Toolchain-QNX7-QCC-Base.cmake
@@ -6,54 +6,67 @@ set(CMAKE_STATIC_LIBRARY_PREFIX "lib")
set(CMAKE_STATIC_LIBRARY_SUFFIX ".a")
if(CMAKE_HOST_WIN32)
- set(HOST_EXECUTABLE_SUFFIX ".exe")
+ set(HOST_EXECUTABLE_SUFFIX ".exe")
endif()
if(QNX_HOST)
- set(ENV{QNX_HOST} "${QNX_HOST}")
+ set(ENV{QNX_HOST} "${QNX_HOST}")
else()
- set(QNX_HOST "$ENV{QNX_HOST}")
- if("${QNX_HOST}" STREQUAL "")
- message(FATAL_ERROR "QNX_HOST environment variable is not defined")
- endif()
- set(QNX_HOST "${QNX_HOST}" CACHE INTERNAL "")
+ set(QNX_HOST "$ENV{QNX_HOST}")
+ if("${QNX_HOST}" STREQUAL "")
+ message(FATAL_ERROR "QNX_HOST environment variable is not defined")
+ endif()
+ set(QNX_HOST "${QNX_HOST}" CACHE INTERNAL "")
endif()
message(STATUS "Using QNX_HOST ${QNX_HOST}")
if(QNX_TARGET)
- set(ENV{QNX_TARGET} "${QNX_TARGET}")
+ set(ENV{QNX_TARGET} "${QNX_TARGET}")
else()
- set(QNX_TARGET "$ENV{QNX_TARGET}")
- if("${QNX_TARGET}" STREQUAL "")
- message(FATAL_ERROR "QNX_TARGET environment variable is not defined")
- endif()
- set(QNX_TARGET "${QNX_TARGET}" CACHE INTERNAL "")
+ set(QNX_TARGET "$ENV{QNX_TARGET}")
+ if("${QNX_TARGET}" STREQUAL "")
+ message(FATAL_ERROR "QNX_TARGET environment variable is not defined")
+ endif()
+ set(QNX_TARGET "${QNX_TARGET}" CACHE INTERNAL "")
endif()
message(STATUS "Using QNX_TARGET ${QNX_TARGET}")
if(NOT EXISTS "${QNX_TARGET}/etc/qversion")
- message(FATAL_ERROR "The folder ${QNX_TARGET} is missing /etc/qversion and may not provide a QNX SDK")
+ message(
+ FATAL_ERROR
+ "The folder ${QNX_TARGET} is missing /etc/qversion and may not provide a QNX SDK"
+ )
endif()
file(READ "${QNX_TARGET}/etc/qversion" CMAKE_SYSTEM_VERSION)
-string(REGEX REPLACE "[^0-9.]" "" CMAKE_SYSTEM_VERSION "${CMAKE_SYSTEM_VERSION}")
+string(REGEX
+ REPLACE "[^0-9.]"
+ ""
+ CMAKE_SYSTEM_VERSION
+ "${CMAKE_SYSTEM_VERSION}")
if("${CMAKE_SYSTEM_VERSION}" VERSION_LESS "7.0.0")
- message(FATAL_ERROR "This toolchain file is not supported for QNX ${CMAKE_SYSTEM_VERSION}")
+ message(
+ FATAL_ERROR
+ "This toolchain file is not supported for QNX ${CMAKE_SYSTEM_VERSION}")
else()
- message(STATUS "QNX Version is ${CMAKE_SYSTEM_VERSION}")
+ message(STATUS "QNX Version is ${CMAKE_SYSTEM_VERSION}")
endif()
-# Since we are passing while crosscompilation CMAKE_FIND_ROOT_PATH(containing QNX third party dependencies)
-# as command line argument to cmake we have to take it into account when setting CMAKE_FIND_ROOT_PATH
-# variable below.
-# ${QNX_TARGET}/usr contains platform independent headers.
-# But QNX_TARGET is a root directory containing sysroots for different0 platforms.
-# Therefore to avoid passing overall QNX_TARGET as root path to search just for 'usr' directory
-# ${QNX_TARGET}/usr passed instead.
-set(CMAKE_FIND_ROOT_PATH "${CMAKE_FIND_ROOT_PATH}" "${QNX_TARGET}/${QNX_TARGET_ARCH_DIR}" "${QNX_TARGET}/usr")
-# Since CMAKE_TOOLCHAIN_FILE behaviour does NOT suppose any 'append' operations like setting
-# CMAKE_FIND_ROOT_PATH above and CMAKE_TOOLCHAIN_FILE must provide the same environment independently
-# of how often and how many times it calls remove duplicates in CMAKE_FIND_ROOT_PATH.
+# Since we are passing while crosscompilation CMAKE_FIND_ROOT_PATH(containing
+# QNX third party dependencies) as command line argument to cmake we have to
+# take it into account when setting CMAKE_FIND_ROOT_PATH variable below.
+# ${QNX_TARGET}/usr contains platform independent headers. But QNX_TARGET is a
+# root directory containing sysroots for different0 platforms. Therefore to
+# avoid passing overall QNX_TARGET as root path to search just for 'usr'
+# directory ${QNX_TARGET}/usr passed instead.
+set(CMAKE_FIND_ROOT_PATH
+ "${CMAKE_FIND_ROOT_PATH}"
+ "${QNX_TARGET}/${QNX_TARGET_ARCH_DIR}"
+ "${QNX_TARGET}/usr")
+# Since CMAKE_TOOLCHAIN_FILE behaviour does NOT suppose any 'append' operations
+# like setting CMAKE_FIND_ROOT_PATH above and CMAKE_TOOLCHAIN_FILE must provide
+# the same environment independently of how often and how many times it calls
+# remove duplicates in CMAKE_FIND_ROOT_PATH.
list(REMOVE_DUPLICATES CMAKE_FIND_ROOT_PATH)
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
@@ -61,19 +74,42 @@ set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
-set(CMAKE_C_COMPILER "${QNX_HOST}/usr/bin/qcc${HOST_EXECUTABLE_SUFFIX}" CACHE PATH "QNX gcc Program")
-set(CMAKE_CXX_COMPILER "${QNX_HOST}/usr/bin/qcc${HOST_EXECUTABLE_SUFFIX}" CACHE PATH "QNX g++ Program")
-set(CMAKE_AR "${QNX_HOST}/usr/bin/nto${CMAKE_SYSTEM_PROCESSOR}-ar${HOST_EXECUTABLE_SUFFIX}" CACHE PATH "QNX ar Program")
-set(CMAKE_RANLIB "${QNX_HOST}/usr/bin/nto${CMAKE_SYSTEM_PROCESSOR}-ranlib${HOST_EXECUTABLE_SUFFIX}" CACHE PATH "QNX ranlib Program")
-set(CMAKE_NM "${QNX_HOST}/usr/bin/nto${CMAKE_SYSTEM_PROCESSOR}-nm${HOST_EXECUTABLE_SUFFIX}" CACHE PATH "QNX nm Program")
-set(CMAKE_OBJCOPY "${QNX_HOST}/usr/bin/nto${CMAKE_SYSTEM_PROCESSOR}-objcopy${HOST_EXECUTABLE_SUFFIX}" CACHE PATH "QNX objcopy Program")
-set(CMAKE_OBJDUMP "${QNX_HOST}/usr/bin/nto${CMAKE_SYSTEM_PROCESSOR}-objdump${HOST_EXECUTABLE_SUFFIX}" CACHE PATH "QNX objdump Program")
-set(CMAKE_LINKER "${QNX_HOST}/usr/bin/nto${CMAKE_SYSTEM_PROCESSOR}-ld${HOST_EXECUTABLE_SUFFIX}" CACHE PATH "QNX Linker Program")
-set(CMAKE_STRIP "${QNX_HOST}/usr/bin/nto${CMAKE_SYSTEM_PROCESSOR}-strip${HOST_EXECUTABLE_SUFFIX}" CACHE PATH "QNX Strip Program")
+set(CMAKE_C_COMPILER "${QNX_HOST}/usr/bin/qcc${HOST_EXECUTABLE_SUFFIX}"
+ CACHE PATH "QNX gcc Program")
+set(CMAKE_CXX_COMPILER "${QNX_HOST}/usr/bin/qcc${HOST_EXECUTABLE_SUFFIX}"
+ CACHE PATH "QNX g++ Program")
+set(
+ CMAKE_AR
+ "${QNX_HOST}/usr/bin/nto${CMAKE_SYSTEM_PROCESSOR}-ar${HOST_EXECUTABLE_SUFFIX}"
+ CACHE PATH "QNX ar Program")
+set(
+ CMAKE_RANLIB
+ "${QNX_HOST}/usr/bin/nto${CMAKE_SYSTEM_PROCESSOR}-ranlib${HOST_EXECUTABLE_SUFFIX}"
+ CACHE PATH "QNX ranlib Program")
+set(
+ CMAKE_NM
+ "${QNX_HOST}/usr/bin/nto${CMAKE_SYSTEM_PROCESSOR}-nm${HOST_EXECUTABLE_SUFFIX}"
+ CACHE PATH "QNX nm Program")
+set(
+ CMAKE_OBJCOPY
+ "${QNX_HOST}/usr/bin/nto${CMAKE_SYSTEM_PROCESSOR}-objcopy${HOST_EXECUTABLE_SUFFIX}"
+ CACHE PATH "QNX objcopy Program")
+set(
+ CMAKE_OBJDUMP
+ "${QNX_HOST}/usr/bin/nto${CMAKE_SYSTEM_PROCESSOR}-objdump${HOST_EXECUTABLE_SUFFIX}"
+ CACHE PATH "QNX objdump Program")
+set(
+ CMAKE_LINKER
+ "${QNX_HOST}/usr/bin/nto${CMAKE_SYSTEM_PROCESSOR}-ld${HOST_EXECUTABLE_SUFFIX}"
+ CACHE PATH "QNX Linker Program")
+set(
+ CMAKE_STRIP
+ "${QNX_HOST}/usr/bin/nto${CMAKE_SYSTEM_PROCESSOR}-strip${HOST_EXECUTABLE_SUFFIX}"
+ CACHE PATH "QNX Strip Program")
# Will only add -V<target> if compiler name is "qcc"
-set(CMAKE_C_COMPILER_TARGET ${QNX_QCC_ARCH} CACHE INTERNAL "")
+set(CMAKE_C_COMPILER_TARGET ${QNX_QCC_ARCH} CACHE INTERNAL "")
set(CMAKE_CXX_COMPILER_TARGET ${QNX_QCC_ARCH} CACHE INTERNAL "")
-set(CMAKE_C_FLAGS_INIT "-lang-c")
+set(CMAKE_C_FLAGS_INIT "-lang-c")
set(CMAKE_CXX_FLAGS_INIT "-lang-c++")
diff --git a/src/3rd_party/CMakeLists.txt b/src/3rd_party/CMakeLists.txt
index 1de1b01a09..6cfd5b47d7 100644
--- a/src/3rd_party/CMakeLists.txt
+++ b/src/3rd_party/CMakeLists.txt
@@ -155,6 +155,8 @@ if(ENABLE_LOG)
set(APR_LIBS_DIRECTORY ${3RD_PARTY_INSTALL_PREFIX_ARCH}/lib PARENT_SCOPE)
set(APR_INCLUDE_DIRECTORY ${3RD_PARTY_INSTALL_PREFIX}/include PARENT_SCOPE)
set(APR_UTIL_LIBS_DIRECTORY ${3RD_PARTY_INSTALL_PREFIX_ARCH}/lib PARENT_SCOPE)
+ set(APR_UTIL_INCLUDE_DIRECTORY ${3RD_PARTY_INSTALL_PREFIX}/include PARENT_SCOPE)
+
set(LOG4CXX_INCLUDE_DIRECTORY ${3RD_PARTY_INSTALL_PREFIX}/include PARENT_SCOPE)
set(LOG4CXX_LIBS_DIRECTORY ${3RD_PARTY_INSTALL_PREFIX_ARCH}/lib PARENT_SCOPE)
@@ -241,7 +243,6 @@ endif()
add_custom_target(install-3rd_party
DEPENDS ${install-3rd_party_logger_var}
- DEPENDS libbson
DEPENDS Boost
WORKING_DIRECTORY ${3RD_PARTY_BINARY_DIRECTORY}
)
diff --git a/src/3rd_party/apr-util-cmake/CMakeLists.txt b/src/3rd_party/apr-util-cmake/CMakeLists.txt
index 86f43f2b16..16eb187b42 100644
--- a/src/3rd_party/apr-util-cmake/CMakeLists.txt
+++ b/src/3rd_party/apr-util-cmake/CMakeLists.txt
@@ -31,6 +31,7 @@
set(APR_UTIL_SOURCE_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/../apr-util-1.5.3)
set(APR_UTIL_BUILD_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/../apr-util-build)
+set(APR_UTIL_INCLUDE_DIRECTORY ${APR_UTIL_BUILD_DIRECTORY}/include)
set(APR_UTIL_LIBS_DIRECTORY ${APR_UTIL_BUILD_DIRECTORY}/.libs)
file(MAKE_DIRECTORY
@@ -71,3 +72,9 @@ install(
USE_SOURCE_PERMISSIONS
FILES_MATCHING PATTERN libaprutil-1.so*
)
+install(
+ DIRECTORY ${APR_UTIL_INCLUDE_DIRECTORY}/
+ DESTINATION ${3RD_PARTY_INSTALL_PREFIX}/include
+ USE_SOURCE_PERMISSIONS
+ FILES_MATCHING PATTERN *.h
+)
diff --git a/src/appMain/CMakeLists.txt b/src/appMain/CMakeLists.txt
index 9bac7f1fb6..84970027c3 100644
--- a/src/appMain/CMakeLists.txt
+++ b/src/appMain/CMakeLists.txt
@@ -41,7 +41,7 @@ target_sources(${PROJECT_NAME}
"${CMAKE_CURRENT_LIST_DIR}/signal_handlers.cc"
)
-find_package(Boost 1.66.0 COMPONENTS system filesystem)
+SDL_find_package(boost REQUIRED)
target_link_libraries(${PROJECT_NAME}
PUBLIC
@@ -55,8 +55,8 @@ target_link_libraries(${PROJECT_NAME}
PRIVATE
components::interface
Policy::usage_statistics
- Boost::system
- Boost::filesystem
+ boost::filesystem
+ boost::system
)
target_include_directories(${PROJECT_NAME}
diff --git a/src/components/application_manager/CMakeLists.txt b/src/components/application_manager/CMakeLists.txt
index 8ac2a6b4c3..872ad2f2b8 100644
--- a/src/components/application_manager/CMakeLists.txt
+++ b/src/components/application_manager/CMakeLists.txt
@@ -107,6 +107,8 @@ target_sources(
"${CMAKE_CURRENT_LIST_DIR}/src/state_controller_impl.cc"
"${CMAKE_CURRENT_LIST_DIR}/src/usage_statistics.cc"
"${CMAKE_CURRENT_LIST_DIR}/src/help_prompt_manager_impl")
+
+SDL_find_package(BSON REQUIRED)
target_link_libraries(${PROJECT_NAME}
PUBLIC utils::utils
@@ -119,7 +121,7 @@ target_link_libraries(${PROJECT_NAME}
hmi_message_handler::hmi_message_handler
Policy::Policy
Policy::usage_statistics
- # bson
+ BSON::BSON
PRIVATE components::interface)
if(TELEMETRY_MONITOR)
diff --git a/src/components/application_manager/src/application_manager_impl.cc b/src/components/application_manager/src/application_manager_impl.cc
index 24f27af2e2..926bc36413 100644
--- a/src/components/application_manager/src/application_manager_impl.cc
+++ b/src/components/application_manager/src/application_manager_impl.cc
@@ -36,7 +36,7 @@
#include <string>
#include <fstream>
#include <utility>
-#include <bson_object.h>
+#include <bson/bson_object.h>
#include "application_manager/application_manager_impl.h"
#include "application_manager/commands/command_impl.h"
diff --git a/src/components/application_manager/test/application_manager_impl_test.cc b/src/components/application_manager/test/application_manager_impl_test.cc
index 7e57b51329..239d09f2e5 100644
--- a/src/components/application_manager/test/application_manager_impl_test.cc
+++ b/src/components/application_manager/test/application_manager_impl_test.cc
@@ -34,7 +34,7 @@
#include <set>
#include <string>
#include <vector>
-#include <bson_object.h>
+#include <bson/bson_object.h>
#include "gtest/gtest.h"
#include "application_manager/application.h"
diff --git a/src/components/protocol_handler/CMakeLists.txt b/src/components/protocol_handler/CMakeLists.txt
index cef87df292..d9e6db7ca5 100644
--- a/src/components/protocol_handler/CMakeLists.txt
+++ b/src/components/protocol_handler/CMakeLists.txt
@@ -40,12 +40,14 @@ target_sources(
"${CMAKE_CURRENT_LIST_DIR}/src/protocol_packet.cc"
"${CMAKE_CURRENT_LIST_DIR}/src/protocol_payload.cc")
+SDL_find_package(BSON REQUIRED)
+
target_link_libraries(${PROJECT_NAME}
PUBLIC config_profile::config_profile
protocol::protocol
utils::utils
connection_handler::connection_handler
- PRIVATE components::interface bson)
+ PRIVATE components::interface BSON::BSON)
if(TELEMETRY_MONITOR)
target_link_libraries(${PROJECT_NAME}
diff --git a/src/components/protocol_handler/src/handshake_handler.cc b/src/components/protocol_handler/src/handshake_handler.cc
index 775d77db66..30270576fc 100644
--- a/src/components/protocol_handler/src/handshake_handler.cc
+++ b/src/components/protocol_handler/src/handshake_handler.cc
@@ -32,7 +32,7 @@
#include "protocol_handler/handshake_handler.h"
-#include <bson_object.h>
+#include <bson/bson_object.h>
#include "protocol_handler/protocol_handler_impl.h"
#include "protocol_handler/protocol_packet.h"
diff --git a/src/components/protocol_handler/src/protocol_handler_impl.cc b/src/components/protocol_handler/src/protocol_handler_impl.cc
index d03030b747..3557b3d761 100644
--- a/src/components/protocol_handler/src/protocol_handler_impl.cc
+++ b/src/components/protocol_handler/src/protocol_handler_impl.cc
@@ -34,7 +34,7 @@
#include <arpa/inet.h> // for INET6_ADDRSTRLEN
#include <memory.h>
#include <algorithm> // std::find
-#include <bson_object.h>
+#include <bson/bson_object.h>
#include <protocol/bson_object_keys.h>
#include "connection_handler/connection_handler_impl.h"
diff --git a/src/components/protocol_handler/test/protocol_handler_tm_test.cc b/src/components/protocol_handler/test/protocol_handler_tm_test.cc
index 51284dfcda..b51b6b14df 100644
--- a/src/components/protocol_handler/test/protocol_handler_tm_test.cc
+++ b/src/components/protocol_handler/test/protocol_handler_tm_test.cc
@@ -51,7 +51,7 @@
#include "utils/semantic_version.h"
#include "utils/test_async_waiter.h"
-#include <bson_object.h>
+#include <bson/bson_object.h>
namespace transport_manager {
namespace transport_adapter {
diff --git a/src/components/utils/CMakeLists.txt b/src/components/utils/CMakeLists.txt
index bd48dd3bd2..f1b14ccc50 100644
--- a/src/components/utils/CMakeLists.txt
+++ b/src/components/utils/CMakeLists.txt
@@ -23,7 +23,8 @@ target_sources(${PROJECT_NAME}
"${CMAKE_CURRENT_LIST_DIR}/src/threads/async_runner.cc"
"${CMAKE_CURRENT_LIST_DIR}/src/threads/thread_delegate.cc"
"${CMAKE_CURRENT_LIST_DIR}/src/threads/thread_posix.cc"
- "${CMAKE_CURRENT_LIST_DIR}/src/threads/thread_validator.cc")
+ "${CMAKE_CURRENT_LIST_DIR}/src/threads/thread_validator.cc"
+ "${CMAKE_CURRENT_LIST_DIR}/src/semantic_version.cc")
if(BUILD_BACKTRACE_SUPPORT AND NOT QNXNTO)
target_sources(${PROJECT_NAME} PRIVATE
@@ -37,9 +38,12 @@ if(QNXNTO)
"${CMAKE_CURRENT_LIST_DIR}/src/threads/pulse_thread_delegate.cc")
endif()
-find_package(Boost 1.66 COMPONENTS system thread REQUIRED)
-
if(ENABLE_LOG)
+ sdl_find_package(apr REQUIRED)
+ sdl_find_package(apr-util REQUIRED)
+ sdl_find_package(log4cxx REQUIRED)
+ sdl_find_package(boost REQUIRED)
+
find_package(EXPAT REQUIRED)
target_sources(${PROJECT_NAME}
@@ -50,14 +54,14 @@ if(ENABLE_LOG)
"${CMAKE_CURRENT_LIST_DIR}/src/logger_status.cc"
"${CMAKE_CURRENT_LIST_DIR}/src/auto_trace.cc")
target_link_libraries(${PROJECT_NAME}
- PUBLIC libapr-1.so
- libaprutil-1.so
- log4cxx
+ PUBLIC apr::apr
+ apr-util::apr-util
+ log4cxx::log4cxx
EXPAT::EXPAT
config_profile::config_profile
- Boost::boost
- Boost::system
- ${Boost_LIBRARIES})
+ boost::system
+ boost::filesystem
+ boost::thread)
target_compile_definitions(${PROJECT_NAME} PUBLIC ENABLE_LOG)
endif()
diff --git a/src/plugins/appenders/CMakeLists.txt b/src/plugins/appenders/CMakeLists.txt
index 8c05f542a3..7735908d31 100644
--- a/src/plugins/appenders/CMakeLists.txt
+++ b/src/plugins/appenders/CMakeLists.txt
@@ -35,12 +35,16 @@ add_library(${PROJECT_NAME}::${PROJECT_NAME} ALIAS ${PROJECT_NAME})
target_sources(${PROJECT_NAME}
PRIVATE
- "${CMAKE_CURRENT_LIST_DIR}/safe_file_appender.cc"
- "${CMAKE_CURRENT_LIST_DIR}/safe_file_appender.h"
- "${CMAKE_CURRENT_LIST_DIR}/safe_rolling_file_appender.cc"
- "${CMAKE_CURRENT_LIST_DIR}/safe_rolling_file_appender.h")
+ "${CMAKE_CURRENT_LIST_DIR}/src/safe_file_appender.cc"
+ "${CMAKE_CURRENT_LIST_DIR}/src/safe_rolling_file_appender.cc")
-target_link_libraries(${PROJECT_NAME} PUBLIC EXPAT::EXPAT)
+target_include_directories(${PROJECT_NAME}
+ PUBLIC "${CMAKE_CURRENT_LIST_DIR}/include"
+ "${THIRD_PARTY_INSTALL_PREFIX}/include")
+
+sdl_find_package(log4cxx REQUIRED)
+
+target_link_libraries(${PROJECT_NAME} PUBLIC EXPAT::EXPAT log4cxx::log4cxx)
install(TARGETS ${PROJECT_NAME}
DESTINATION "${CMAKE_INSTALL_LIBDIR}"
diff --git a/src/plugins/appenders/safe_file_appender.h b/src/plugins/appenders/include/safe_file_appender.h
index 45299602ff..45299602ff 100644
--- a/src/plugins/appenders/safe_file_appender.h
+++ b/src/plugins/appenders/include/safe_file_appender.h
diff --git a/src/plugins/appenders/safe_rolling_file_appender.h b/src/plugins/appenders/include/safe_rolling_file_appender.h
index 75832b7de7..75832b7de7 100644
--- a/src/plugins/appenders/safe_rolling_file_appender.h
+++ b/src/plugins/appenders/include/safe_rolling_file_appender.h
diff --git a/src/plugins/appenders/safe_file_appender.cc b/src/plugins/appenders/src/safe_file_appender.cc
index ead775a1c6..ead775a1c6 100644
--- a/src/plugins/appenders/safe_file_appender.cc
+++ b/src/plugins/appenders/src/safe_file_appender.cc
diff --git a/src/plugins/appenders/safe_rolling_file_appender.cc b/src/plugins/appenders/src/safe_rolling_file_appender.cc
index 7ed387d5c4..7ed387d5c4 100644
--- a/src/plugins/appenders/safe_rolling_file_appender.cc
+++ b/src/plugins/appenders/src/safe_rolling_file_appender.cc
diff --git a/tools/cmake/helpers/install_rules.cmake b/tools/cmake/helpers/install_rules.cmake
index e83ea0e2e7..5bb074d110 100644
--- a/tools/cmake/helpers/install_rules.cmake
+++ b/tools/cmake/helpers/install_rules.cmake
@@ -1,6 +1,16 @@
include(GNUInstallDirs)
+
+
+set(THIRD_PARTY_INSTALL_PREFIX "$ENV{THIRD_PARTY_INSTALL_PREFIX}")
+message(STATUS "THIRD_PARTY_INSTALL_PREFIX: ${THIRD_PARTY_INSTALL_PREFIX}")
+
+set(CMAKE_FIND_ROOT_PATH "${CMAKE_FIND_ROOT_PATH}" "${THIRD_PARTY_INSTALL_PREFIX}")
+
+set(BOOST_INCLUDEDIR "${THIRD_PARTY_INSTALL_PREFIX}/include")
+set(BOOST_LIBRARYDIR "${THIRD_PARTY_INSTALL_PREFIX}/lib")
+
if(QNXNTO)
set(SDL_CONFIG_INSTALL_DIR "${CMAKE_INSTALL_SYSCONFDIR}/AppLink")
set(SDL_PLUGINS_INSTALL_DIR "${CMAKE_INSTALL_SYSCONFDIR}/AppLink/plugins")