summaryrefslogtreecommitdiff
path: root/CMakeLists.txt
diff options
context:
space:
mode:
authorIvo Stoilov (GitHub) <istoilov@luxoft.com>2016-12-30 17:47:39 +0200
committerIvo Stoilov (GitHub) <istoilov@luxoft.com>2016-12-30 17:47:39 +0200
commit16a403b3cca43e4b211525f4b6c80a43466b5e97 (patch)
tree52c905b3f4afa687996156c965c0cb641fa3c153 /CMakeLists.txt
parent7d29edc6716188776d4a5668d7960dc58724f611 (diff)
downloadsdl_core-16a403b3cca43e4b211525f4b6c80a43466b5e97.tar.gz
Refactor CMake files
Merge components refactoring from Windows port barnch - add cmake tools - refactor protocol handler CMakeLists.txt file - refactor interfaces CMakeLists.txt file - refactor smart object CMakeLists.txt file - refactor formatters CMakeLists.txt file - refactor config profile CMakeLists.txt file - refactor policy CMakeLists.txt file - refactor resumption CMakeLists.txt file - refactor connection handler CMakeLists.txt file - refactor application manager CMakeLists.txt file - refactor security manager CMakeLists.txt file - refactor dbus CMakeLists.txt file - refactor hmi message handler CMakeLists.txt file - refactor transport manager CMakeLists.txt file - refactor utils CMakeLists.txt file - refactor components root CMakeLists.txt file - refactor utils CMakeLists.txt file - refactor components root CMakeLists.txt file - refactor media manager CMakeLists.txt file - refactor telemetry monitor CMakeLists.txt file - refactor appmain CMakeLists.txt file - refactor plugins CMakeLists.txt file - refactor 3rd party CMakeLists.txt files - create cmake helper for interface generation - refactor root CMakeLists.txt file Move cmake modules to tools Related taks APPLINK-30588 APPLINK-30972
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt446
1 files changed, 79 insertions, 367 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 3252f7071d..2a4ae6509a 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Copyright (c) 2014, Ford Motor Company
+# Copyright (c) 2015, Ford Motor Company
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
@@ -28,9 +28,13 @@
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
-cmake_minimum_required(VERSION 2.8.0)
+cmake_minimum_required(VERSION 2.8.11)
set (PROJECT smartDeviceLinkCore)
+project (${PROJECT})
+set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/tools/cmake/modules/")
+
+include(${CMAKE_SOURCE_DIR}/tools/cmake/helpers/platform.cmake)
#Jenkins integration section
#dont modify this section if you dont know details about integration with Jenkins!!!
@@ -40,9 +44,9 @@ option(EXTENDED_MEDIA_MODE "Turn on and off extended Madia Manager features rela
option(BUILD_SHARED_LIBS "Build all libraries as shared (if ON) or static (if OFF)" OFF)
option(BUILD_BT_SUPPORT "Bluetooth support" ON)
option(BUILD_USB_SUPPORT "libusb support" ON)
-option(BUILD_BACKTRACE_SUPPORT "backtrace support" ON)
-option(BUILD_TESTS "Possibility to build and run tests" OFF)
-option(TELEMETRY_MONITOR "Enable profiling time test util" ON)
+option(BUILD_BACKTRACE_SUPPORT "backtrace support" OFF)
+option(BUILD_TESTS "Possibility to build and run tests" ON)
+option(TELEMETRY_MONITOR "Enable profiling time test util" OFF)
option(ENABLE_LOG "Logging feature" ON)
option(ENABLE_GCOV "gcov code coverage feature" OFF)
option(ENABLE_SANITIZE "Sanitize tool" OFF)
@@ -67,9 +71,9 @@ set(POLICY_OPTION "$ENV{POLICY_TYPE}")
set(SECURITY_OPTION "$ENV{SECURITY_MODE}")
set(COMPONENTS_DIR ${CMAKE_SOURCE_DIR}/src/components)
set(SNAPSHOT_TAG "$ENV{SNAPSHOT_TAG}")
-
set(CMAKE_CXX_COMPILER $ENV{CMAKE_CXX_COMPILER})
set(CMAKE_C_COMPILER $ENV{CMAKE_C_COMPILER})
+set(BUILDDIR "$ENV{BUILDDIR}")
if (ARCH_TYPE_OPTION)
if (NOT (${ARCH_TYPE_OPTION} STREQUAL "x86") AND NOT (${ARCH_TYPE_OPTION} STREQUAL "armv7"))
@@ -173,13 +177,6 @@ add_custom_target(genivi-tarball
COMMAND tar -cz -C /tmp/GENIVI -f ${CMAKE_BINARY_DIR}/genivi.tar.gz .
)
-
-project (${PROJECT})
-
-#ADD_DEPENDENCIES(${PROJECT} Policy)
-
-set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/")
-
# Please do not change compiler/linker flags if You do not know how particular
# flag is handled by CMake
set(CMAKE_INSTALL_PREFIX ${CMAKE_CURRENT_BINARY_DIR})
@@ -231,14 +228,26 @@ endif(USE_DISTCC)
if(ENABLE_SANITIZE)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address")
+ message(STATUS "Sanitizing enabled")
endif()
+
if(ENABLE_GCOV)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --coverage")
add_definitions(-DGCOV_ENABLED)
+ message(STATUS "GCOV enabled")
endif()
+
set(CMAKE_CXX_FLAGS_RELEASE " -DNDEBUG -s -O2")
set(CMAKE_CXX_FLAGS_DEBUG " -DDEBUG -g3 -ggdb3")
+if(QT_PORT)
+ set(CMAKE_AUTOMOC ON)
+ find_package(Qt5 REQUIRED Core Network)
+ include_directories(
+ ${Qt5Core_INCLUDE_DIRS}
+ ${Qt5Network_INCLUDE_DIRS})
+endif ()
+
if (CMAKE_SYSTEM_NAME STREQUAL "Linux")
add_definitions(-DOS_LINUX)
elseif(CMAKE_SYSTEM_NAME STREQUAL "QNX")
@@ -248,137 +257,74 @@ elseif(CMAKE_SYSTEM_NAME STREQUAL "QNX")
SET(EXTENDED_MEDIA_MODE OFF)
endif()
-
if (BUILD_USB_SUPPORT)
add_definitions(-DUSB_SUPPORT)
find_package(UDev REQUIRED)
- message(STATUS "USB support is enabled")
+ message(STATUS "USB support enabled")
endif()
-
if (BUILD_BT_SUPPORT)
add_definitions(-DBLUETOOTH_SUPPORT)
- message(STATUS "Bluetooth support is enabled")
+ message(STATUS "Bluetooth support enabled")
endif()
if (BUILD_BACKTRACE_SUPPORT)
add_definitions(-DBACKTRACE_SUPPORT)
+ message(STATUS "Backtrace support enabled")
endif()
if(ENABLE_LOG)
add_definitions(-DENABLE_LOG)
set(install-3rd_party_logger "install-3rd_party_logger")
+ message(STATUS "Logger enabled")
endif()
if (TELEMETRY_MONITOR)
- add_definitions(-DTELEMETRY_MONITOR)
+ add_definitions(-DTELEMETRY_MONITOR)
+ message(STATUS "Telemetry monitor enabled")
endif()
if (ENABLE_EXTENDED_POLICY)
- add_definitions(-DEXTENDED_POLICY)
+ add_definitions(-DEXTENDED_POLICY)
+ message(STATUS "Extended policy enabled")
endif()
# TODO(AK): check current OS here
add_definitions(-DOS_POSIX)
if (EXTENDED_MEDIA_MODE)
-add_definitions(-DEXTENDED_MEDIA_MODE)
-# required to find 'glibconfig.h'
-find_package(PkgConfig)
-pkg_check_modules(GLIB2 REQUIRED glib-2.0)
-add_definitions(${GLIB2_CFLAGS})
+ add_definitions(-DEXTENDED_MEDIA_MODE)
+ message(STATUS "Extended media mode enabled")
+ # required to find 'glibconfig.h'
+ find_package(PkgConfig)
+ pkg_check_modules(GLIB2 REQUIRED glib-2.0)
+ add_definitions(${GLIB2_CFLAGS})
endif()
-
-# --- Interface generator
-
-find_package(PythonInterp)
-if(NOT PYTHONINTERP_FOUND)
- message(STATUS "Python interpreter is not found")
- message(STATUS "To install it type in the command line:")
- message(STATUS "sudo apt-get install python")
- message(FATAL_ERROR "Exiting!")
-endif(NOT PYTHONINTERP_FOUND)
-
-if (HMI STREQUAL "qt")
- cmake_minimum_required(VERSION 2.8.11)
- if (CMAKE_SYSTEM_NAME STREQUAL "QNX")
- set(qt_version "4.8.5")
- else ()
- set(qt_version "5.1.0")
- endif ()
-
- execute_process(
- COMMAND ${CMAKE_SOURCE_DIR}/FindQt.sh -v ${qt_version}
- OUTPUT_VARIABLE qt_bin_dir
- )
- message(STATUS "Binary directory Qt ${qt_version} is ${qt_bin_dir}")
- set(ENV{PATH} ${qt_bin_dir}:$ENV{PATH})
-
- if (CMAKE_SYSTEM_NAME STREQUAL "QNX")
- find_package(Qt4 ${qt_version} REQUIRED QtCore QtGui QtDBus QtDeclarative)
- else ()
- find_package(Qt5Core REQUIRED)
- find_package(Qt5DBus REQUIRED)
- find_package(Qt5Qml REQUIRED)
- find_package(Qt5Quick REQUIRED)
- set(qmlplugindump_binary ${qt_bin_dir}/qmlplugindump)
- endif ()
-endif()
-
-set(INTEFRACE_GENERATOR "${PROJECT_SOURCE_DIR}/tools/InterfaceGenerator/Generator.py")
-set(INTEFRACE_GENERATOR_CMD ${PYTHON_EXECUTABLE} -B ${INTEFRACE_GENERATOR})
-file(GLOB_RECURSE INTERFACE_GENERATOR_DEPENDENCIES "${PROJECT_SOURCE_DIR}/tools/InterfaceGenerator/*.*")
-
-macro (GenerateInterface arg_xml_name arg_namespace parser_type)
- string(REGEX MATCH "^[a-zA-Z_0-9]*[^.]" file_name ${arg_xml_name}) # TODO: make expression more robust
-
- set(hpp_file
- "${CMAKE_CURRENT_BINARY_DIR}/${file_name}.h"
- "${CMAKE_CURRENT_BINARY_DIR}/${file_name}_schema.h"
- )
-
- set(cpp_file "${CMAKE_CURRENT_BINARY_DIR}/${file_name}_schema.cc")
- set(full_xml_name "${CMAKE_CURRENT_SOURCE_DIR}/${arg_xml_name}")
-
- add_custom_command( OUTPUT ${hpp_file} ${cpp_file}
- COMMAND ${INTEFRACE_GENERATOR_CMD} ${full_xml_name} ${arg_namespace} ${CMAKE_CURRENT_BINARY_DIR} "--parser-type" "${parser_type}"
- DEPENDS ${INTERFACE_GENERATOR_DEPENDENCIES} ${full_xml_name}
- COMMENT "Generating files:\n ${hpp_file}\n ${cpp_file}\nfrom:\n ${arg_xml_name} ..."
- VERBATIM
- )
-
- include_directories (
- ${COMPONENTS_DIR}/smart_objects/include
- ${COMPONENTS_DIR}/formatters/include/
- ${CMAKE_BINARY_DIR}
- )
-
- add_library("${file_name}" ${cpp_file})
-endmacro(GenerateInterface)
-
-# --- Useful macro
-macro(create_test NAME SOURCES LIBS)
- add_executable("${NAME}" ${CMAKE_SOURCE_DIR}/src/components/test_main.cc ${SOURCES})
- target_link_libraries("${NAME}" ${LIBS})
- target_link_libraries("${NAME}" Utils)
+if(HMI STREQUAL "qt")
if(CMAKE_SYSTEM_NAME STREQUAL "QNX")
- add_test(${NAME} ${CMAKE_SOURCE_DIR}/qnx/remote_run_test.sh ${NAME})
- elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux")
- add_test(NAME ${NAME}
- COMMAND ${NAME} --gtest_output=xml:${CMAKE_BINARY_DIR}/test_results/)
+ set(qt_version "4.8.5")
else()
- add_test(${NAME} ${NAME})
+ set(qt_version "5.1.0")
endif()
-endmacro(create_test)
-# --replace in list macro
-macro(LIST_REPLACE LIST INDEX NEWVALUE)
- list(INSERT ${LIST} ${INDEX} ${NEWVALUE})
- MATH(EXPR __INDEX "${INDEX} + 1")
- list (REMOVE_AT ${LIST} ${__INDEX})
-endmacro(LIST_REPLACE)
+ execute_process(
+ COMMAND ${CMAKE_SOURCE_DIR}/FindQt.sh -v ${qt_version}
+ OUTPUT_VARIABLE qt_bin_dir
+ )
+ message(STATUS "Binary directory Qt ${qt_version} is ${qt_bin_dir}")
+ set(ENV{PATH} ${qt_bin_dir}:$ENV{PATH})
+ if(CMAKE_SYSTEM_NAME STREQUAL "QNX")
+ find_package(Qt4 ${qt_version} REQUIRED QtCore QtGui QtDBus QtDeclarative)
+ else ()
+ find_package(Qt5Core REQUIRED)
+ find_package(Qt5DBus REQUIRED)
+ find_package(Qt5Qml REQUIRED)
+ find_package(Qt5Quick REQUIRED)
+ set(qmlplugindump_binary ${qt_bin_dir}/qmlplugindump)
+ endif()
+endif()
# Building application
@@ -417,243 +363,9 @@ endif()
include_directories(
${COMPONENTS_DIR}/include
${COMPONENTS_DIR}/protocol/include
-if (BUILD_TESTS)
- ${COMPONENTS_DIR}/include/test
endif ()
)
-# --- 3rd party libs
-INCLUDE(${CMAKE_CURRENT_SOURCE_DIR}/src/3rd_party/set_3rd_party_paths.cmake)
-
-set(3RD_PARTY_SOURCE_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/src/3rd_party)
-set(3RD_PARTY_BINARY_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/src/3rd_party)
-
-set (install-3rd_party_logger_var "")
-set (install-3rd_party_dbus_var "")
-
-if(NO_REBUILD_3RD_PARTY)
- set(NO_REBUILD_3RD_PARTY_LOGGER ON)
- set(NO_REBUILD_3RD_PARTY_DBUS ON)
-endif()
-
-if(FORCE_3RD_PARTY)
- if(NO_REBUILD_3RD_PARTY)
- message(FATAL_ERROR "Please don't turn on both FORCE_3RD_PARTY and NO_REBUILD_3RD_PARTY at the same time.")
- else()
- set(FORCE_3RD_PARTY_LOGGER ON)
- set(FORCE_3RD_PARTY_DBUS ON)
- endif()
-endif()
-
-if(ENABLE_LOG)
- if(NO_REBUILD_3RD_PARTY_LOGGER)
- message(STATUS "Not rebuilding logger.")
- else()
- if(FORCE_3RD_PARTY_LOGGER)
- message(STATUS "Force to rebuild logger.")
-
- #build logger
- add_custom_target(3rd_party_logger
- make
- WORKING_DIRECTORY ${3RD_PARTY_BINARY_DIRECTORY}
- )
-
- #install logger
- #install either to default place with sudo or non-default plase without sudo.
- #to install with sudo to non-default place use manual installation
- add_custom_target(install-3rd_party_logger
- COMMAND /bin/bash -c \"USE_DEFAULT_3RD_PARTY_PATH=${USE_DEFAULT_3RD_PARTY_PATH}\;
- if [ \\$$USE_DEFAULT_3RD_PARTY_PATH == "true" ]\; then
- sudo -k \;
- sudo make install\;
- else
- make install\;
- fi\"
- DEPENDS 3rd_party_logger
- WORKING_DIRECTORY ${3RD_PARTY_BINARY_DIRECTORY}
- )
- else()
- #build logger
- add_custom_target(3rd_party_logger
- COMMAND /bin/bash -c \"cd ${CMAKE_CURRENT_SOURCE_DIR} &&
- grep .commit_hash ${3RD_PARTY_INSTALL_PREFIX_ARCH}/lib/liblog4cxx.so 1>/dev/null 2>&1\;
- if [ \\$$? == 0 ]\; then
- VAR1=\\$$\( readelf -p .commit_hash ${3RD_PARTY_INSTALL_PREFIX_ARCH}/lib/liblog4cxx.so 2>/dev/null\)\;
- VAR1=\\$$\(echo \\$$VAR1 | awk '{print \\$$NF}'\)\;
- VAR2=-1\;
- cd ${CMAKE_CURRENT_SOURCE_DIR}\;
- git log . 1>/dev/null 2>&1\;
- if [ \\$$? == 0 ]; then
- VAR2=\\$$\(git log --pretty=\"format:%H\" -1 ${3RD_PARTY_SOURCE_DIRECTORY}/apache-log4cxx-0.10.0\)\;
- fi\;
- if [ \\$$VAR1 != \\$$VAR2 ]\; then
- echo " Need to rebuild logger. " \;
- cd ${3RD_PARTY_BINARY_DIRECTORY}\;
- make\;
- else
- echo " Logger is actual. " \;
- fi\;
- else
- echo " Need to build logger. " \;
- cd ${3RD_PARTY_BINARY_DIRECTORY}\;
- make\;
- fi\"
- WORKING_DIRECTORY ${3RD_PARTY_BINARY_DIRECTORY}
- )
-
- #install logger
- #install either to default place with sudo or non-default plase without sudo.
- #to install with sudo to non-default place use manual installation
- add_custom_target(install-3rd_party_logger
- COMMAND /bin/bash -c \"cd ${CMAKE_CURRENT_SOURCE_DIR} &&
- grep .commit_hash ${3RD_PARTY_INSTALL_PREFIX_ARCH}/lib/liblog4cxx.so 1>/dev/null 2>&1\;
- if [ \\$$? == 0 ]\; then
- VAR1=\\$$\( readelf -p .commit_hash ${3RD_PARTY_INSTALL_PREFIX_ARCH}/lib/liblog4cxx.so 2>/dev/null\)\;
- VAR1=\\$$\(echo \\$$VAR1 | awk '{print \\$$NF}'\)\;
- VAR2=-1\;
- cd ${CMAKE_CURRENT_SOURCE_DIR}\;
- git log . 1>/dev/null 2>&1\;
- if [ \\$$? == 0 ]; then
- VAR2=\\$$\(git log --pretty=\"format:%H\" -1 ${3RD_PARTY_SOURCE_DIRECTORY}/apache-log4cxx-0.10.0\)\;
- fi\;
- if [ \\$$VAR1 != \\$$VAR2 ]\; then
- USE_DEFAULT_3RD_PARTY_PATH=${USE_DEFAULT_3RD_PARTY_PATH}\;
- if [ \\$$USE_DEFAULT_3RD_PARTY_PATH == "true" ]\; then
- cd ${3RD_PARTY_BINARY_DIRECTORY}\;
- sudo -k \;
- sudo make install\;
- else
- cd ${3RD_PARTY_BINARY_DIRECTORY}\;
- make install\;
- fi\;
- fi\;
- else
- USE_DEFAULT_3RD_PARTY_PATH=${USE_DEFAULT_3RD_PARTY_PATH}\;
- if [ \\$$USE_DEFAULT_3RD_PARTY_PATH == "true" ]\; then
- cd ${3RD_PARTY_BINARY_DIRECTORY}\;
- sudo -k \;
- sudo make install\;
- else
- cd ${3RD_PARTY_BINARY_DIRECTORY}\;
- make install\;
- fi\;
- fi\"
- DEPENDS 3rd_party_logger
- WORKING_DIRECTORY ${3RD_PARTY_BINARY_DIRECTORY}
- )
- endif()
-
- set (install-3rd_party_logger_var "install-3rd_party_logger")
- endif()
-endif()
-
-if (HMIADAPTER STREQUAL "dbus")
- if(NO_REBUILD_3RD_PARTY_DBUS)
- message(STATUS "Not rebuilding D-Bus.")
- else()
- if(FORCE_3RD_PARTY_DBUS)
- message(STATUS "Force to rebuild D-Bus.")
-
- #build d-bus
- add_custom_target(3rd_party_dbus
- make
- WORKING_DIRECTORY ${3RD_PARTY_BINARY_DIRECTORY}
- )
-
- #install d-bus
- #install either to default place with sudo or non-default plase without sudo.
- #to install with sudo to non-default place use manual installation
- add_custom_target(install-3rd_party_dbus
- COMMAND /bin/bash -c \"USE_DEFAULT_3RD_PARTY_PATH=${USE_DEFAULT_3RD_PARTY_PATH}\;
- if [ \\$$USE_DEFAULT_3RD_PARTY_PATH == "true" ]\; then
- sudo -k \;
- sudo make install\;
- else
- make install\;
- fi\"
- DEPENDS 3rd_party_dbus
- WORKING_DIRECTORY ${3RD_PARTY_BINARY_DIRECTORY}
- )
- else()
- #build d-bus
- add_custom_target(3rd_party_dbus
- COMMAND /bin/bash -c \"grep .commit_hash ${3RD_PARTY_INSTALL_PREFIX_ARCH}/lib/libdbus-1.so 1>/dev/null 2>&1\;
- if [ \\$$? == 0 ]\; then
- VAR1=\\$$\(readelf -p .commit_hash ${3RD_PARTY_INSTALL_PREFIX_ARCH}/lib/libdbus-1.so 2>/dev/null\)\;
- VAR1=\\$$\(echo \\$$VAR1 | awk '{print \\$$NF}'\)\;
- VAR2=-1\;
- cd ${CMAKE_CURRENT_SOURCE_DIR}\;
- git log . 1>/dev/null 2>&1\;
- if [ \\$$? == 0 ]; then
- VAR2=\\$$\(git log --pretty=\"format:%H\" -1 ${3RD_PARTY_SOURCE_DIRECTORY}/dbus-1.7.8\)\;
- fi\;
- if [ \\$$VAR1 != \\$$VAR2 ]\; then
- echo " Need to rebuild D-Bus. " \;
- cd ${3RD_PARTY_BINARY_DIRECTORY}\;
- make\;
- else
- echo " D-Bus is actual. " \;
- fi\;
- else
- echo " Need to build D-Bus. " \;
- cd ${3RD_PARTY_BINARY_DIRECTORY}\;
- make\;
- fi\"
- WORKING_DIRECTORY ${3RD_PARTY_BINARY_DIRECTORY}
- )
-
- #install d-bus
- #install either to default place with sudo or non-default plase without sudo.
- #to install with sudo to non-default place use manual installation
- add_custom_target(install-3rd_party_dbus
- COMMAND /bin/bash -c \"grep .commit_hash ${3RD_PARTY_INSTALL_PREFIX_ARCH}/lib/libdbus-1.so 1>/dev/null 2>&1\;
- if [ \\$$? == 0 ]\; then
- VAR1=\\$$\(readelf -p .commit_hash ${3RD_PARTY_INSTALL_PREFIX_ARCH}/lib/libdbus-1.so 2>/dev/null\)\;
- VAR1=\\$$\(echo \\$$VAR1 | awk '{print \\$$NF}'\)\;
- VAR2=-1\;
- cd ${CMAKE_CURRENT_SOURCE_DIR}\;
- git log . 1>/dev/null 2>&1\;
- if [ \\$$? == 0 ]; then
- VAR2=\\$$\(git log --pretty=\"format:%H\" -1 ${3RD_PARTY_SOURCE_DIRECTORY}/dbus-1.7.8\)\;
- fi\;
- if [ \\$$VAR1 != \\$$VAR2 ]\; then
- USE_DEFAULT_3RD_PARTY_PATH=${USE_DEFAULT_3RD_PARTY_PATH}\;
- if [ \\$$USE_DEFAULT_3RD_PARTY_PATH == "true" ]\; then
- cd ${3RD_PARTY_BINARY_DIRECTORY}\;
- sudo -k \;
- sudo make install\;
- else
- cd ${3RD_PARTY_BINARY_DIRECTORY}\;
- make install\;
- fi\;
- fi\;
- else
- USE_DEFAULT_3RD_PARTY_PATH=${USE_DEFAULT_3RD_PARTY_PATH}\;
- if [ \\$$USE_DEFAULT_3RD_PARTY_PATH == "true" ]\; then
- cd ${3RD_PARTY_BINARY_DIRECTORY}\;
- sudo -k \;
- sudo make install\;
- else
- cd ${3RD_PARTY_BINARY_DIRECTORY}\;
- make install\;
- fi\;
- fi\"
- DEPENDS 3rd_party_dbus
- WORKING_DIRECTORY ${3RD_PARTY_BINARY_DIRECTORY}
- )
- endif()
-
- set (install-3rd_party_dbus_var "install-3rd_party_dbus")
- endif()
-endif()
-
-add_subdirectory(${3RD_PARTY_SOURCE_DIRECTORY} ${3RD_PARTY_BINARY_DIRECTORY} EXCLUDE_FROM_ALL)
-add_custom_target(install-3rd_party
- DEPENDS ${install-3rd_party_logger_var}
- DEPENDS ${install-3rd_party_dbus_var}
- WORKING_DIRECTORY ${3RD_PARTY_BINARY_DIRECTORY}
-)
-
find_package(OpenSSL REQUIRED)
if(ENABLE_LOG)
include_directories ( ${LOG4CXX_INCLUDE_DIRECTORY} )
@@ -664,34 +376,38 @@ if(ENABLE_SECURITY)
set(SecurityManagerLibrary SecurityManager)
set(SecurityManagerIncludeDir ${COMPONENTS_DIR}/security_manager/include)
#set(SecurityManagerTestIncludeDir ${CMAKE_SOURCE_DIR}/test/components/security_manager/include)
+ message(STATUS "Security enabled")
endif()
if(ENABLE_HMI_PTU_DECRYPTION)
- MESSAGE("USE DHMI_PTU_PARSER")
add_definitions(-DUSE_HMI_PTU_DECRYPTION)
+ message(STATUS "HMI PTU decription enabled")
endif()
set(RTLIB rt)
if(CMAKE_SYSTEM_NAME STREQUAL "QNX")
-set(RTLIB )
+ set(RTLIB )
endif()
# Building tests
if(BUILD_TESTS)
enable_testing()
add_definitions(-DBUILD_TESTS)
- # Framework GoogleTest is also integrated together gmock
- # and must not be added separately
- add_subdirectory(./src/3rd_party-static/gmock-1.7.0)
+ include_directories(
+ ${COMPONENTS_DIR}/include/test
+ )
+ message(STATUS "Tests enabled")
endif()
+# --- 3rd party libs
+add_subdirectory(./src/3rd_party EXCLUDE_FROM_ALL)
+
# --- 3rd party libs (static)
add_subdirectory(./src/3rd_party-static)
# --- Tools
add_subdirectory(./tools)
-
# --- Components
add_subdirectory(./src/components)
@@ -701,35 +417,31 @@ add_subdirectory(./src/appMain)
# --- Plugins
add_subdirectory(./src/plugins)
-
-# Building tests
-if(BUILD_TESTS)
- # Directory test is deprecated. Use src/components/<name>/test
- include(Dart)
- #add_subdirectory(./test)
-endif()
+add_dependencies(${PROJECT} Policy)
+add_dependencies(${PROJECT} copy_policy_library)
# Building documentation
# At first creating directory for generated documentation. Unfortunately doxygen
# cannot generate it byself
-FIND_PACKAGE(Doxygen)
- IF(DOXYGEN_FOUND)
+find_package(Doxygen)
+ if(DOXYGEN_FOUND)
option(DOXYGEN_ENABLE_DIAGRAMS "Enable graphical diagram generation" ON)
+ message(STATUS "Doxygen found. Documentation will be generated")
if(DOXYGEN_ENABLE_DIAGRAMS)
set(DOXYGEN_ENABLE_DIAGRAMS_PARAM "YES")
- else(DOXYGEN_ENABLE_DIAGRAMS)
+ else()
set(DOXYGEN_ENABLE_DIAGRAMS_PARAM "NO")
endif()
configure_file("${PROJECT_SOURCE_DIR}/Doxyfile" "${PROJECT_BINARY_DIR}/Doxyfile")
file(MAKE_DIRECTORY "${PROJECT_BINARY_DIR}/doc/doxygen")
- ADD_CUSTOM_TARGET(doxygen COMMAND ${DOXYGEN_EXECUTABLE} "${PROJECT_BINARY_DIR}/Doxyfile")
- ELSE(DOXYGEN_FOUND)
- MESSAGE(STATUS "Doxygen not found. Documentation will not be generated")
- MESSAGE(STATUS "To enable documentation generation please install doxygen and graphviz packages")
- MESSAGE(STATUS "sudo apt-get install doxygen graphviz")
- MESSAGE(STATUS "To enable processing of MscGen comments please install mscgen")
- MESSAGE(STATUS "sudo apt-get install mscgen")
-ENDIF(DOXYGEN_FOUND)
+ add_custom_target(doxygen COMMAND ${DOXYGEN_EXECUTABLE} "${PROJECT_BINARY_DIR}/Doxyfile")
+ else()
+ message(STATUS "Doxygen not found. Documentation will not be generated")
+ message(STATUS "To enable documentation generation please install doxygen and graphviz packages")
+ message(STATUS "sudo apt-get install doxygen graphviz")
+ message(STATUS "To enable processing of MscGen comments please install mscgen")
+ message(STATUS "sudo apt-get install mscgen")
+endif()