diff options
author | Ivo Stoilov (GitHub) <istoilov@luxoft.com> | 2016-12-30 17:47:39 +0200 |
---|---|---|
committer | Ivo Stoilov (GitHub) <istoilov@luxoft.com> | 2017-01-12 18:36:30 +0200 |
commit | 1c58e66069fe65a94234e322cd76051e0aaa30e2 (patch) | |
tree | c53ae86a4bea52ef5c75f988a4961b8f579229fd | |
parent | 7063ed619c92d795a46f221fc9935a2249e65bf2 (diff) | |
download | sdl_core-1c58e66069fe65a94234e322cd76051e0aaa30e2.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
Rename src/3rd_party-static/MessageBroker to message_broker
Related tasks APPLINK-30588 APPLINK-30972
110 files changed, 1586 insertions, 1568 deletions
diff --git a/.travis.yml b/.travis.yml index b8b82df3fc..6263b30767 100644 --- a/.travis.yml +++ b/.travis.yml @@ -20,6 +20,7 @@ addons: - libbluetooth3 - libbluetooth-dev - libudev-dev + - libusb-1.0 - cmake - html2text - clang-format-3.6 @@ -34,7 +35,8 @@ script: - bash -e tools/infrastructure/check_style.sh - mkdir build && cd build && cmake ../ -DBUILD_TESTS=ON -DENABLE_GCOV=ON && make install - sudo ldconfig - - make test + - export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:`pwd`/bin/lib ; make test + - bash ../tools/infrastructure/show_disabled.sh - bash -ex ../tools/infrastructure/collect_coverage.sh ./ env: global: diff --git a/CMakeLists.txt b/CMakeLists.txt index 3252f7071d..f8b87167a5 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!!! @@ -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,11 +228,15 @@ 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") @@ -248,137 +249,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,242 +355,10 @@ 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} -) +add_subdirectory(./src/3rd_party EXCLUDE_FROM_ALL) find_package(OpenSSL REQUIRED) if(ENABLE_LOG) @@ -664,25 +370,27 @@ 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 (static) @@ -691,7 +399,6 @@ add_subdirectory(./src/3rd_party-static) # --- Tools add_subdirectory(./tools) - # --- Components add_subdirectory(./src/components) @@ -701,35 +408,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() diff --git a/src/3rd_party-static/CMakeLists.txt b/src/3rd_party-static/CMakeLists.txt index 8dfcf6595a..2acd7be27c 100644 --- a/src/3rd_party-static/CMakeLists.txt +++ b/src/3rd_party-static/CMakeLists.txt @@ -32,8 +32,8 @@ add_subdirectory(./jsoncpp) set(JSONCPP_INCLUDE_DIRECTORY ${JSONCPP_INCLUDE_DIRECTORY} PARENT_SCOPE) -# --- MessageBroker -add_subdirectory(./MessageBroker) +# --- Message Broker +add_subdirectory(./message_broker) set(MESSAGE_BROKER_INCLUDE_DIRECTORY ${MESSAGE_BROKER_INCLUDE_DIRECTORY} PARENT_SCOPE) # --- encryption @@ -48,6 +48,9 @@ if (BUILD_USB_SUPPORT) endif() endif() +# --- gmock if(BUILD_TESTS) + add_subdirectory(./gmock-1.7.0) + set(GMOCK_INCLUDE_DIRECTORY ${GMOCK_INCLUDE_DIRECTORY} PARENT_SCOPE) add_subdirectory(test) endif() diff --git a/src/3rd_party-static/MessageBroker/CMakeLists.txt b/src/3rd_party-static/MessageBroker/CMakeLists.txt deleted file mode 100644 index 87a0fe2a2a..0000000000 --- a/src/3rd_party-static/MessageBroker/CMakeLists.txt +++ /dev/null @@ -1,39 +0,0 @@ -set(MESSAGE_BROKER_INCLUDE_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include) -set(MESSAGE_BROKER_INCLUDE_DIRECTORY ${MESSAGE_BROKER_INCLUDE_DIRECTORY} PARENT_SCOPE) - -include_directories ( - ./include/ - ../jsoncpp/include - ../../components/utils/include - -) - -set (MESSAGE_BROKER_SOURCES - ./src/lib_messagebroker/CMessageBroker.cpp - ./src/lib_messagebroker/CMessageBrokerRegistry.cpp - ./src/lib_messagebroker/md5.cpp - ./src/lib_messagebroker/system.cpp - ./src/lib_messagebroker/websocket_handler.cpp -) - -set (MESSAGE_BROKER_CLIENT_SOURCES - ./src/client/mb_client.cpp - ./src/client/mb_tcpclient.cpp - ./src/client/mb_controller.cpp -) - -set (MESSAGE_BROKER_SERVER_SOURCES - ./src/server/mb_server.cpp - ./src/server/mb_tcpserver.cpp - ./src/server/networking.cpp -) - -add_library("MessageBroker" ${MESSAGE_BROKER_SOURCES}) -target_link_libraries(MessageBroker Utils) - - -add_library("MessageBrokerClient" ${MESSAGE_BROKER_CLIENT_SOURCES}) -target_link_libraries("MessageBrokerClient" "MessageBroker") - -add_library("MessageBrokerServer" ${MESSAGE_BROKER_SERVER_SOURCES}) -target_link_libraries("MessageBrokerServer" "MessageBroker") diff --git a/src/3rd_party-static/encryption/CMakeLists.txt b/src/3rd_party-static/encryption/CMakeLists.txt index 3802c83cb5..5096f59c22 100644 --- a/src/3rd_party-static/encryption/CMakeLists.txt +++ b/src/3rd_party-static/encryption/CMakeLists.txt @@ -1,14 +1,43 @@ +# Copyright (c) 2015, 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(${CMAKE_SOURCE_DIR}/tools/cmake/helpers/sources.cmake) + set(ENCRYPTION_INCLUDE_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include) set(ENCRYPTION_INCLUDE_DIRECTORY ${ENCRYPTION_INCLUDE_DIRECTORY} PARENT_SCOPE) include_directories ( - ./include + ${ENCRYPTION_INCLUDE_DIRECTORY} ) -set (SOURCES - ./src/Base64.cpp - ./src/hashing.cc -) +collect_sources(SOURCES "${CMAKE_CURRENT_SOURCE_DIR}") set (LIBRARIES crypto) diff --git a/src/3rd_party-static/jsoncpp/CMakeLists.txt b/src/3rd_party-static/jsoncpp/CMakeLists.txt index 04a4bd960c..ac273cfe7b 100644 --- a/src/3rd_party-static/jsoncpp/CMakeLists.txt +++ b/src/3rd_party-static/jsoncpp/CMakeLists.txt @@ -1,14 +1,42 @@ +# Copyright (c) 2016, 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(${CMAKE_SOURCE_DIR}/tools/cmake/helpers/sources.cmake) + set(JSONCPP_INCLUDE_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include) set(JSONCPP_INCLUDE_DIRECTORY ${JSONCPP_INCLUDE_DIRECTORY} PARENT_SCOPE) -include_directories ( - ./include/ +include_directories( + ${CMAKE_CURRENT_SOURCE_DIR}/include ) -set (SOURCES - ./src/lib_json/json_value.cpp - ./src/lib_json/json_writer.cpp - ./src/lib_json/json_reader.cpp -) +collect_sources(SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/src/lib_json") -add_library("jsoncpp" ${SOURCES}) +add_library(jsoncpp ${SOURCES}) diff --git a/cmake/Modules/sources.cmake b/src/3rd_party-static/message_broker/CMakeLists.txt index 1414a33809..348d050887 100644 --- a/cmake/Modules/sources.cmake +++ b/src/3rd_party-static/message_broker/CMakeLists.txt @@ -28,24 +28,51 @@ # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. -function(create_cotired_test NAME SOURCES LIBS) - add_executable( - ${NAME} - EXCLUDE_FROM_ALL - ${CMAKE_SOURCE_DIR}/src/components/test_main.cc - ${SOURCES} - ) - if(${USE_COTIRE}) - include(cotire) - cotire(${NAME}) - set(NAME "${NAME}_unity") - endif() - target_link_libraries(${NAME} ${LIBS}) - set_target_properties( - ${NAME} - PROPERTIES - EXCLUDE_FROM_ALL 0 - ) - add_test(NAME ${NAME} - COMMAND ${NAME} --gtest_output=xml:${CMAKE_BINARY_DIR}/test_results/) -endfunction() +include(${CMAKE_SOURCE_DIR}/tools/cmake/helpers/sources.cmake) + +set(MESSAGE_BROKER_INCLUDE_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include) +set(MESSAGE_BROKER_INCLUDE_DIRECTORY ${MESSAGE_BROKER_INCLUDE_DIRECTORY} PARENT_SCOPE) + +include_directories( + ${CMAKE_CURRENT_SOURCE_DIR}/include + ${JSONCPP_INCLUDE_DIRECTORY} +) + +set(CLIENT_PATHS + ${CMAKE_CURRENT_SOURCE_DIR}/src/client +) +collect_sources(CLIENT_SOURCES "${CLIENT_PATHS}") + +set(SERVER_PATHS + ${CMAKE_CURRENT_SOURCE_DIR}/src/server +) +collect_sources(SERVER_SOURCES "${SERVER_PATHS}") + +set(EXCLUDE_PATHS + ${CLIENT_PATHS} + ${SERVER_PATHS} + ${CMAKE_CURRENT_SOURCE_DIR}/src/example +) + +set(PATHS + ${CMAKE_CURRENT_SOURCE_DIR}/include + ${CMAKE_CURRENT_SOURCE_DIR}/src +) +collect_sources(SOURCES "${PATHS}" "${EXCLUDE_PATHS}") + +set(LIBRARIES + Utils +) + +add_library(message_broker ${SOURCES}) +target_link_libraries(message_broker ${LIBRARIES}) + +list(APPEND LIBRARIES + message_broker +) + +add_library(message_broker_client ${CLIENT_SOURCES}) +target_link_libraries(message_broker_client ${LIBRARIES}) + +add_library(message_broker_server ${SERVER_SOURCES}) +target_link_libraries(message_broker_server ${LIBRARIES}) diff --git a/src/3rd_party-static/MessageBroker/include/CMessageBroker.hpp b/src/3rd_party-static/message_broker/include/CMessageBroker.hpp index c542043796..c542043796 100644 --- a/src/3rd_party-static/MessageBroker/include/CMessageBroker.hpp +++ b/src/3rd_party-static/message_broker/include/CMessageBroker.hpp diff --git a/src/3rd_party-static/MessageBroker/include/CMessageBrokerRegistry.hpp b/src/3rd_party-static/message_broker/include/CMessageBrokerRegistry.hpp index 001f978bbf..001f978bbf 100644 --- a/src/3rd_party-static/MessageBroker/include/CMessageBrokerRegistry.hpp +++ b/src/3rd_party-static/message_broker/include/CMessageBrokerRegistry.hpp diff --git a/src/3rd_party-static/MessageBroker/include/CSender.hpp b/src/3rd_party-static/message_broker/include/CSender.hpp index 78faf7dad2..78faf7dad2 100644 --- a/src/3rd_party-static/MessageBroker/include/CSender.hpp +++ b/src/3rd_party-static/message_broker/include/CSender.hpp diff --git a/src/3rd_party-static/MessageBroker/include/MBDebugHelper.h b/src/3rd_party-static/message_broker/include/MBDebugHelper.h index fa835da3f0..fa835da3f0 100644 --- a/src/3rd_party-static/MessageBroker/include/MBDebugHelper.h +++ b/src/3rd_party-static/message_broker/include/MBDebugHelper.h diff --git a/src/3rd_party-static/MessageBroker/include/mb_client.hpp b/src/3rd_party-static/message_broker/include/mb_client.hpp index cd70a31cd8..cd70a31cd8 100644 --- a/src/3rd_party-static/MessageBroker/include/mb_client.hpp +++ b/src/3rd_party-static/message_broker/include/mb_client.hpp diff --git a/src/3rd_party-static/MessageBroker/include/mb_controller.hpp b/src/3rd_party-static/message_broker/include/mb_controller.hpp index 2d196aced2..2d196aced2 100644 --- a/src/3rd_party-static/MessageBroker/include/mb_controller.hpp +++ b/src/3rd_party-static/message_broker/include/mb_controller.hpp diff --git a/src/3rd_party-static/MessageBroker/include/mb_server.hpp b/src/3rd_party-static/message_broker/include/mb_server.hpp index 684a89055a..684a89055a 100644 --- a/src/3rd_party-static/MessageBroker/include/mb_server.hpp +++ b/src/3rd_party-static/message_broker/include/mb_server.hpp diff --git a/src/3rd_party-static/MessageBroker/include/mb_tcpclient.hpp b/src/3rd_party-static/message_broker/include/mb_tcpclient.hpp index 07697dbde7..07697dbde7 100644 --- a/src/3rd_party-static/MessageBroker/include/mb_tcpclient.hpp +++ b/src/3rd_party-static/message_broker/include/mb_tcpclient.hpp diff --git a/src/3rd_party-static/MessageBroker/include/mb_tcpserver.hpp b/src/3rd_party-static/message_broker/include/mb_tcpserver.hpp index 8ab2ce6a6d..8ab2ce6a6d 100644 --- a/src/3rd_party-static/MessageBroker/include/mb_tcpserver.hpp +++ b/src/3rd_party-static/message_broker/include/mb_tcpserver.hpp diff --git a/src/3rd_party-static/MessageBroker/include/networking.h b/src/3rd_party-static/message_broker/include/networking.h index a08853bb31..a08853bb31 100644 --- a/src/3rd_party-static/MessageBroker/include/networking.h +++ b/src/3rd_party-static/message_broker/include/networking.h diff --git a/src/3rd_party-static/MessageBroker/include/system.h b/src/3rd_party-static/message_broker/include/system.h index fac4f7926b..fac4f7926b 100644 --- a/src/3rd_party-static/MessageBroker/include/system.h +++ b/src/3rd_party-static/message_broker/include/system.h diff --git a/src/3rd_party-static/MessageBroker/include/websocket_handler.hpp b/src/3rd_party-static/message_broker/include/websocket_handler.hpp index 8bed007436..8bed007436 100644 --- a/src/3rd_party-static/MessageBroker/include/websocket_handler.hpp +++ b/src/3rd_party-static/message_broker/include/websocket_handler.hpp diff --git a/src/3rd_party-static/MessageBroker/src/client/mb_client.cpp b/src/3rd_party-static/message_broker/src/client/mb_client.cpp index 6342c776a8..6342c776a8 100644 --- a/src/3rd_party-static/MessageBroker/src/client/mb_client.cpp +++ b/src/3rd_party-static/message_broker/src/client/mb_client.cpp diff --git a/src/3rd_party-static/MessageBroker/src/client/mb_controller.cpp b/src/3rd_party-static/message_broker/src/client/mb_controller.cpp index 8a4a77cf30..8a4a77cf30 100644 --- a/src/3rd_party-static/MessageBroker/src/client/mb_controller.cpp +++ b/src/3rd_party-static/message_broker/src/client/mb_controller.cpp diff --git a/src/3rd_party-static/MessageBroker/src/client/mb_tcpclient.cpp b/src/3rd_party-static/message_broker/src/client/mb_tcpclient.cpp index 02db417c26..02db417c26 100644 --- a/src/3rd_party-static/MessageBroker/src/client/mb_tcpclient.cpp +++ b/src/3rd_party-static/message_broker/src/client/mb_tcpclient.cpp diff --git a/src/3rd_party-static/MessageBroker/src/example/MessageBrokerControllerAVA.cpp b/src/3rd_party-static/message_broker/src/example/MessageBrokerControllerAVA.cpp index 77ab1ca2c1..77ab1ca2c1 100644 --- a/src/3rd_party-static/MessageBroker/src/example/MessageBrokerControllerAVA.cpp +++ b/src/3rd_party-static/message_broker/src/example/MessageBrokerControllerAVA.cpp diff --git a/src/3rd_party-static/MessageBroker/src/example/MessageBrokerControllerAVA.hpp b/src/3rd_party-static/message_broker/src/example/MessageBrokerControllerAVA.hpp index 47e684a7e4..47e684a7e4 100644 --- a/src/3rd_party-static/MessageBroker/src/example/MessageBrokerControllerAVA.hpp +++ b/src/3rd_party-static/message_broker/src/example/MessageBrokerControllerAVA.hpp diff --git a/src/3rd_party-static/MessageBroker/src/example/MessageBrokerControllerBackend.cpp b/src/3rd_party-static/message_broker/src/example/MessageBrokerControllerBackend.cpp index cbbe39492b..cbbe39492b 100644 --- a/src/3rd_party-static/MessageBroker/src/example/MessageBrokerControllerBackend.cpp +++ b/src/3rd_party-static/message_broker/src/example/MessageBrokerControllerBackend.cpp diff --git a/src/3rd_party-static/MessageBroker/src/example/MessageBrokerControllerBackend.hpp b/src/3rd_party-static/message_broker/src/example/MessageBrokerControllerBackend.hpp index b79411dc98..b79411dc98 100644 --- a/src/3rd_party-static/MessageBroker/src/example/MessageBrokerControllerBackend.hpp +++ b/src/3rd_party-static/message_broker/src/example/MessageBrokerControllerBackend.hpp diff --git a/src/3rd_party-static/MessageBroker/src/example/MessageBrokerControllerPhone.cpp b/src/3rd_party-static/message_broker/src/example/MessageBrokerControllerPhone.cpp index 6f308e71c2..6f308e71c2 100644 --- a/src/3rd_party-static/MessageBroker/src/example/MessageBrokerControllerPhone.cpp +++ b/src/3rd_party-static/message_broker/src/example/MessageBrokerControllerPhone.cpp diff --git a/src/3rd_party-static/MessageBroker/src/example/MessageBrokerControllerPhone.hpp b/src/3rd_party-static/message_broker/src/example/MessageBrokerControllerPhone.hpp index e6f4898226..e6f4898226 100644 --- a/src/3rd_party-static/MessageBroker/src/example/MessageBrokerControllerPhone.hpp +++ b/src/3rd_party-static/message_broker/src/example/MessageBrokerControllerPhone.hpp diff --git a/src/3rd_party-static/MessageBroker/src/example/MessageBrokerServer.cpp b/src/3rd_party-static/message_broker/src/example/MessageBrokerServer.cpp index 405b3fcbd5..405b3fcbd5 100644 --- a/src/3rd_party-static/MessageBroker/src/example/MessageBrokerServer.cpp +++ b/src/3rd_party-static/message_broker/src/example/MessageBrokerServer.cpp diff --git a/src/3rd_party-static/MessageBroker/src/example/MessageBrokerServer.hpp b/src/3rd_party-static/message_broker/src/example/MessageBrokerServer.hpp index 884ed0309f..884ed0309f 100644 --- a/src/3rd_party-static/MessageBroker/src/example/MessageBrokerServer.hpp +++ b/src/3rd_party-static/message_broker/src/example/MessageBrokerServer.hpp diff --git a/src/3rd_party-static/MessageBroker/src/lib_messagebroker/CMessageBroker.cpp b/src/3rd_party-static/message_broker/src/lib_messagebroker/CMessageBroker.cpp index 3b14489a8c..3b14489a8c 100644 --- a/src/3rd_party-static/MessageBroker/src/lib_messagebroker/CMessageBroker.cpp +++ b/src/3rd_party-static/message_broker/src/lib_messagebroker/CMessageBroker.cpp diff --git a/src/3rd_party-static/MessageBroker/src/lib_messagebroker/CMessageBrokerRegistry.cpp b/src/3rd_party-static/message_broker/src/lib_messagebroker/CMessageBrokerRegistry.cpp index fb24d08f1c..fb24d08f1c 100644 --- a/src/3rd_party-static/MessageBroker/src/lib_messagebroker/CMessageBrokerRegistry.cpp +++ b/src/3rd_party-static/message_broker/src/lib_messagebroker/CMessageBrokerRegistry.cpp diff --git a/src/3rd_party-static/MessageBroker/src/lib_messagebroker/libMBDebugHelper.h b/src/3rd_party-static/message_broker/src/lib_messagebroker/libMBDebugHelper.h index 0d5260cdda..0d5260cdda 100644 --- a/src/3rd_party-static/MessageBroker/src/lib_messagebroker/libMBDebugHelper.h +++ b/src/3rd_party-static/message_broker/src/lib_messagebroker/libMBDebugHelper.h diff --git a/src/3rd_party-static/MessageBroker/src/lib_messagebroker/md5.cpp b/src/3rd_party-static/message_broker/src/lib_messagebroker/md5.cpp index b3e347d9d7..b3e347d9d7 100644 --- a/src/3rd_party-static/MessageBroker/src/lib_messagebroker/md5.cpp +++ b/src/3rd_party-static/message_broker/src/lib_messagebroker/md5.cpp diff --git a/src/3rd_party-static/MessageBroker/src/lib_messagebroker/md5.h b/src/3rd_party-static/message_broker/src/lib_messagebroker/md5.h index 2c54c03b1b..2c54c03b1b 100644 --- a/src/3rd_party-static/MessageBroker/src/lib_messagebroker/md5.h +++ b/src/3rd_party-static/message_broker/src/lib_messagebroker/md5.h diff --git a/src/3rd_party-static/MessageBroker/src/lib_messagebroker/system.cpp b/src/3rd_party-static/message_broker/src/lib_messagebroker/system.cpp index 456362f9d8..456362f9d8 100644 --- a/src/3rd_party-static/MessageBroker/src/lib_messagebroker/system.cpp +++ b/src/3rd_party-static/message_broker/src/lib_messagebroker/system.cpp diff --git a/src/3rd_party-static/MessageBroker/src/lib_messagebroker/websocket_handler.cpp b/src/3rd_party-static/message_broker/src/lib_messagebroker/websocket_handler.cpp index 7d3890b7a8..7d3890b7a8 100644 --- a/src/3rd_party-static/MessageBroker/src/lib_messagebroker/websocket_handler.cpp +++ b/src/3rd_party-static/message_broker/src/lib_messagebroker/websocket_handler.cpp diff --git a/src/3rd_party-static/MessageBroker/src/server/mb_server.cpp b/src/3rd_party-static/message_broker/src/server/mb_server.cpp index 25ec7fc9f3..25ec7fc9f3 100644 --- a/src/3rd_party-static/MessageBroker/src/server/mb_server.cpp +++ b/src/3rd_party-static/message_broker/src/server/mb_server.cpp diff --git a/src/3rd_party-static/MessageBroker/src/server/mb_tcpserver.cpp b/src/3rd_party-static/message_broker/src/server/mb_tcpserver.cpp index bdd7b2bfdf..bdd7b2bfdf 100644 --- a/src/3rd_party-static/MessageBroker/src/server/mb_tcpserver.cpp +++ b/src/3rd_party-static/message_broker/src/server/mb_tcpserver.cpp diff --git a/src/3rd_party-static/MessageBroker/src/server/networking.cpp b/src/3rd_party-static/message_broker/src/server/networking.cpp index f054431690..f054431690 100644 --- a/src/3rd_party-static/MessageBroker/src/server/networking.cpp +++ b/src/3rd_party-static/message_broker/src/server/networking.cpp diff --git a/src/3rd_party-static/test/CMakeLists.txt b/src/3rd_party-static/test/CMakeLists.txt index 33bcd82694..a38a392a01 100644 --- a/src/3rd_party-static/test/CMakeLists.txt +++ b/src/3rd_party-static/test/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (c) 2015, Ford Motor Company +# Copyright (c) 2016, Ford Motor Company # All rights reserved. # # Redistribution and use in source and binary forms, with or without @@ -28,21 +28,16 @@ # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. -if(BUILD_TESTS) -include_directories ( +include_directories( ${GMOCK_INCLUDE_DIRECTORY} ${JSONCPP_INCLUDE_DIRECTORY} ) +collect_sources(SOURCES "${CMAKE_CURRENT_SOURCE_DIR}") + set(LIBRARIES gmock jsoncpp ) -set (SOURCES - json_reader_test.cc -) - -add_library("test_JSONCPPTest" ${SOURCES}) -create_test("test_JSONCPP" "${SOURCES}" "${LIBRARIES}") -endif()
\ No newline at end of file +create_test(jsoncpp_test "${SOURCES}" "${LIBRARIES}") diff --git a/src/3rd_party/CMakeLists.txt b/src/3rd_party/CMakeLists.txt index c7965992f4..cddc2d16b6 100644 --- a/src/3rd_party/CMakeLists.txt +++ b/src/3rd_party/CMakeLists.txt @@ -28,7 +28,27 @@ # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. -INCLUDE("./set_3rd_party_paths.cmake") +include("./set_3rd_party_paths.cmake") + +set(3RD_PARTY_SOURCE_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) +set(3RD_PARTY_BINARY_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) + +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 OR HMI_DBUS_API) # --- libexpat @@ -37,14 +57,112 @@ if(ENABLE_LOG OR HMI_DBUS_API) 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() + 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(LOG4CXX_INCLUDE_DIRECTORY ${3RD_PARTY_INSTALL_PREFIX}/include PARENT_SCOPE) set(LOG4CXX_LIBS_DIRECTORY ${3RD_PARTY_INSTALL_PREFIX_ARCH}/lib PARENT_SCOPE) -endif() -if(ENABLE_LOG) # --- libapr-1 add_subdirectory(apr-cmake) @@ -57,14 +175,117 @@ endif() # --- D-Bus if(HMI_DBUS_API) + 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} + ) + + set(install-3rd_party_dbus_var "install-3rd_party_dbus") + endif() + endif() + + # --- D-Bus set(DBUS_INCLUDE_DIR ${3RD_PARTY_INSTALL_PREFIX}/include) set(DBUS_INCLUDE_DIR_ARCH ${3RD_PARTY_INSTALL_PREFIX_ARCH}/include) set(DBUS_INCLUDE_DIRS ${DBUS_INCLUDE_DIR} ${DBUS_INCLUDE_DIR_ARCH}) set(DBUS_INCLUDE_DIRS ${DBUS_INCLUDE_DIRS} PARENT_SCOPE) set(DBUS_LIBS_DIRECTORY ${3RD_PARTY_INSTALL_PREFIX_ARCH}/lib PARENT_SCOPE) -endif() -if(HMI_DBUS_API) add_subdirectory(dbus-cmake) endif() +add_custom_target(install-3rd_party + DEPENDS ${install-3rd_party_logger_var} + DEPENDS ${install-3rd_party_dbus_var} + WORKING_DIRECTORY ${3RD_PARTY_BINARY_DIRECTORY} +) + diff --git a/src/3rd_party/apache-log4cxx-cmake/CMakeLists.txt b/src/3rd_party/apache-log4cxx-cmake/CMakeLists.txt index a3dd48d1f7..57291f88a4 100644 --- a/src/3rd_party/apache-log4cxx-cmake/CMakeLists.txt +++ b/src/3rd_party/apache-log4cxx-cmake/CMakeLists.txt @@ -74,7 +74,7 @@ add_custom_target(liblog4cxx ALL make cd ${CMAKE_CURRENT_SOURCE_DIR} && git log --pretty=\\"format:%H\\" -1 ${LOG4CXX_SOURCE_DIRECTORY} > /tmp/commit_hash 2>/dev/null && echo \\"Adding .commit_hash section\\" && - ${objcopy} --add-section .commit_hash=/tmp/commit_hash ${LOG4CXX_LIBS_DIRECTORY}/liblog4cxx.so ${LOG4CXX_LIBS_DIRECTORY}/liblog4cxx.so 1>/dev/null 2>&1\; + objcopy --add-section .commit_hash=/tmp/commit_hash ${LOG4CXX_LIBS_DIRECTORY}/liblog4cxx.so ${LOG4CXX_LIBS_DIRECTORY}/liblog4cxx.so 1>/dev/null 2>&1\; fi; fi\" DEPENDS ${LOG4CXX_BUILD_DIRECTORY}/Makefile diff --git a/src/3rd_party/iap.build.tar.bz2 b/src/3rd_party/iap.build.tar.bz2 Binary files differdeleted file mode 100644 index 19aa8b7ae5..0000000000 --- a/src/3rd_party/iap.build.tar.bz2 +++ /dev/null diff --git a/src/appMain/CMakeLists.txt b/src/appMain/CMakeLists.txt index 84b2c847bd..a0f053fbd2 100644 --- a/src/appMain/CMakeLists.txt +++ b/src/appMain/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (c) 2014, Ford Motor Company +# Copyright (c) 2016, Ford Motor Company # All rights reserved. # # Redistribution and use in source and binary forms, with or without @@ -28,12 +28,43 @@ # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. -IF (HMIADAPTER STREQUAL "messagebroker") -set (BROKER_LIBRARIES - MessageBrokerClient - MessageBrokerServer +include(${CMAKE_SOURCE_DIR}/tools/cmake/helpers/sources.cmake) + +find_package(SDLOpenSSL REQUIRED) + +include_directories( + ${COMPONENTS_DIR}/protocol_handler/include + ${COMPONENTS_DIR}/application_manager/include + ${COMPONENTS_DIR}/formatters/include + ${COMPONENTS_DIR}/transport_manager/include + ${COMPONENTS_DIR}/security_manager/include + ${COMPONENTS_DIR}/security_manager/include + ${COMPONENTS_DIR}/config_profile/include + ${COMPONENTS_DIR}/utils/include + ${COMPONENTS_DIR}/connection_handler/include + ${COMPONENTS_DIR}/hmi_message_handler/include + ${COMPONENTS_DIR}/request_watchdog/include + ${COMPONENTS_DIR}/smart_objects/include + ${COMPONENTS_DIR}/media_manager/include + ${COMPONENTS_DIR}/telemetry_monitor/include + ${COMPONENTS_DIR}/policy/include + ${COMPONENTS_DIR}/resumption/include + ${COMPONENTS_DIR}/dbus/include + ${CMAKE_BINARY_DIR}/src/components + ${JSONCPP_INCLUDE_DIRECTORY} + ${LOG4CXX_INCLUDE_DIRECTORY} + ${OPENSSL_INCLUDE_DIRECTORY} + ${MESSAGE_BROKER_INCLUDE_DIRECTORY} ) -ENDIF () + +collect_sources(SOURCES "${CMAKE_CURRENT_SOURCE_DIR}") + +if (HMIADAPTER STREQUAL "messagebroker") + set (BROKER_LIBRARIES + message_broker_client + message_broker_server + ) +endif() cmake_policy(PUSH) # make link_directories() treat paths relative to the source dir @@ -43,18 +74,18 @@ link_directories(${LIBUSB_LIBS_DIRECTORY}) cmake_policy(POP) if (EXTENDED_MEDIA_MODE) -set(default_media_inc -${GSTREAMER_gst_INCLUDE_DIR} -${GSTREAMER_gstconfig_INCLUDE_DIR} -) + set(default_media_inc + ${GSTREAMER_gst_INCLUDE_DIR} + ${GSTREAMER_gstconfig_INCLUDE_DIR} + ) else(EXTENDED_MEDIA_MODE) -set(default_media_inc -) + set(default_media_inc) endif() if (TELEMETRY_MONITOR) - set(TELEMETRY_MONITOR_LIB - TelemetryMonitor) + set(TELEMETRY_MONITOR_LIB + TelemetryMonitor + ) endif() set(LIBRARIES @@ -73,7 +104,7 @@ set(LIBRARIES TransportManager ${SecurityManagerLibrary} HMIMessageHandler - MessageBroker + message_broker ${BROKER_LIBRARIES} Utils jsoncpp @@ -87,12 +118,15 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux") endif() if (BUILD_BT_SUPPORT) - list(APPEND LIBRARIES bluetooth) + if(CMAKE_SYSTEM_NAME STREQUAL "Linux") + list(APPEND LIBRARIES bluetooth) + endif() endif() + if (BUILD_USB_SUPPORT) -if (CMAKE_SYSTEM_NAME STREQUAL "Linux") - list(APPEND LIBRARIES Libusb-1.0.16) -endif() + if (CMAKE_SYSTEM_NAME STREQUAL "Linux") + list(APPEND LIBRARIES Libusb-1.0.16) + endif() endif() if(ENABLE_LOG) @@ -102,44 +136,6 @@ if(ENABLE_LOG) list(APPEND LIBRARIES expat -L${EXPAT_LIBS_DIRECTORY}) endif() -include_directories ( - ./ - ${COMPONENTS_DIR}/protocol_handler/include/ - ${JSONCPP_INCLUDE_DIRECTORY} - ${COMPONENTS_DIR}/application_manager/include - ${COMPONENTS_DIR}/formatters/include - ${COMPONENTS_DIR}/transport_manager/include - ${COMPONENTS_DIR}/security_manager/include - ${SecurityManagerIncludeDir} - ${COMPONENTS_DIR}/security_manager/include - ${COMPONENTS_DIR}/config_profile/include - ${COMPONENTS_DIR}/utils/include/ - ${COMPONENTS_DIR}/connection_handler/include/ - ${COMPONENTS_DIR}/hmi_message_handler/include - ${COMPONENTS_DIR}/request_watchdog/include - ${COMPONENTS_DIR}/smart_objects/include/ - ${COMPONENTS_DIR}/media_manager/include/ - ${COMPONENTS_DIR}/telemetry_monitor/include - ${COMPONENTS_DIR}/policy/include/ - ${COMPONENTS_DIR}/resumption/include/ - ${MESSAGE_BROKER_INCLUDE_DIRECTORY} - ${ENCRYPTION_INCLUDE_DIRECTORY} - ${COMPONENTS_DIR} - ${CMAKE_BINARY_DIR}/src/components/ - ${COMPONENTS_DIR}/dbus/include/ - ${CMAKE_SOURCE_DIR} - ${default_media_inc} - ${LOG4CXX_INCLUDE_DIRECTORY} - ${CMAKE_SOURCE_DIR}/src/3rd_party/dbus-1.7.8 - ${CMAKE_SOURCE_DIR}/src/3rd_party/dbus-1.7.8/dbus/ -) - -set (SOURCES - main.cc - life_cycle.cc - signal_handlers.cc -) - if( NOT CMAKE_BUILD_TYPE ) set(CMAKE_BUILD_TYPE Debug CACHE STRING "Choose the type of build. Options are: None, Debug, Release, RelWithDebInfo, MinSizeRel." FORCE) endif() @@ -147,7 +143,6 @@ endif() add_executable(${PROJECT} ${SOURCES}) target_link_libraries(${PROJECT} ${LIBRARIES}) - file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/log4cxx.properties DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/audio.8bit.wav DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/test.txt DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) diff --git a/src/components/CMakeLists.txt b/src/components/CMakeLists.txt index d31141b36c..28c8e68b54 100644 --- a/src/components/CMakeLists.txt +++ b/src/components/CMakeLists.txt @@ -29,68 +29,64 @@ # POSSIBILITY OF SUCH DAMAGE. set(COMPONENTS_DIR ${CMAKE_SOURCE_DIR}/src/components) +set(COMPONENTS_DIR ${COMPONENTS_DIR} PARENT_SCOPE) -# --- HMI_API interfaces +# --- HMI, MOBILE Interfaces add_subdirectory(./interfaces) -# --- ProtocolHandler +# --- Protocol Handler add_subdirectory(./protocol) -# --- TransportManager +# --- Transport Manager add_subdirectory(./transport_manager) -# --- Policies +# --- Resumption add_subdirectory(./resumption) -# --- formatters +# --- Formatters add_subdirectory(./formatters) -# --- ProtocolHandler +# --- Protocol Handler add_subdirectory(./protocol_handler) -# --- ConnectionHandler +# --- Connection Handler add_subdirectory(./connection_handler) # --- Utils add_subdirectory(./utils) -# --- Security manager +# --- Security Manager if(ENABLE_SECURITY) add_subdirectory(./security_manager) endif() -# -# --- Policy_impl + +# --- Policy add_subdirectory(./policy) -# --- Validated types +# --- Validated Types add_subdirectory(./rpc_base) -# --- SmartObjects +# --- Smart Objects add_subdirectory(./smart_objects) -# --- Application manager +# --- Application Manager add_subdirectory(./application_manager) # --- HMI Message Handler add_subdirectory(./hmi_message_handler) -# --- Config +# --- Config Profile add_subdirectory(./config_profile) -# --- AudioManager +# --- Media Manager add_subdirectory(./media_manager) -if (TELEMETRY_MONITOR) - add_subdirectory(./telemetry_monitor) +# --- Telemetry Monitor +if(TELEMETRY_MONITOR) + add_subdirectory(./telemetry_monitor) endif() - -if (${HMI_DBUS_API}) # --- DBus - add_subdirectory(./dbus) -endif () -if (${QT_HMI}) -# --- Qt HMI - add_subdirectory(./qt_hmi) -endif () - +if(HMI_DBUS_API) + add_subdirectory(./dbus) +endif() diff --git a/src/components/HMI/IVSU/PROPRIETARY_REQUEST~ b/src/components/HMI/IVSU/PROPRIETARY_REQUEST~ deleted file mode 100644 index e69de29bb2..0000000000 --- a/src/components/HMI/IVSU/PROPRIETARY_REQUEST~ +++ /dev/null diff --git a/src/components/application_manager/CMakeLists.txt b/src/components/application_manager/CMakeLists.txt index 32848b1c6d..591b2063b9 100644 --- a/src/components/application_manager/CMakeLists.txt +++ b/src/components/application_manager/CMakeLists.txt @@ -28,6 +28,8 @@ # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. +include(${CMAKE_SOURCE_DIR}/tools/cmake/helpers/platform.cmake) +include(${CMAKE_SOURCE_DIR}/tools/cmake/helpers/sources.cmake) set (AM_SOURCE_DIR ${COMPONENTS_DIR}/application_manager) set (AM_TEST_DIR ${AM_SOURCE_DIR}/test) @@ -41,16 +43,14 @@ include_directories ( ${COMPONENTS_DIR}/protocol_handler/include/ ${COMPONENTS_DIR}/smart_objects/include/ ${COMPONENTS_DIR}/hmi_message_handler/include - ${COMPONENTS_DIR}/media_manager/include/ - ${COMPONENTS_DIR}/connection_handler/include/ - ${COMPONENTS_DIR}/config_profile/include/ - ${COMPONENTS_DIR}/request_watchdog/include/ - ${COMPONENTS_DIR}/resumption/include/ - ${COMPONENTS_DIR}/app_launch/include/ - ${COMPONENTS_DIR}/rpc_base/include/ - ${COMPONENTS_DIR}/interfaces - ${CMAKE_BINARY_DIR}/src/components/ - ${COMPONENTS_DIR}/policy/include/ + ${COMPONENTS_DIR}/media_manager/include + ${COMPONENTS_DIR}/connection_handler/include + ${COMPONENTS_DIR}/config_profile/include + ${COMPONENTS_DIR}/request_watchdog/include + ${COMPONENTS_DIR}/resumption/include + ${COMPONENTS_DIR}/rpc_base/include + ${COMPONENTS_DIR}/policy/include + ${CMAKE_BINARY_DIR}/src/components ${JSONCPP_INCLUDE_DIRECTORY} ${ENCRYPTION_INCLUDE_DIRECTORY} ${MESSAGE_BROKER_INCLUDE_DIRECTORY} @@ -69,48 +69,60 @@ if (${CMAKE_SYSTEM_NAME} MATCHES "QNX") ) endif() -file (GLOB SOURCES - ${AM_SOURCE_DIR}/src/* +set (MESSAGE_HELPER_SOURCE_DIR + ${AM_SOURCE_DIR}/src/message_helper ) -set (MESSAGE_HELPER_SOURCES - ${AM_SOURCE_DIR}/src/message_helper/message_helper.cc +set (MESSAGE_HELPER_PATHS + ${MESSAGE_HELPER_SOURCE_DIR} ) +collect_sources(MESSAGE_HELPER_SOURCES "${MESSAGE_HELPER_PATHS}") -set (POLICIES_MANAGER -${AM_SOURCE_DIR}/src/policies/policy_handler.cc -${AM_SOURCE_DIR}/src/usage_statistics.cc -${AM_SOURCE_DIR}/src/policies/policy_event_observer.cc -${AM_SOURCE_DIR}/src/policies/delegates/app_permission_delegate.cc -${AM_SOURCE_DIR}/src/policies/delegates/statistics_delegate.cc + +set (POLICIES_SOURCE_DIR + ${AM_SOURCE_DIR}/src/policies ) - include_directories( - ${COMPONENTS_DIR}/policy/src/policy/policy_table/table_struct - ) -file (GLOB EVENT_ENGINE - ${AM_SOURCE_DIR}/src/event_engine/* +set (POLICIES_MANAGER_SOURCES + ${POLICIES_SOURCE_DIR}/policy_handler.cc + ${POLICIES_SOURCE_DIR}/policy_event_observer.cc + ${POLICIES_SOURCE_DIR}/delegates/app_permission_delegate.cc + ${POLICIES_SOURCE_DIR}/delegates/statistics_delegate.cc + ${CMAKE_CURRENT_SOURCE_DIR}/src/usage_statistics.cc ) -file (GLOB RESUMPTION - ${AM_SOURCE_DIR}/src/resumption/* +include_directories( + ${COMPONENTS_DIR}/policy/src/policy/policy_table/table_struct ) -file (GLOB APP_LAUNCH - ${AM_SOURCE_DIR}/src/app_launch/* +set (EVENT_ENGINE_SOURCE_DIR + ${AM_SOURCE_DIR}/src/event_engine ) +set (EVENT_ENGINE_PATHS + ${CMAKE_CURRENT_SOURCE_DIR}/include/application_manager/event_engine + ${EVENT_ENGINE_SOURCE_DIR} +) +collect_sources(EVENT_ENGINE_SOURCES "${EVENT_ENGINE_PATHS}") + set (COMMANDS_SOURCE_DIR ${AM_SOURCE_DIR}/src/commands ) +collect_sources(POLICIES_SOURCES "${POLICIES_PATHS}") -file (GLOB MOBILE_COMMANDS_SOURCES - ${COMMANDS_SOURCE_DIR}/* - ${COMMANDS_SOURCE_DIR}/mobile/* +set(MOBILE_COMMANDS_EXCLUDE_PATHS + ${COMMANDS_SOURCE_DIR}/hmi ) +set (MOBILE_COMMANDS_PATHS + ${CMAKE_CURRENT_SOURCE_DIR}/include/application_manager/commands + ${CMAKE_CURRENT_SOURCE_DIR}/include/application_manager/commands/mobile + ${COMMANDS_SOURCE_DIR} + ${COMMANDS_SOURCE_DIR}/mobile +) +collect_sources(MOBILE_COMMANDS_SOURCES "${MOBILE_COMMANDS_PATHS}" "${MOBILE_COMMANDS_EXCLUDE_PATHS}") - set (HMI_COMMANDS_SOURCES +set (HMI_COMMANDS_SOURCES ${COMMANDS_SOURCE_DIR}/hmi/request_to_hmi.cc ${COMMANDS_SOURCE_DIR}/hmi/response_from_hmi.cc ${COMMANDS_SOURCE_DIR}/hmi/request_from_hmi.cc @@ -357,7 +369,20 @@ if (${HMI_DBUS_API}) set (HMI_COMMANDS_SOURCES ${HMI_COMMANDS_SOURCES} ${HMI_COMMANDS_SOURCES_DBUS}) endif (${HMI_DBUS_API}) -SET (LIBRARIES +set(EXCLUDE_PATHS + ${COMMANDS_SOURCE_DIR} + ${EVENT_ENGINE_SOURCE_DIR} + ${MESSAGE_HELPER_SOURCE_DIR} + ${POLICIES_SOURCE_DIR} +) + +set(PATHS + ${CMAKE_CURRENT_SOURCE_DIR}/include + ${CMAKE_CURRENT_SOURCE_DIR}/src +) +collect_sources(SOURCES "${PATHS}" "${EXCLUDE_PATHS}") + +set(LIBRARIES HMI_API MOBILE_API v4_protocol_v1_2_no_extra @@ -373,15 +398,14 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux") list(APPEND LIBRARIES sqlite3) endif () -IF(${CMAKE_SYSTEM_NAME} MATCHES "QNX") +if (${CMAKE_SYSTEM_NAME} MATCHES "QNX") list(REMOVE_ITEM LIBRARIES dl) endif() -add_library("AMEventEngine" ${EVENT_ENGINE}) +add_library("AMEventEngine" ${EVENT_ENGINE_SOURCES}) target_link_libraries("AMEventEngine" ${LIBRARIES}) - -add_library("AMPolicyLibrary" ${POLICIES_MANAGER} ) +add_library("AMPolicyLibrary" ${POLICIES_MANAGER_SOURCES} ) target_link_libraries("AMPolicyLibrary" ${LIBRARIES} AMEventEngine) add_library("AMHMICommandsLibrary" ${HMI_COMMANDS_SOURCES}) @@ -392,18 +416,21 @@ add_library("MessageHelper" ${MESSAGE_HELPER_SOURCES}) add_library("AMMobileCommandsLibrary" ${MOBILE_COMMANDS_SOURCES} ) target_link_libraries("AMMobileCommandsLibrary" ${LIBRARIES} AMEventEngine) -add_library("ApplicationManager" ${SOURCES} ${RESUMPTION} ${APP_LAUNCH}) +add_library("ApplicationManager" ${SOURCES}) -target_link_libraries("ApplicationManager" ${LIBRARIES} AMHMICommandsLibrary - AMMobileCommandsLibrary - AMEventEngine - AMPolicyLibrary) +list(APPEND LIBRARIES + AMEventEngine + AMPolicyLibrary + AMHMICommandsLibrary + AMMobileCommandsLibrary +) if(ENABLE_LOG) - target_link_libraries("ApplicationManager" log4cxx -L${LOG4CXX_LIBS_DIRECTORY}) + list(APPEND LIBRARIES log4cxx -L${LOG4CXX_LIBS_DIRECTORY}) endif() +target_link_libraries("ApplicationManager" ${LIBRARIES}) + if(BUILD_TESTS) add_subdirectory(test) - add_subdirectory(test/message_helper) endif() diff --git a/src/components/application_manager/test/CMakeLists.txt b/src/components/application_manager/test/CMakeLists.txt index ba5d684df8..49de6dbcc9 100644 --- a/src/components/application_manager/test/CMakeLists.txt +++ b/src/components/application_manager/test/CMakeLists.txt @@ -28,42 +28,44 @@ # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. +include(${CMAKE_SOURCE_DIR}/tools/cmake/helpers/platform.cmake) +include(${CMAKE_SOURCE_DIR}/tools/cmake/helpers/sources.cmake) + # TODO{ALeshin}: APPLINK-10792. Do not write tests which use # application manager(AM) singleton while refactoring of AM is finished. -if (BUILD_TESTS) - - include_directories( - ${GMOCK_INCLUDE_DIRECTORY} - ${CMAKE_BINARY_DIR}/src/components/ - ${COMPONENTS_DIR}/application_manager/include/ - ${COMPONENTS_DIR}/utils/include/ - ${COMPONENTS_DIR}/resumption/include/ - ${COMPONENTS_DIR}/utils/include/ - ${COMPONENTS_DIR}/policy/include/ - ${COMPONENTS_DIR}/media_manager/include/ - ${COMPONENTS_DIR}/security_manager/include/ - ${COMPONENTS_DIR}/policy/test/include/ - ${COMPONENTS_DIR}/application_manager/test/include/ - ) - - set(testSources - ${AM_TEST_DIR}/mobile_message_handler_test.cc - ${AM_TEST_DIR}/mobile_message_handler_v1_test.cc - ${AM_TEST_DIR}/request_info_test.cc - ${AM_TEST_DIR}/resumption_sql_queries_test.cc - ${AM_TEST_DIR}/event_engine_test.cc - ${AM_TEST_DIR}/policy_event_observer_test.cc - ${AM_TEST_DIR}/application_impl_test.cc - ${AM_TEST_DIR}/hmi_capabilities_test.cc - ${AM_TEST_DIR}/application_state_test.cc - ${AM_TEST_DIR}/usage_statistics_test.cc - ${AM_TEST_DIR}/policy_handler_test.cc - ${AM_TEST_DIR}/mock_message_helper.cc - ) - set (request_controller_SOURCES - ${AM_TEST_DIR}/request_controller/request_controller_test.cc - ) +include_directories( + ${GMOCK_INCLUDE_DIRECTORY} + ${CMAKE_BINARY_DIR}/src/components/ + ${COMPONENTS_DIR}/application_manager/include/ + ${COMPONENTS_DIR}/utils/include/ + ${COMPONENTS_DIR}/resumption/include/ + ${COMPONENTS_DIR}/utils/include/ + ${COMPONENTS_DIR}/policy/include/ + ${COMPONENTS_DIR}/media_manager/include/ + ${COMPONENTS_DIR}/security_manager/include/ + ${COMPONENTS_DIR}/policy/test/include/ + ${COMPONENTS_DIR}/application_manager/test/include/ +) + +set(testSources + ${AM_TEST_DIR}/mobile_message_handler_test.cc + ${AM_TEST_DIR}/mobile_message_handler_v1_test.cc + ${AM_TEST_DIR}/request_info_test.cc + ${AM_TEST_DIR}/resumption_sql_queries_test.cc + ${AM_TEST_DIR}/event_engine_test.cc + ${AM_TEST_DIR}/policy_event_observer_test.cc + ${AM_TEST_DIR}/application_impl_test.cc + ${AM_TEST_DIR}/hmi_capabilities_test.cc + ${AM_TEST_DIR}/application_state_test.cc + ${AM_TEST_DIR}/usage_statistics_test.cc + ${AM_TEST_DIR}/policy_handler_test.cc + ${AM_TEST_DIR}/mock_message_helper.cc +) + +set(request_controller_SOURCES + ${AM_TEST_DIR}/request_controller/request_controller_test.cc +) set(testLibraries ApplicationManager @@ -104,72 +106,73 @@ set(test_exec_libraries Resumption ) -IF(${CMAKE_SYSTEM_NAME} MATCHES "QNX") +if (${CMAKE_SYSTEM_NAME} MATCHES "QNX") + list(REMOVE_ITEM test_exec_libraries dl) +endif() + +set(testLibraries + Utils + ApplicationManager + jsoncpp + Policy + connectionHandler + HMI_API + MOBILE_API + v4_protocol_v1_2_no_extra + SmartObjects + formatters + gmock_main + UsageStatistics + dl + ProtocolLibrary + ConfigProfile + MediaManager + Resumption + ProtocolHandler + SecurityManager +) + +if (${CMAKE_SYSTEM_NAME} MATCHES "QNX") list(REMOVE_ITEM test_exec_libraries dl) endif() - set(testLibraries - Utils - ApplicationManager - jsoncpp - Policy - connectionHandler - HMI_API - MOBILE_API - v4_protocol_v1_2_no_extra - SmartObjects - formatters - gmock_main - UsageStatistics - dl - ProtocolLibrary - ConfigProfile - MediaManager - Resumption - ProtocolHandler - SecurityManager - ) - - if (${CMAKE_SYSTEM_NAME} MATCHES "QNX") - list(REMOVE_ITEM test_exec_libraries dl) - endif() - - if (ENABLE_LOG) - list(APPEND LIBRARIES log4cxx -L${LOG4CXX_LIBS_DIRECTORY}) - list(APPEND LIBRARIES apr-1 -L${APR_LIBS_DIRECTORY}) - list(APPEND LIBRARIES aprutil-1 -L${APR_UTIL_LIBS_DIRECTORY}) - list(APPEND LIBRARIES expat -L${EXPAT_LIBS_DIRECTORY}) - endif() - - file(COPY smartDeviceLink_test2.ini DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) - file(COPY sdl_preloaded_pt.json DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) - file(COPY sdl_pt_update.json DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) +if (ENABLE_LOG) + list(APPEND LIBRARIES log4cxx -L${LOG4CXX_LIBS_DIRECTORY}) + list(APPEND LIBRARIES apr-1 -L${APR_LIBS_DIRECTORY}) + list(APPEND LIBRARIES aprutil-1 -L${APR_UTIL_LIBS_DIRECTORY}) + list(APPEND LIBRARIES expat -L${EXPAT_LIBS_DIRECTORY}) +endif() + +file(COPY smartDeviceLink_test2.ini DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) +file(COPY sdl_preloaded_pt.json DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) +file(COPY sdl_pt_update.json DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) add_custom_command( -OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/libPolicy.so - COMMAND ${CMAKE_COMMAND} -E - copy ${COMPONENTS_DIR}/policy/libPolicy.so ${CMAKE_CURRENT_BINARY_DIR}) - set(CMAKE_EXE_LINKER_FLAGS - "${CMAKE_EXE_LINKER_FLAGS} -Wl,-rpath=${CMAKE_CURRENT_BINARY_DIR}") - create_test("application_manager_test" "${testSources}" "${testLibraries}" ) + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/libPolicy.so + COMMAND ${CMAKE_COMMAND} -E + copy ${COMPONENTS_DIR}/policy/libPolicy.so ${CMAKE_CURRENT_BINARY_DIR} +) +set(CMAKE_EXE_LINKER_FLAGS + "${CMAKE_EXE_LINKER_FLAGS} -Wl,-rpath=${CMAKE_CURRENT_BINARY_DIR}" +) +create_test("application_manager_test" "${testSources}" "${testLibraries}") + # TODO [AKozoriz] : Fix not buildable tests - set(ResumptionData_SOURCES - ${AM_TEST_DIR}/resumption/resumption_data_test.cc - ${AM_TEST_DIR}/resumption/resumption_data_db_test.cc - ${AM_TEST_DIR}/resumption/resumption_data_json_test.cc - ${AM_TEST_DIR}/resumption/resume_ctrl_test.cc - ${AM_TEST_DIR}/mock_message_helper.cc - ) - - file(COPY hmi_capabilities.json DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) - file(COPY smartDeviceLink_test.ini DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) - - file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/resumption) - file(COPY smartDeviceLink_test.ini DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/resumption) - create_test("resumption/data_resumption_test" "${ResumptionData_SOURCES}" "${testLibraries}") - - add_subdirectory(state_controller) -endif() +set(ResumptionData_SOURCES + ${AM_TEST_DIR}/resumption/resumption_data_test.cc + ${AM_TEST_DIR}/resumption/resumption_data_db_test.cc + ${AM_TEST_DIR}/resumption/resumption_data_json_test.cc + ${AM_TEST_DIR}/resumption/resume_ctrl_test.cc + ${AM_TEST_DIR}/mock_message_helper.cc +) + +file(COPY hmi_capabilities.json DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) +file(COPY smartDeviceLink_test.ini DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) + +file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/resumption) +file(COPY smartDeviceLink_test.ini DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/resumption) +create_test("resumption/data_resumption_test" "${ResumptionData_SOURCES}" "${testLibraries}") +add_subdirectory(state_controller) add_subdirectory(app_launch) add_subdirectory(commands) diff --git a/src/components/application_manager/test/commands/CMakeLists.txt b/src/components/application_manager/test/commands/CMakeLists.txt index 068823fcfa..e5a083b5b2 100644 --- a/src/components/application_manager/test/commands/CMakeLists.txt +++ b/src/components/application_manager/test/commands/CMakeLists.txt @@ -28,7 +28,7 @@ # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. -include(sources) +include(${CMAKE_SOURCE_DIR}/tools/cmake/helpers/sources.cmake) include_directories( ${GMOCK_INCLUDE_DIRECTORY} diff --git a/src/components/application_manager/test/commands/mobile/alert_request_test.cc b/src/components/application_manager/test/commands/mobile/alert_request_test.cc index e8ebcd0f60..b384cd9f11 100644 --- a/src/components/application_manager/test/commands/mobile/alert_request_test.cc +++ b/src/components/application_manager/test/commands/mobile/alert_request_test.cc @@ -210,4 +210,4 @@ TEST_F(AlertRequestTest, OnEvent_UI_HmiSendSuccess_UNSUPPORTED_RESOURCE) { } // namespace mobile_commands_test } // namespace commands_test } // namespace components -} // namespace tests +} // namespace test diff --git a/src/components/application_manager/test/commands/mobile/read_did_request_test.cc b/src/components/application_manager/test/commands/mobile/read_did_request_test.cc index 111dbf4e27..334f559ae6 100644 --- a/src/components/application_manager/test/commands/mobile/read_did_request_test.cc +++ b/src/components/application_manager/test/commands/mobile/read_did_request_test.cc @@ -46,7 +46,7 @@ #include "interfaces/MOBILE_API.h" #include "interfaces/HMI_API.h" #include "application_manager/smart_object_keys.h" -#include "event_engine/event.h" +#include "application_manager/event_engine/event.h" namespace test { namespace components { diff --git a/src/components/application_manager/test/message_helper/CMakeLists.txt.user b/src/components/application_manager/test/message_helper/CMakeLists.txt.user deleted file mode 100755 index e7522c1793..0000000000 --- a/src/components/application_manager/test/message_helper/CMakeLists.txt.user +++ /dev/null @@ -1,189 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE QtCreatorProject> -<!-- Written by QtCreator 3.5.1, 2015-11-19T12:59:06. --> -<qtcreator> - <data> - <variable>EnvironmentId</variable> - <value type="QByteArray">{6965f0e8-9b58-4b26-8426-81354d6c3400}</value> - </data> - <data> - <variable>ProjectExplorer.Project.ActiveTarget</variable> - <value type="int">0</value> - </data> - <data> - <variable>ProjectExplorer.Project.EditorSettings</variable> - <valuemap type="QVariantMap"> - <value type="bool" key="EditorConfiguration.AutoIndent">true</value> - <value type="bool" key="EditorConfiguration.AutoSpacesForTabs">false</value> - <value type="bool" key="EditorConfiguration.CamelCaseNavigation">true</value> - <valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.0"> - <value type="QString" key="language">Cpp</value> - <valuemap type="QVariantMap" key="value"> - <value type="QByteArray" key="CurrentPreferences">CppGlobal</value> - </valuemap> - </valuemap> - <valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.1"> - <value type="QString" key="language">QmlJS</value> - <valuemap type="QVariantMap" key="value"> - <value type="QByteArray" key="CurrentPreferences">QmlJSGlobal</value> - </valuemap> - </valuemap> - <value type="int" key="EditorConfiguration.CodeStyle.Count">2</value> - <value type="QByteArray" key="EditorConfiguration.Codec">UTF-8</value> - <value type="bool" key="EditorConfiguration.ConstrainTooltips">false</value> - <value type="int" key="EditorConfiguration.IndentSize">4</value> - <value type="bool" key="EditorConfiguration.KeyboardTooltips">false</value> - <value type="int" key="EditorConfiguration.MarginColumn">80</value> - <value type="bool" key="EditorConfiguration.MouseHiding">true</value> - <value type="bool" key="EditorConfiguration.MouseNavigation">true</value> - <value type="int" key="EditorConfiguration.PaddingMode">1</value> - <value type="bool" key="EditorConfiguration.ScrollWheelZooming">true</value> - <value type="bool" key="EditorConfiguration.ShowMargin">false</value> - <value type="int" key="EditorConfiguration.SmartBackspaceBehavior">0</value> - <value type="bool" key="EditorConfiguration.SpacesForTabs">true</value> - <value type="int" key="EditorConfiguration.TabKeyBehavior">0</value> - <value type="int" key="EditorConfiguration.TabSize">8</value> - <value type="bool" key="EditorConfiguration.UseGlobal">true</value> - <value type="int" key="EditorConfiguration.Utf8BomBehavior">1</value> - <value type="bool" key="EditorConfiguration.addFinalNewLine">true</value> - <value type="bool" key="EditorConfiguration.cleanIndentation">true</value> - <value type="bool" key="EditorConfiguration.cleanWhitespace">true</value> - <value type="bool" key="EditorConfiguration.inEntireDocument">false</value> - </valuemap> - </data> - <data> - <variable>ProjectExplorer.Project.PluginSettings</variable> - <valuemap type="QVariantMap"/> - </data> - <data> - <variable>ProjectExplorer.Project.Target.0</variable> - <valuemap type="QVariantMap"> - <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop Qt 5.5.1 GCC 64bit</value> - <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop Qt 5.5.1 GCC 64bit</value> - <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">qt.55.gcc_64_kit</value> - <value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value> - <value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value> - <value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value> - <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0"> - <value type="bool" key="CMakeProjectManager.CMakeBuildConfiguration.UseNinja">false</value> - <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/oherasym/sdl_panasonic/src/components/application_manager/test/message_helper-build</value> - <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0"> - <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0"> - <value type="QString" key="CMakeProjectManager.MakeStep.AdditionalArguments"></value> - <valuelist type="QVariantList" key="CMakeProjectManager.MakeStep.BuildTargets"/> - <value type="bool" key="CMakeProjectManager.MakeStep.Clean">false</value> - <value type="QString" key="CMakeProjectManager.MakeStep.MakeCommand"></value> - <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value> - <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value> - <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> - <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">CMakeProjectManager.MakeStep</value> - </valuemap> - <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value> - <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value> - <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> - <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value> - </valuemap> - <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1"> - <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0"> - <value type="QString" key="CMakeProjectManager.MakeStep.AdditionalArguments">clean</value> - <valuelist type="QVariantList" key="CMakeProjectManager.MakeStep.BuildTargets"/> - <value type="bool" key="CMakeProjectManager.MakeStep.Clean">true</value> - <value type="QString" key="CMakeProjectManager.MakeStep.MakeCommand"></value> - <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value> - <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value> - <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> - <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">CMakeProjectManager.MakeStep</value> - </valuemap> - <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value> - <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value> - <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> - <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value> - </valuemap> - <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value> - <value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value> - <valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/> - <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">all</value> - <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> - <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">CMakeProjectManager.CMakeBuildConfiguration</value> - </valuemap> - <value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">1</value> - <valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0"> - <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0"> - <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">0</value> - <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy</value> - <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> - <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value> - </valuemap> - <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value> - <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy locally</value> - <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> - <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value> - </valuemap> - <value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value> - <valuemap type="QVariantMap" key="ProjectExplorer.Target.PluginSettings"/> - <valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0"> - <valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/> - <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value> - <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value> - <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value> - <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value> - <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value> - <value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value> - <value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value> - <value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value> - <value type="int" key="Analyzer.Valgrind.LeakCheckOnFinish">1</value> - <value type="int" key="Analyzer.Valgrind.NumCallers">25</value> - <valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/> - <value type="int" key="Analyzer.Valgrind.SelfModifyingCodeDetection">1</value> - <value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value> - <value type="bool" key="Analyzer.Valgrind.ShowReachable">false</value> - <value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value> - <value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value> - <valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds"> - <value type="int">0</value> - <value type="int">1</value> - <value type="int">2</value> - <value type="int">3</value> - <value type="int">4</value> - <value type="int">5</value> - <value type="int">6</value> - <value type="int">7</value> - <value type="int">8</value> - <value type="int">9</value> - <value type="int">10</value> - <value type="int">11</value> - <value type="int">12</value> - <value type="int">13</value> - <value type="int">14</value> - </valuelist> - <value type="int" key="PE.EnvironmentAspect.Base">2</value> - <valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/> - <value type="QString" key="ProjectExplorer.CustomExecutableRunConfiguration.Arguments"></value> - <value type="QString" key="ProjectExplorer.CustomExecutableRunConfiguration.Executable"></value> - <value type="QString" key="ProjectExplorer.CustomExecutableRunConfiguration.WorkingDirectory">%{buildDir}</value> - <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Custom Executable</value> - <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> - <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.CustomExecutableRunConfiguration</value> - <value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value> - <value type="bool" key="RunConfiguration.UseCppDebugger">false</value> - <value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value> - <value type="bool" key="RunConfiguration.UseMultiProcess">false</value> - <value type="bool" key="RunConfiguration.UseQmlDebugger">false</value> - <value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value> - </valuemap> - <value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value> - </valuemap> - </data> - <data> - <variable>ProjectExplorer.Project.TargetCount</variable> - <value type="int">1</value> - </data> - <data> - <variable>ProjectExplorer.Project.Updater.FileVersion</variable> - <value type="int">18</value> - </data> - <data> - <variable>Version</variable> - <value type="int">18</value> - </data> -</qtcreator> diff --git a/src/components/config_profile/CMakeLists.txt b/src/components/config_profile/CMakeLists.txt index 107fd58127..2f8561fc2d 100644 --- a/src/components/config_profile/CMakeLists.txt +++ b/src/components/config_profile/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (c) 2014, Ford Motor Company +# Copyright (c) 2016, Ford Motor Company # All rights reserved. # # Redistribution and use in source and binary forms, with or without @@ -28,6 +28,7 @@ # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. +include(${CMAKE_SOURCE_DIR}/tools/cmake/helpers/sources.cmake) include_directories ( include @@ -35,13 +36,18 @@ include_directories ( ${LOG4CXX_INCLUDE_DIRECTORY} ) -set (SOURCES - ${COMPONENTS_DIR}/config_profile/src/profile.cc - ${COMPONENTS_DIR}/config_profile/src/ini_file.cc +set(PATHS + ${CMAKE_CURRENT_SOURCE_DIR}/include + ${CMAKE_CURRENT_SOURCE_DIR}/src ) +set(LIBRARIES + Utils +) + +collect_sources(SOURCES "${PATHS}") add_library("ConfigProfile" ${SOURCES}) -target_link_libraries("ConfigProfile" Utils) +target_link_libraries("ConfigProfile" ${LIBRARIES}) if(BUILD_TESTS) add_subdirectory(test) diff --git a/src/components/config_profile/test/CMakeLists.txt b/src/components/config_profile/test/CMakeLists.txt index 1246bff066..597be8fe00 100644 --- a/src/components/config_profile/test/CMakeLists.txt +++ b/src/components/config_profile/test/CMakeLists.txt @@ -28,23 +28,20 @@ # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. -if(BUILD_TESTS) +include(${CMAKE_SOURCE_DIR}/tools/cmake/helpers/sources.cmake) include_directories ( ${GMOCK_INCLUDE_DIRECTORY} ${COMPONENTS_DIR}/config_profile/include ) - -set(testSources - profile_test.cc - ini_file_test.cc -) - -set(testLibraries +set(LIBRARIES gmock ConfigProfile ) + +collect_sources(SOURCES "${CMAKE_CURRENT_SOURCE_DIR}") +create_test(config_profile_test "${SOURCES}" "${LIBRARIES}") file(COPY smartDeviceLink.ini DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) file(COPY smartDeviceLink_test.ini DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) @@ -52,6 +49,3 @@ file(COPY smartDeviceLink_invalid_pairs.ini DESTINATION ${CMAKE_CURRENT_BINARY_D file(COPY smartDeviceLink_invalid_string.ini DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) file(COPY smartDeviceLink_invalid_int.ini DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) file(COPY smartDeviceLink_invalid_boolean.ini DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) -create_test("config_profile_test" "${testSources}" "${testLibraries}") - -endif() diff --git a/src/components/connection_handler/CMakeLists.txt b/src/components/connection_handler/CMakeLists.txt index dc1b2d24d6..2cdfec91f2 100644 --- a/src/components/connection_handler/CMakeLists.txt +++ b/src/components/connection_handler/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (c) 2014, Ford Motor Company +# Copyright (c) 2016, Ford Motor Company # All rights reserved. # # Redistribution and use in source and binary forms, with or without @@ -28,8 +28,7 @@ # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. - -set(CH_SRC_DIR ${COMPONENTS_DIR}/connection_handler/src) +include(${CMAKE_SOURCE_DIR}/tools/cmake/helpers/sources.cmake) include_directories ( include @@ -39,20 +38,20 @@ include_directories ( ${LOG4CXX_INCLUDE_DIRECTORY} ) -set (SOURCES - ${CH_SRC_DIR}/connection_handler_impl.cc - ${CH_SRC_DIR}/connection.cc - ${CH_SRC_DIR}/device.cc - ${CH_SRC_DIR}/heartbeat_monitor.cc +set(PATHS + ${CMAKE_CURRENT_SOURCE_DIR}/include + ${CMAKE_CURRENT_SOURCE_DIR}/src ) set(LIBRARIES ProtocolLibrary + encryption ) +collect_sources(SOURCES "${PATHS}") add_library(connectionHandler ${SOURCES}) -target_link_libraries(connectionHandler encryption) +target_link_libraries(connectionHandler ${LIBRARIES}) if(BUILD_TESTS) - add_subdirectory(test) + add_subdirectory(test) endif() diff --git a/src/components/connection_handler/test/CMakeLists.txt b/src/components/connection_handler/test/CMakeLists.txt index 32da4bdcd8..033a45e97d 100644 --- a/src/components/connection_handler/test/CMakeLists.txt +++ b/src/components/connection_handler/test/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (c) 2015, Ford Motor Company +# Copyright (c) 2016, Ford Motor Company # All rights reserved. # # Redistribution and use in source and binary forms, with or without @@ -28,9 +28,7 @@ # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. -if(BUILD_TESTS) - -set(appMain_DIR ${CMAKE_SOURCE_DIR}/src/appMain) +include(${CMAKE_SOURCE_DIR}/tools/cmake/helpers/sources.cmake) include_directories( ${GMOCK_INCLUDE_DIRECTORY} @@ -46,15 +44,7 @@ set(LIBRARIES ProtocolHandler ) -set(SOURCES - connection_handler_impl_test.cc - connection_test.cc - device_test.cc - heart_beat_monitor_test.cc -) - -file(COPY ${appMain_DIR}/smartDeviceLink.ini DESTINATION "./") - -create_test("connection_handler_test" "${SOURCES}" "${LIBRARIES}") +collect_sources(SOURCES "${CMAKE_CURRENT_SOURCE_DIR}") +create_test(connection_handler_test "${SOURCES}" "${LIBRARIES}") -endif() +file(COPY ${CMAKE_SOURCE_DIR}/src/appMain/smartDeviceLink.ini DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) diff --git a/src/components/dbus/CMakeLists.txt b/src/components/dbus/CMakeLists.txt index 7e7f2af787..cb1ce30a6d 100644 --- a/src/components/dbus/CMakeLists.txt +++ b/src/components/dbus/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (c) 2014, Ford Motor Company +# Copyright (c) 2016, Ford Motor Company # All rights reserved. # # Redistribution and use in source and binary forms, with or without @@ -28,6 +28,7 @@ # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. +include(${CMAKE_SOURCE_DIR}/tools/cmake/helpers/sources.cmake) include_directories ( ${DBUS_INCLUDE_DIRS} @@ -40,17 +41,17 @@ include_directories ( ${CMAKE_BINARY_DIR}/src/components/ ) -set (SOURCES +set(PATHS + ${CMAKE_CURRENT_SOURCE_DIR}/include + ${CMAKE_CURRENT_SOURCE_DIR}/src ${CMAKE_CURRENT_BINARY_DIR}/introspection_xml.cc ${CMAKE_CURRENT_BINARY_DIR}/message_descriptions.cc - ${CMAKE_CURRENT_SOURCE_DIR}/src/dbus_adapter.cc - ${CMAKE_CURRENT_SOURCE_DIR}/src/dbus_message.cc - ${CMAKE_CURRENT_SOURCE_DIR}/src/dbus_message_controller.cc - ${CMAKE_CURRENT_SOURCE_DIR}/src/schema.cc ) +collect_sources(SOURCES "${PATHS}") -set (LIBRARIES dbus-1 -L${DBUS_LIBS_DIRECTORY}) - +set(LIBRARIES + dbus-1 -L${DBUS_LIBS_DIRECTORY} +) add_custom_command( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/message_descriptions.cc @@ -71,7 +72,7 @@ add_custom_command( ) add_library("DBus" ${SOURCES}) -ADD_DEPENDENCIES("DBus" Utils install-3rd_party_dbus) +add_dependecnies("DBus" Utils install-3rd_party_dbus) target_link_libraries("DBus" "${LIBRARIES}") diff --git a/src/components/dbus/test/CMakeLists.txt b/src/components/dbus/test/CMakeLists.txt index d96f2388fb..1b3df2c0e7 100644 --- a/src/components/dbus/test/CMakeLists.txt +++ b/src/components/dbus/test/CMakeLists.txt @@ -28,13 +28,20 @@ # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. -if(BUILD_TESTS) +include(${CMAKE_SOURCE_DIR}/tools/cmake/helpers/sources.cmake) include_directories ( ${GMOCK_INCLUDE_DIRECTORY} ${COMPONENTS_DIR}/dbus/include/ ) +#FIXME: exclude some tests +set (EXCLUDE_PATHS + test_dbus_message_controller.cc +) + +collect_sources(SOURCES "${CMAKE_CURRENT_SOURCE_DIR}" ${EXCLUDE_PATHS}) + set (LIBRARIES gmock DBus @@ -42,12 +49,4 @@ set (LIBRARIES SmartObjects ) -set(testSources - ${COMPONENTS_DIR}/dbus/test/test_schema.cc - ${COMPONENTS_DIR}/dbus/test/test_dbus_adapter.cc -) - -create_test("test_DBus_test" "${testSources}" "${LIBRARIES}") - -endif() - +create_test(test_DBus_test "${SOURCES}" "${LIBRARIES}") diff --git a/src/components/formatters/CMakeLists.txt b/src/components/formatters/CMakeLists.txt index 1858342ff3..02a337e278 100644 --- a/src/components/formatters/CMakeLists.txt +++ b/src/components/formatters/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (c) 2014, Ford Motor Company +# Copyright (c) 2016, Ford Motor Company # All rights reserved. # # Redistribution and use in source and binary forms, with or without @@ -28,8 +28,7 @@ # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. - -set(FORMATTERS_SRC_DIR ${COMPONENTS_DIR}/formatters/src) +include(${CMAKE_SOURCE_DIR}/tools/cmake/helpers/sources.cmake) include_directories ( include/ @@ -41,22 +40,13 @@ include_directories ( ${COMPONENTS_DIR}/utils/include ) -set (SOURCES - ${FORMATTERS_SRC_DIR}/CSmartFactory.cc -) - -set (FORMATTER_SOURCES - ${FORMATTERS_SRC_DIR}/CFormatterJsonBase.cc - ${FORMATTERS_SRC_DIR}/CFormatterJsonSDLRPCv1.cc - ${FORMATTERS_SRC_DIR}/CFormatterJsonSDLRPCv2.cc - ${FORMATTERS_SRC_DIR}/formatter_json_rpc.cc - ${FORMATTERS_SRC_DIR}/meta_formatter.cc - ${FORMATTERS_SRC_DIR}/generic_json_formatter.cc +set(PATHS + ${CMAKE_CURRENT_SOURCE_DIR}/include + ${CMAKE_CURRENT_SOURCE_DIR}/src ) -add_library("formatters" ${SOURCES} - ${FORMATTER_SOURCES} -) +collect_sources(SOURCES "${PATHS}") +add_library(formatters ${SOURCES}) if(BUILD_TESTS) add_subdirectory(test) diff --git a/src/components/formatters/test/CMakeLists.txt b/src/components/formatters/test/CMakeLists.txt index d245626dae..c80c3d0e40 100644 --- a/src/components/formatters/test/CMakeLists.txt +++ b/src/components/formatters/test/CMakeLists.txt @@ -29,7 +29,7 @@ # POSSIBILITY OF SUCH DAMAGE. -if(BUILD_TESTS) +include(${CMAKE_SOURCE_DIR}/tools/cmake/helpers/sources.cmake) include_directories( ${GMOCK_INCLUDE_DIRECTORY} @@ -49,19 +49,15 @@ set(LIBRARIES jsoncpp ) -set(SOURCES - ${COMPONENTS_DIR}/formatters/test/src/SmartFactoryTestHelper.cc - ${COMPONENTS_DIR}/formatters/test/CSmartFactory_test.cc - ${COMPONENTS_DIR}/formatters/test/CFormatterJsonBase_test.cc - ${COMPONENTS_DIR}/formatters/test/generic_json_formatter_test.cc - ${COMPONENTS_DIR}/formatters/test/formatter_json_rpc_test.cc - ${COMPONENTS_DIR}/formatters/test/src/create_smartSchema.cc - ${COMPONENTS_DIR}/formatters/test/cFormatterJsonSDLRPCv1_test.cc - ${COMPONENTS_DIR}/formatters/test/cFormatterJsonSDLRPCv2_test.cc - ${COMPONENTS_DIR}/formatters/test/src/meta_formatter_test_helper.cc - ${COMPONENTS_DIR}/formatters/test/meta_formatter_test.cc +set (SOURCES + ${CMAKE_CURRENT_SOURCE_DIR}/include + ${CMAKE_CURRENT_SOURCE_DIR}/src + ${CMAKE_CURRENT_SOURCE_DIR} ) -create_test("formatters_test" "${SOURCES}" "${LIBRARIES}") +set (EXCLUDE_PATHS +) + +collect_sources(SOURCES "") +create_test(formatters_test "${SOURCES}" "${LIBRARIES}") -endif() diff --git a/src/components/hmi_message_handler/CMakeLists.txt b/src/components/hmi_message_handler/CMakeLists.txt index 49aea93bda..c1dfca5e67 100644 --- a/src/components/hmi_message_handler/CMakeLists.txt +++ b/src/components/hmi_message_handler/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (c) 2014, Ford Motor Company +# Copyright (c) 2016, Ford Motor Company # All rights reserved. # # Redistribution and use in source and binary forms, with or without @@ -28,6 +28,8 @@ # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. +include(${CMAKE_SOURCE_DIR}/tools/cmake/helpers/platform.cmake) +include(${CMAKE_SOURCE_DIR}/tools/cmake/helpers/sources.cmake) include_directories ( include/ @@ -46,29 +48,36 @@ include_directories ( ${LOG4CXX_INCLUDE_DIRECTORY} ) -IF (HMIADAPTER STREQUAL "dbus") - set (DBUS_SOURCE ./src/dbus_message_adapter.cc) - set (DBUS_ADAPTER DBus) -ENDIF () +set(PATHS + ${CMAKE_CURRENT_SOURCE_DIR}/include + ${CMAKE_CURRENT_SOURCE_DIR}/src +) + +if (HMIADAPTER STREQUAL "dbus") + set(EXCLUDE_PATHS) + set(DBUS_ADAPTER DBus) +else() + set(EXCLUDE_PATHS dbus_message_adapter.cc) + set(DBUS_ADAPTER) +endif () -set (SOURCES - ${COMPONENTS_DIR}/hmi_message_handler/src/hmi_message_handler_impl.cc - ${COMPONENTS_DIR}/hmi_message_handler/src/messagebroker_adapter.cc - ${COMPONENTS_DIR}/hmi_message_handler/src/hmi_message_adapter_impl.cc - ${DBUS_SOURCE} +list(APPEND EXCLUDE_PATHS + mqueue_adapter.cc ) +collect_sources(SOURCES "${PATHS}" "${EXCLUDE_PATHS}") + set(LIBRARIES - Utils - ${DBUS_ADAPTER} - ${RTLIB} + Utils + ${DBUS_ADAPTER} + ${RTLIB} ) add_library("HMIMessageHandler" ${SOURCES}) target_link_libraries("HMIMessageHandler" ${LIBRARIES}) if(ENABLE_LOG) - target_link_libraries("HMIMessageHandler" log4cxx -L${LOG4CXX_LIBS_DIRECTORY}) + target_link_libraries("HMIMessageHandler" log4cxx -L${LOG4CXX_LIBS_DIRECTORY}) endif() # Tests temporary are inactivated. For details please check diff --git a/src/components/hmi_message_handler/test/CMakeLists.txt b/src/components/hmi_message_handler/test/CMakeLists.txt index 98e9fd5653..0d7ccd9ee1 100644 --- a/src/components/hmi_message_handler/test/CMakeLists.txt +++ b/src/components/hmi_message_handler/test/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (c) 2014, Ford Motor Company +# Copyright (c) 2016, Ford Motor Company # All rights reserved. # # Redistribution and use in source and binary forms, with or without @@ -28,7 +28,8 @@ # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. -if(BUILD_TESTS) +include(${CMAKE_SOURCE_DIR}/tools/cmake/helpers/platform.cmake) +include(${CMAKE_SOURCE_DIR}/tools/cmake/helpers/sources.cmake) include_directories ( ${GMOCK_INCLUDE_DIRECTORY} @@ -36,27 +37,31 @@ include_directories ( ${COMPONENTS_DIR}/hmi_message_handler/test/include ) +if (HMIADAPTER STREQUAL "messagebroker") + set (BROKER_LIBRARIES + message_broker_client + message_broker_server + ) +endif() + +set(EXCLUDE_PATHS) + set(LIBRARIES gmock ApplicationManager HMIMessageHandler jsoncpp - MessageBrokerClient - MessageBrokerServer + ${BROKER_LIBRARIES} ConfigProfile ) -set(SOURCES -${COMPONENTS_DIR}/hmi_message_handler/test/hmi_message_handler_impl_test.cc -${COMPONENTS_DIR}/hmi_message_handler/test/hmi_message_adapter_test.cc -) - -if(${QT_HMI}) - list (APPEND SOURCES - ${COMPONENTS_DIR}/hmi_message_handler/test/mock_subscriber.cc - ${COMPONENTS_DIR}/hmi_message_handler/test/dbus_message_adapter_test.cc +if(NOT HMI_DBUS_API}) + list (APPEND EXCLUDE_PATHS + mock_subscriber.cc + dbus_message_adapter_test.cc ) endif() -create_test("hmi_message_handler_test" "${SOURCES}" "${LIBRARIES}") -endif() +collect_sources(SOURCES "${CMAKE_CURRENT_SOURCE_DIR}" "${EXCLUDE_PATHS}") + +create_test(hmi_message_handler_test "${SOURCES}" "${LIBRARIES}") diff --git a/src/components/include/utils/threads/CMakeLists.txt b/src/components/include/utils/threads/CMakeLists.txt deleted file mode 100644 index f97039c21b..0000000000 --- a/src/components/include/utils/threads/CMakeLists.txt +++ /dev/null @@ -1,5 +0,0 @@ -set(UtilsIncludeDir ${COMPONENTS_DIR/utils/include) - -include_directories ( - ${UtilsIncludeDir} -)
\ No newline at end of file diff --git a/src/components/interfaces/CMakeLists.txt b/src/components/interfaces/CMakeLists.txt index bcb47976ea..2c84e48235 100644 --- a/src/components/interfaces/CMakeLists.txt +++ b/src/components/interfaces/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (c) 2014, Ford Motor Company +# Copyright (c) 2016, Ford Motor Company # All rights reserved. # # Redistribution and use in source and binary forms, with or without @@ -28,54 +28,46 @@ # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. +include(${CMAKE_SOURCE_DIR}/tools/cmake/helpers/generators.cmake) include_directories ( - ${COMPONENTS_DIR}/utils/include/ + ${COMPONENTS_DIR}/include + ${COMPONENTS_DIR}/utils/include ${COMPONENTS_DIR}/formatters/include + ${COMPONENTS_DIR}/smart_objects/include + ${CMAKE_BINARY_DIR} ) - -GenerateInterface("v4_protocol_v1_2_no_extra.xml" "NsSmartDeviceLinkRPC::V1" "sdlrpcv1") -GenerateInterface("MOBILE_API.xml" "mobile_apis" "sdlrpcv2") - -IF (${HMI_JSON_API}) - GenerateInterface("HMI_API.xml" "hmi_apis" "jsonrpc") -ENDIF (${HMI_JSON_API}) -IF (${HMI_DBUS_API}) - set(hpp_file - "${CMAKE_CURRENT_BINARY_DIR}/QT_HMI_API.h" - "${CMAKE_CURRENT_BINARY_DIR}/QT_HMI_API_schema.h" - ) +generate_interface("v4_protocol_v1_2_no_extra.xml" "NsSmartDeviceLinkRPC::V1" "sdlrpcv1") +add_library(v4_protocol_v1_2_no_extra ${CMAKE_CURRENT_BINARY_DIR}/v4_protocol_v1_2_no_extra_schema.cc) - set(cpp_file "${CMAKE_CURRENT_BINARY_DIR}/QT_HMI_API_schema.cc") - set(full_xml_name "${CMAKE_CURRENT_SOURCE_DIR}/QT_HMI_API.xml") +generate_interface("MOBILE_API.xml" "mobile_apis" "sdlrpcv2") +add_library(MOBILE_API ${CMAKE_CURRENT_BINARY_DIR}/MOBILE_API_schema.cc) - add_custom_command( OUTPUT ${hpp_file} ${cpp_file} - COMMAND ${INTEFRACE_GENERATOR_CMD} ${full_xml_name} hmi_apis ${CMAKE_CURRENT_BINARY_DIR} "--parser-type" "jsonrpc" - DEPENDS ${INTERFACE_GENERATOR_DEPENDENCIES} ${full_xml_name} - COMMENT "Generating files:\n ${hpp_file}\n ${cpp_file}\nfrom:\n QT_HMI_API.xml ..." - VERBATIM - ) +if(HMI_JSON_API) + generate_interface("HMI_API.xml" "hmi_apis" "jsonrpc") + add_library(HMI_API ${CMAKE_CURRENT_BINARY_DIR}/HMI_API_schema.cc) +endif() - include_directories ( - ${COMPONENTS_DIR}/smart_objects/include - ${COMPONENTS_DIR}/formatters/include/ - ${CMAKE_BINARY_DIR} - ) +if(HMI_DBUS_API) + generate_interface("QT_HMI_API.xml" "hmi_apis" "jsonrpc") - add_custom_command( - OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/HMI_API.h" + add_custom_command( + OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/HMI_API.h" COMMAND sed "-e" "s/QT_HMI_API/HMI_API/g" "${CMAKE_CURRENT_BINARY_DIR}/QT_HMI_API.h" > "${CMAKE_CURRENT_BINARY_DIR}/HMI_API.h" - DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/QT_HMI_API.h") - add_custom_command( - OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/HMI_API_schema.h" + DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/QT_HMI_API.h" + ) + add_custom_command( + OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/HMI_API_schema.h" COMMAND sed "-e" "s/QT_HMI_API/HMI_API/g" "${CMAKE_CURRENT_BINARY_DIR}/QT_HMI_API_schema.h" > "${CMAKE_CURRENT_BINARY_DIR}/HMI_API_schema.h" - DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/QT_HMI_API_schema.h") - add_custom_command( - OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/HMI_API_schema.cc" + DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/QT_HMI_API_schema.h" + ) + add_custom_command( + OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/HMI_API_schema.cc" COMMAND sed "-e" "s/QT_HMI_API/HMI_API/g" "${CMAKE_CURRENT_BINARY_DIR}/QT_HMI_API_schema.cc" > "${CMAKE_CURRENT_BINARY_DIR}/HMI_API_schema.cc" DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/QT_HMI_API_schema.cc" "${CMAKE_CURRENT_BINARY_DIR}/HMI_API_schema.h" "${CMAKE_CURRENT_BINARY_DIR}/HMI_API.h") - add_library(HMI_API "${CMAKE_CURRENT_BINARY_DIR}/HMI_API_schema.cc") -ENDIF (${HMI_DBUS_API}) + + add_library(HMI_API ${CMAKE_CURRENT_BINARY_DIR}/HMI_API_schema.cc) +endif() add_dependencies(HMI_API Utils) diff --git a/src/components/media_manager/CMakeLists.txt b/src/components/media_manager/CMakeLists.txt index 3ca02357ab..c143a7979e 100644 --- a/src/components/media_manager/CMakeLists.txt +++ b/src/components/media_manager/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (c) 2014, Ford Motor Company +# Copyright (c) 2014-2015, Ford Motor Company # All rights reserved. # # Redistribution and use in source and binary forms, with or without @@ -28,63 +28,10 @@ # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. +include(${CMAKE_SOURCE_DIR}/tools/cmake/helpers/platform.cmake) +include(${CMAKE_SOURCE_DIR}/tools/cmake/helpers/sources.cmake) -if (EXTENDED_MEDIA_MODE) -find_package(Gstreamer-1.0 REQUIRED) -find_package(Glib-2.0 REQUIRED) -find_package(PkgConfig) -pkg_check_modules(GLIB2 REQUIRED glib-2.0) -add_definitions(${GLIB2_CFLAGS}) -set(default_includes - ${GSTREAMER_gst_INCLUDE_DIR} - ${GSTREAMER_gstconfig_INCLUDE_DIR} - ${GLIB_glib_2_INCLUDE_DIR} -) -set(default_sources - ${COMPONENTS_DIR}/media_manager/src/audio/a2dp_source_player_adapter.cc - ${COMPONENTS_DIR}/media_manager/src/audio/from_mic_recorder_adapter.cc - ${COMPONENTS_DIR}/media_manager/src/audio/from_mic_to_file_recorder_thread.cc - ${COMPONENTS_DIR}/media_manager/src/audio/socket_audio_streamer_adapter.cc - ${COMPONENTS_DIR}/media_manager/src/audio/pipe_audio_streamer_adapter.cc - ${COMPONENTS_DIR}/media_manager/src/audio/file_audio_streamer_adapter.cc - ${COMPONENTS_DIR}/media_manager/src/video/socket_video_streamer_adapter.cc - ${COMPONENTS_DIR}/media_manager/src/video/pipe_video_streamer_adapter.cc - ${COMPONENTS_DIR}/media_manager/src/video/file_video_streamer_adapter.cc - ${COMPONENTS_DIR}/media_manager/src/streamer_adapter.cc - ${COMPONENTS_DIR}/media_manager/src/pipe_streamer_adapter.cc - ${COMPONENTS_DIR}/media_manager/src/socket_streamer_adapter.cc - ${COMPONENTS_DIR}/media_manager/src/file_streamer_adapter.cc -) -set(LIBRARIES - ${GSTREAMER_gstreamer_LIBRARY} - ApplicationManager - pulse-simple - pulse - gobject-2.0 - glib-2.0 -) -else(EXTENDED_MEDIA_MODE) -set(default_includes -) - -set(default_sources - ${COMPONENTS_DIR}/media_manager/src/audio/socket_audio_streamer_adapter.cc - ${COMPONENTS_DIR}/media_manager/src/audio/pipe_audio_streamer_adapter.cc - ${COMPONENTS_DIR}/media_manager/src/audio/file_audio_streamer_adapter.cc - ${COMPONENTS_DIR}/media_manager/src/video/socket_video_streamer_adapter.cc - ${COMPONENTS_DIR}/media_manager/src/video/pipe_video_streamer_adapter.cc - ${COMPONENTS_DIR}/media_manager/src/video/file_video_streamer_adapter.cc - ${COMPONENTS_DIR}/media_manager/src/streamer_adapter.cc - ${COMPONENTS_DIR}/media_manager/src/pipe_streamer_adapter.cc - ${COMPONENTS_DIR}/media_manager/src/socket_streamer_adapter.cc - ${COMPONENTS_DIR}/media_manager/src/file_streamer_adapter.cc -) -set(LIBRARIES - ProtocolLibrary -) -endif() - -include_directories ( +include_directories( include ${COMPONENTS_DIR}/media_manager/include/audio/ ${COMPONENTS_DIR}/media_manager/include/video/ @@ -99,22 +46,60 @@ include_directories ( ${JSONCPP_INCLUDE_DIRECTORY} ${CMAKE_BINARY_DIR}/src/components/ ${COMPONENTS_DIR}/policy/include/ - ${default_includes} ${LOG4CXX_INCLUDE_DIRECTORY} ) -set (SOURCES - ${COMPONENTS_DIR}/media_manager/src/media_adapter_impl.cc - ${COMPONENTS_DIR}/media_manager/src/audio/from_mic_recorder_listener.cc - ${COMPONENTS_DIR}/media_manager/src/audio/audio_stream_sender_thread.cc - ${COMPONENTS_DIR}/media_manager/src/streamer_listener.cc - ${COMPONENTS_DIR}/media_manager/src/media_manager_impl.cc +set(PATHS + ${CMAKE_CURRENT_SOURCE_DIR}/include + ${CMAKE_CURRENT_SOURCE_DIR}/src ) -add_library("MediaManager" ${SOURCES} ${default_sources}) +set(EXCLUDE_PATHS + video_stream_to_file_adapter.cc +) + +set(LIBRARIES + ProtocolLibrary +) + +if(EXTENDED_MEDIA_MODE) + find_package(Gstreamer-1.0 REQUIRED) + find_package(Glib-2.0 REQUIRED) + find_package(PkgConfig) + pkg_check_modules(GLIB2 REQUIRED glib-2.0) + add_definitions(${GLIB2_CFLAGS}) + + include_directories( + ${GSTREAMER_gst_INCLUDE_DIR} + ${GSTREAMER_gstconfig_INCLUDE_DIR} + ${GLIB_glib_2_INCLUDE_DIR} + ) + list(APPEND EXCLUDE_PATHS + + ) + list(APPEND LIBRARIES + ${GSTREAMER_gstreamer_LIBRARY} + pulse-simple + pulse + gobject-2.0 + glib-2.0 + ) +else() + list(APPEND EXCLUDE_PATHS + a2dp_source_player_adapter.cc + from_mic_recorder_adapter.cc + from_mic_to_file_recorder_thread.cc + ) +endif() + +collect_sources(SOURCES "${PATHS}" "${EXCLUDE_PATHS}") +add_library("MediaManager" ${SOURCES}) target_link_libraries("MediaManager" ${LIBRARIES}) -if(BUILD_TESTS) - add_subdirectory(test) +if(ENABLE_LOG) + target_link_libraries("MediaManager" log4cxx -L${LOG4CXX_LIBS_DIRECTORY}) endif() +if(BUILD_TESTS) + add_subdirectory(test) +endif() diff --git a/src/components/media_manager/test/CMakeLists.txt b/src/components/media_manager/test/CMakeLists.txt index ede6f27f95..f5d596f681 100644 --- a/src/components/media_manager/test/CMakeLists.txt +++ b/src/components/media_manager/test/CMakeLists.txt @@ -28,7 +28,7 @@ # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. -if(BUILD_TESTS) +include(${CMAKE_SOURCE_DIR}/tools/cmake/helpers/sources.cmake) include_directories( ${GMOCK_INCLUDE_DIRECTORY} @@ -46,9 +46,7 @@ if(EXTENDED_MEDIA_MODE) ) endif() -set(SOURCES - ${COMPONENTS_DIR}/media_manager/test/media_manager_impl_test.cc -) +collect_sources(SOURCES "${CMAKE_CURRENT_SOURCE_DIR}") set(LIBRARIES SmartObjects @@ -74,7 +72,3 @@ create_test("media_manager_test" "${SOURCES}" "${LIBRARIES}") if(ENABLE_LOG) target_link_libraries("media_manager_test" log4cxx -L${LOG4CXX_LIBS_DIRECTORY}) endif() - -endif() - -# vim: set ts=2 sw=2 et: diff --git a/src/components/policy/CMakeLists.txt b/src/components/policy/CMakeLists.txt index 3a2b0829dc..ce6d7c227c 100644 --- a/src/components/policy/CMakeLists.txt +++ b/src/components/policy/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (c) 2013, Ford Motor Company +# Copyright (c) 2016, Ford Motor Company # All rights reserved. # # Redistribution and use in source and binary forms, with or without @@ -28,12 +28,8 @@ # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. -set(target Policy) -set(install_destination bin) -set(copy_destination ${CMAKE_BINARY_DIR}/src/appMain) -set(library_name ${CMAKE_SHARED_LIBRARY_PREFIX}${target}${CMAKE_SHARED_LIBRARY_SUFFIX}) - -set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/") +include(${CMAKE_SOURCE_DIR}/tools/cmake/helpers/platform.cmake) +include(${CMAKE_SOURCE_DIR}/tools/cmake/helpers/sources.cmake) include_directories ( ${COMPONENTS_DIR}/policy/include @@ -44,37 +40,43 @@ include_directories ( ${LOG4CXX_INCLUDE_DIRECTORY} ) -set(SOURCES - ${COMPONENTS_DIR}/policy/src/policy_manager_impl.cc - ${COMPONENTS_DIR}/policy/src/policy_helper.cc - ${COMPONENTS_DIR}/policy/src/policy_table.cc - ${COMPONENTS_DIR}/policy/src/sql_pt_queries.cc - ${COMPONENTS_DIR}/policy/src/sql_pt_representation.cc - ${COMPONENTS_DIR}/policy/src/update_status_manager.cc - ${COMPONENTS_DIR}/policy/src/cache_manager.cc - ${COMPONENTS_DIR}/rpc_base/src/rpc_base/rpc_base.cc +set(POLICY_TABLE_PATHS + ${CMAKE_CURRENT_SOURCE_DIR}/include/policy/policy_table + ${CMAKE_CURRENT_SOURCE_DIR}/src/policy_table ) +collect_sources(POLICY_TABLE_SOURCES "${POLICY_TABLE_PATHS}") +add_library(policy_struct ${POLICY_TABLE_SOURCES}) +target_link_libraries(policy_struct Utils) -# --- Table struct section -set(policy_struct_target policy_struct) -set(POLICY_TABLE_SOURCES - ${COMPONENTS_DIR}/policy/src/policy_table/enums.cc - ${COMPONENTS_DIR}/policy/src/policy_table/types.cc - ${COMPONENTS_DIR}/policy/src/policy_table/validation.cc +set(USAGE_STATISTICS_PATHS + ${CMAKE_CURRENT_SOURCE_DIR}/include/policy/usage_statistics + ${CMAKE_CURRENT_SOURCE_DIR}/src/usage_statistics ) +collect_sources(USAGE_STATISTICS_SOURCES "${USAGE_STATISTICS_PATHS}") +add_library(UsageStatistics ${USAGE_STATISTICS_SOURCES}) -add_library(${policy_struct_target} ${POLICY_TABLE_SOURCES}) -target_link_libraries(${policy_struct_target} Utils) -# --- end of Table struct section +set(EXCLUDE_PATHS + ${POLICY_TABLE_PATHS} + ${USAGE_STATISTICS_PATHS} + sql_pt_ext_queries.cc + sql_pt_ext_representation.cc +) -# --- Usage statistics section -set(USAGE_STATISTICS_SOURCES - ${COMPONENTS_DIR}/policy/src/usage_statistics/counter.cc +set(PATHS + ${CMAKE_CURRENT_SOURCE_DIR}/include/ + ${CMAKE_CURRENT_SOURCE_DIR}/src/ + ${COMPONENTS_DIR}/rpc_base/src/rpc_base/rpc_base.cc +) +collect_sources(SOURCES "${PATHS}" "${EXCLUDE_PATHS}") + +set(LIBRARIES + ConfigProfile + policy_struct + dbms + jsoncpp + Utils ) -add_library(UsageStatistics ${USAGE_STATISTICS_SOURCES}) -# --- end of Usage statistics section -set(LIBRARIES ConfigProfile policy_struct dbms jsoncpp Utils) if (CMAKE_SYSTEM_NAME STREQUAL "QNX") # --- QDB Wrapper include_directories (${COMPONENTS_DIR}/utils/include/utils) @@ -84,22 +86,28 @@ else () list(APPEND LIBRARIES sqlite3) endif () -add_library(${target} SHARED ${SOURCES}) -target_link_libraries(${target} ${LIBRARIES} ) +add_library(Policy SHARED ${SOURCES}) +target_link_libraries(Policy ${LIBRARIES}) if(ENABLE_LOG) - target_link_libraries(${target} log4cxx -L${LOG4CXX_LIBS_DIRECTORY}) + target_link_libraries(Policy log4cxx -L${LOG4CXX_LIBS_DIRECTORY}) endif() -add_custom_target(copy_library_${target} ALL - COMMAND ${CMAKE_COMMAND} -E copy_if_different - ${CMAKE_CURRENT_BINARY_DIR}/${library_name} - ${copy_destination} - DEPENDS ${target} - COMMENT "Copying library ${library_name}") +set(LIBRARY_NAME ${CMAKE_SHARED_LIBRARY_PREFIX}Policy${CMAKE_SHARED_LIBRARY_SUFFIX}) +set(TARGET_LOCATION ${CMAKE_CURRENT_BINARY_DIR}/${LIBRARY_NAME}) +set(INSTALL_DESTINATION bin) +set(COPY_DESTINATION ${CMAKE_BINARY_DIR}/src/appMain) -install(TARGETS ${target} - DESTINATION ${install_destination} +add_custom_target(copy_policy_library ALL + COMMAND ${CMAKE_COMMAND} -E copy_if_different + ${TARGET_LOCATION} + ${COPY_DESTINATION}/${LIBRARY_NAME} + DEPENDS Policy + COMMENT "Copying library ${LIBRARY_NAME}" +) + +install(TARGETS Policy + DESTINATION ${INSTALL_DESTINATION} PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE @@ -107,4 +115,4 @@ install(TARGETS ${target} if(BUILD_TESTS) add_subdirectory(test) -endif() # BUILD_TESTS +endif() diff --git a/src/components/policy/test/CMakeLists.txt b/src/components/policy/test/CMakeLists.txt index 95a61f92ff..4f6abf2992 100644 --- a/src/components/policy/test/CMakeLists.txt +++ b/src/components/policy/test/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (c) 2015, Ford Motor Company +# Copyright (c) 2016, Ford Motor Company # All rights reserved. # # Redistribution and use in source and binary forms, with or without @@ -28,6 +28,8 @@ # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. +include(${CMAKE_SOURCE_DIR}/tools/cmake/helpers/sources.cmake) + include_directories( include ${COMPONENTS_DIR} @@ -40,26 +42,17 @@ include_directories( ${COMPONENTS_DIR}/policy/test/include/ ) -set(testLibraries +collect_sources(SOURCES "${CMAKE_CURRENT_SOURCE_DIR}" "${EXCLUDE_PATHS}") + +set(LIBRARIES gmock + dbms Utils Policy UsageStatistics ) -set(testSources - counter_test.cc - shared_library_test.cc - generated_code_test.cc - policy_manager_impl_test.cc - update_status_manager_test.cc -) - -list (APPEND testSources - sql_pt_representation_test.cc -) - -create_test("policy_test" "${testSources}" "${testLibraries}") +create_test(policy_test "${SOURCES}" "${LIBRARIES}") file(COPY valid_sdl_pt_update.json DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) file(COPY sdl_preloaded_pt.json DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) diff --git a/src/components/protocol/CMakeLists.txt b/src/components/protocol/CMakeLists.txt index 8524ff4f44..7d8579bdbc 100644 --- a/src/components/protocol/CMakeLists.txt +++ b/src/components/protocol/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (c) 2014, Ford Motor Company +# Copyright (c) 2016, Ford Motor Company # All rights reserved. # # Redistribution and use in source and binary forms, with or without @@ -28,18 +28,18 @@ # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. +include(${CMAKE_SOURCE_DIR}/tools/cmake/helpers/sources.cmake) include_directories( - ./include - ${APR_INCLUDE_DIRECTORY} + ${COMPONENTS_DIR}/include + ${COMPONENTS_DIR}/utils/include ) -set(SOURCES - ${COMPONENTS_DIR}/protocol/src/raw_message.cc - ${COMPONENTS_DIR}/protocol/src/service_type.cc - ${COMPONENTS_DIR}/protocol/src/message_priority.cc - ${COMPONENTS_DIR}/protocol/src/rpc_type.cc +collect_sources(SOURCES "${CMAKE_CURRENT_SOURCE_DIR}") + +set(LIBRARIES + Utils ) add_library(ProtocolLibrary ${SOURCES}) -target_link_libraries(ProtocolLibrary Utils) +target_link_libraries(ProtocolLibrary ${LIBRARIES}) diff --git a/src/components/protocol_handler/CMakeLists.txt b/src/components/protocol_handler/CMakeLists.txt index a09a565844..559acf8956 100644 --- a/src/components/protocol_handler/CMakeLists.txt +++ b/src/components/protocol_handler/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (c) 2014, Ford Motor Company +# Copyright (c) 2016, Ford Motor Company # All rights reserved. # # Redistribution and use in source and binary forms, with or without @@ -28,6 +28,7 @@ # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. +include(${CMAKE_SOURCE_DIR}/tools/cmake/helpers/sources.cmake) include_directories( include @@ -37,13 +38,11 @@ include_directories( ${LOG4CXX_INCLUDE_DIRECTORY} ) -set(SOURCES - ${COMPONENTS_DIR}/protocol_handler/src/incoming_data_handler.cc - ${COMPONENTS_DIR}/protocol_handler/src/protocol_handler_impl.cc - ${COMPONENTS_DIR}/protocol_handler/src/protocol_packet.cc - ${COMPONENTS_DIR}/protocol_handler/src/protocol_payload.cc - ${COMPONENTS_DIR}/protocol_handler/src/multiframe_builder.cc +set(PATHS + ${CMAKE_CURRENT_SOURCE_DIR}/include + ${CMAKE_CURRENT_SOURCE_DIR}/src ) +collect_sources(SOURCES "${PATHS}") set(LIBRARIES ProtocolLibrary diff --git a/src/components/protocol_handler/test/CMakeLists.txt b/src/components/protocol_handler/test/CMakeLists.txt index 87d91bfd54..ca079dcc7e 100644 --- a/src/components/protocol_handler/test/CMakeLists.txt +++ b/src/components/protocol_handler/test/CMakeLists.txt @@ -28,7 +28,7 @@ # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. -if (BUILD_TESTS) +include(${CMAKE_SOURCE_DIR}/tools/cmake/helpers/sources.cmake) include_directories ( include @@ -38,9 +38,12 @@ include_directories ( ${COMPONENTS_DIR}/protocol_handler/test/include ${COMPONENTS_DIR}/include/protocol ${JSONCPP_INCLUDE_DIRECTORY} + ${GMOCK_INCLUDE_DIRECTORY} ) -set (LIBRARIES +collect_sources(SOURCES ${CMAKE_CURRENT_SOURCE_DIR}) + +set(LIBRARIES gmock ProtocolHandler connectionHandler @@ -49,15 +52,4 @@ set (LIBRARIES ProtocolLibrary ) -set (SOURCES - incoming_data_handler_test.cc - protocol_header_validator_test.cc - protocol_handler_tm_test.cc - protocol_packet_test.cc - protocol_payload_test.cc - multiframe_builder_test.cc -) - -create_test ("protocol_handler_test" "${SOURCES}" "${LIBRARIES}") - -endif () +create_test(protocol_handler_test "${SOURCES}" "${LIBRARIES}") diff --git a/src/components/qt_hmi/test/CMakeLists.txt b/src/components/qt_hmi/test/CMakeLists.txt index b0c48a4348..91ec2cd20c 100644 --- a/src/components/qt_hmi/test/CMakeLists.txt +++ b/src/components/qt_hmi/test/CMakeLists.txt @@ -29,8 +29,6 @@ # POSSIBILITY OF SUCH DAMAGE. -if(BUILD_TESTS) - cmake_minimum_required(VERSION 2.8.11) set(QT_HMI_TESTS_LIST @@ -67,4 +65,3 @@ foreach( file_i ${QT_HMI_TESTS_LIST}) file(COPY ${file_i} DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) endforeach( file_i ) -endif()
\ No newline at end of file diff --git a/src/components/resumption/CMakeLists.txt b/src/components/resumption/CMakeLists.txt index 71a76d1d4d..4fb0876c0d 100644 --- a/src/components/resumption/CMakeLists.txt +++ b/src/components/resumption/CMakeLists.txt @@ -28,6 +28,7 @@ # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. +include(${CMAKE_SOURCE_DIR}/tools/cmake/helpers/sources.cmake) include_directories ( include @@ -37,9 +38,11 @@ include_directories ( ${LOG4CXX_INCLUDE_DIRECTORY} ) -set (SOURCES - ${COMPONENTS_DIR}/resumption/src/last_state_impl.cc +set(PATHS + ${CMAKE_CURRENT_SOURCE_DIR}/include + ${CMAKE_CURRENT_SOURCE_DIR}/src ) +collect_sources(SOURCES "${PATHS}") add_library("Resumption" ${SOURCES}) diff --git a/src/components/resumption/test/CMakeLists.txt b/src/components/resumption/test/CMakeLists.txt index 6fa1c07381..5481d5f80f 100644 --- a/src/components/resumption/test/CMakeLists.txt +++ b/src/components/resumption/test/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (c) 2015, Ford Motor Company +# Copyright (c) 2016, Ford Motor Company # All rights reserved. # # Redistribution and use in source and binary forms, with or without @@ -28,7 +28,7 @@ # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. -if(BUILD_TESTS) +include(${CMAKE_SOURCE_DIR}/tools/cmake/helpers/sources.cmake) include_directories( ${LOG4CXX_INCLUDE_DIRECTORY} @@ -41,22 +41,14 @@ include_directories( ${CMAKE_BINARY_DIR} ) +collect_sources(SOURCES ${CMAKE_CURRENT_SOURCE_DIR}) + set(LIBRARIES gmock ConfigProfile Utils Resumption jsoncpp - ConfigProfile ) -set(SOURCES - ${COMPONENTS_DIR}/resumption/test/last_state_test.cc -) - -#file(COPY smartDeviceLink_test.ini DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) -#file(COPY app_info.dat DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) - -create_test("resumption_test" "${SOURCES}" "${LIBRARIES}") - -endif() +create_test(resumption_test "${SOURCES}" "${LIBRARIES}") diff --git a/src/components/rpc_base/CMakeLists.txt b/src/components/rpc_base/CMakeLists.txt index 94e67cc985..700cec72bb 100644 --- a/src/components/rpc_base/CMakeLists.txt +++ b/src/components/rpc_base/CMakeLists.txt @@ -28,31 +28,27 @@ # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. - -set(RPC_BASE_INCLUDE_DIR ${COMPONENTS_DIR}/rpc_base/include) +include(${CMAKE_SOURCE_DIR}/tools/cmake/helpers/sources.cmake) include_directories( - include + ${COMPONENTS_DIR}/rpc_base/include + ${COMPONENTS_DIR}/utils/include ${JSONCPP_INCLUDE_DIRECTORY} ) -set (SOURCES - ${COMPONENTS_DIR}/rpc_base/src/rpc_base/rpc_base.cc +set(PATHS + ${CMAKE_CURRENT_SOURCE_DIR}/include + ${CMAKE_CURRENT_SOURCE_DIR}/src ) +collect_sources(SOURCES "${PATHS}") -set (HEADERS - ${RPC_BASE_INCLUDE_DIR}/rpc_base/gtest_support.h - ${RPC_BASE_INCLUDE_DIR}/rpc_base/rpc_base_dbus_inl.h - ${RPC_BASE_INCLUDE_DIR}/rpc_base/rpc_base.h - ${RPC_BASE_INCLUDE_DIR}/rpc_base/rpc_base_inl.h - ${RPC_BASE_INCLUDE_DIR}/rpc_base/rpc_base_json_inl.h - ${RPC_BASE_INCLUDE_DIR}/rpc_base/rpc_message.h - ${RPC_BASE_INCLUDE_DIR}/rpc_base/validation_report.h +set(LIBRARIES + jsoncpp ) -add_library(rpc_base ${HEADERS} ${SOURCES}) -target_link_libraries(rpc_base jsoncpp) +add_library(rpc_base ${SOURCES}) +target_link_libraries(rpc_base ${LIBRARIES}) if(BUILD_TESTS) add_subdirectory(test) -endif()
\ No newline at end of file +endif() diff --git a/src/components/rpc_base/test/CMakeLists.txt b/src/components/rpc_base/test/CMakeLists.txt index 76cf738f46..566f0ddcde 100644 --- a/src/components/rpc_base/test/CMakeLists.txt +++ b/src/components/rpc_base/test/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (c) 2015, Ford Motor Company +# Copyright (c) 2016, Ford Motor Company # All rights reserved. # # Redistribution and use in source and binary forms, with or without @@ -28,8 +28,9 @@ # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. -if (BUILD_TESTS) - include_directories ( +include(${CMAKE_SOURCE_DIR}/tools/cmake/helpers/sources.cmake) + +include_directories( ${COMPONENTS_DIR}/dbus/include ${COMPONENTS_DIR}/dbus/src ${COMPONENTS_DIR}/rpc_base/include @@ -43,20 +44,16 @@ set(LIBRARIES jsoncpp ) -set(SOURCES - rpc_base_json_test.cc - rpc_base_test.cc - validation_report_test.cc -) - -if (${HMI_DBUS_API}) - # Build dbus tests +if(${HMI_DBUS_API}) include_directories(${DBUS_INCLUDE_DIRS}) - set (LIBRARIES ${LIBRARIES} DBus) - set (SOURCES ${SOURCES} rpc_base_dbus_test.cc) -endif () - -create_test("rpc_base_test" "${SOURCES}" "${LIBRARIES}") - + list(APPEND LIBRARIES + DBus + ) +else() + set(EXCLUDE_PATHS + rpc_base_dbus_test.cc + ) endif() +collect_sources(SOURCES "${CMAKE_CURRENT_SOURCE_DIR}" "${EXCLUDE_PATHS}") +create_test(rpc_base_test "${SOURCES}" "${LIBRARIES}") diff --git a/src/components/security_manager/CMakeLists.txt b/src/components/security_manager/CMakeLists.txt index 3cc6178931..bb50ad50c9 100644 --- a/src/components/security_manager/CMakeLists.txt +++ b/src/components/security_manager/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 @@ -27,7 +27,9 @@ # 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(${CMAKE_SOURCE_DIR}/tools/cmake/helpers/sources.cmake) include_directories( include/ @@ -41,15 +43,22 @@ include_directories( ${APR_INCLUDE_DIRECTORY} ) -set (SOURCES - ${COMPONENTS_DIR}/security_manager/src/security_manager_impl.cc - ${COMPONENTS_DIR}/security_manager/src/security_query.cc - ${COMPONENTS_DIR}/security_manager/src/crypto_manager_impl.cc - ${COMPONENTS_DIR}/security_manager/src/ssl_context_impl.cc +set(PATHS + ${CMAKE_CURRENT_SOURCE_DIR}/include + ${CMAKE_CURRENT_SOURCE_DIR}/src +) +collect_sources(SOURCES "${PATHS}") + +set(LIBRARIES + crypto + ssl + ProtocolHandler + jsoncpp + ProtocolLibrary ) add_library(SecurityManager ${SOURCES}) -target_link_libraries(SecurityManager crypto ssl ProtocolHandler jsoncpp ProtocolLibrary) +target_link_libraries(SecurityManager ${LIBRARIES}) if(BUILD_TESTS) add_subdirectory(test) diff --git a/src/components/security_manager/test/CMakeLists.txt b/src/components/security_manager/test/CMakeLists.txt index 6707e5ea5a..ba1fbcca8b 100644 --- a/src/components/security_manager/test/CMakeLists.txt +++ b/src/components/security_manager/test/CMakeLists.txt @@ -28,8 +28,8 @@ # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. -if (BUILD_TESTS) - +include(${CMAKE_SOURCE_DIR}/tools/cmake/helpers/sources.cmake) + include_directories( ${GMOCK_INCLUDE_DIRECTORY} ${COMPONENTS_DIR}/protocol_handler/test/include @@ -39,20 +39,15 @@ include_directories( ${JSONCPP_INCLUDE_DIRECTORY} ) -set(SOURCES - ${COMPONENTS_DIR}/security_manager/test/crypto_manager_impl_test.cc - ${COMPONENTS_DIR}/security_manager/test/security_manager_test.cc - ${COMPONENTS_DIR}/security_manager/test/security_query_test.cc - ${COMPONENTS_DIR}/security_manager/test/security_query_matcher.cc - ${COMPONENTS_DIR}/security_manager/test/ssl_context_test.cc - ${COMPONENTS_DIR}/security_manager/test/ssl_certificate_handshake_test.cc - ) +collect_sources(SOURCES "${CMAKE_CURRENT_SOURCE_DIR}") set(LIBRARIES gmock ${SecurityManagerLibrary} ) +create_test (security_manager_test "${SOURCES}" "${LIBRARIES}") + set(CERT_LIST ${CMAKE_SOURCE_DIR}/mycert.pem ${CMAKE_SOURCE_DIR}/mykey.pem @@ -64,11 +59,8 @@ add_custom_target(generate_certificates WORKING_DIRECTORY ${CMAKE_BINARY_DIR} ) -foreach( file_i ${CERT_LIST}) - file(COPY ${file_i} DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) -endforeach( file_i ) +foreach(CERT_ENTRY ${CERT_LIST}) + file(COPY ${CERT_ENTRY} DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) +endforeach() -create_test (security_manager_test "${SOURCES}" "${LIBRARIES}") add_dependencies(security_manager_test generate_certificates) - -endif () diff --git a/src/components/smart_objects/CMakeLists.txt b/src/components/smart_objects/CMakeLists.txt index c1d599db67..339cf90ea4 100644 --- a/src/components/smart_objects/CMakeLists.txt +++ b/src/components/smart_objects/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (c) 2014, Ford Motor Company +# Copyright (c) 2016, Ford Motor Company # All rights reserved. # # Redistribution and use in source and binary forms, with or without @@ -28,28 +28,19 @@ # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. +include(${CMAKE_SOURCE_DIR}/tools/cmake/helpers/sources.cmake) -set(SMART_OBJECTS_SRC_DIR ${COMPONENTS_DIR}/smart_objects/src) - -include_directories ( - include - ${COMPONENTS_DIR}/utils/include/ +include_directories( + ${COMPONENTS_DIR}/include + ${COMPONENTS_DIR}/smart_objects/include + ${COMPONENTS_DIR}/utils/include ) -set (SOURCES - ${SMART_OBJECTS_SRC_DIR}/smart_object.cc - ${SMART_OBJECTS_SRC_DIR}/smart_schema.cc - ${SMART_OBJECTS_SRC_DIR}/schema_item.cc - ${SMART_OBJECTS_SRC_DIR}/always_false_schema_item.cc - ${SMART_OBJECTS_SRC_DIR}/always_true_schema_item.cc - ${SMART_OBJECTS_SRC_DIR}/default_shema_item.cc - ${SMART_OBJECTS_SRC_DIR}/bool_schema_item.cc - ${SMART_OBJECTS_SRC_DIR}/number_schema_item.cc - ${SMART_OBJECTS_SRC_DIR}/enum_schema_item.cc - ${SMART_OBJECTS_SRC_DIR}/string_schema_item.cc - ${SMART_OBJECTS_SRC_DIR}/object_schema_item.cc - ${SMART_OBJECTS_SRC_DIR}/array_schema_item.cc +set(PATHS + ${CMAKE_CURRENT_SOURCE_DIR}/include + ${CMAKE_CURRENT_SOURCE_DIR}/src ) +collect_sources(SOURCES "${PATHS}") add_library("SmartObjects" ${SOURCES}) @@ -60,4 +51,3 @@ endif() if(BUILD_TESTS) add_subdirectory(test) endif() - diff --git a/src/components/smart_objects/test/CMakeLists.txt b/src/components/smart_objects/test/CMakeLists.txt index e8bc20b6b8..e0cc37e104 100644 --- a/src/components/smart_objects/test/CMakeLists.txt +++ b/src/components/smart_objects/test/CMakeLists.txt @@ -28,8 +28,11 @@ # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. +include(${CMAKE_SOURCE_DIR}/tools/cmake/helpers/sources.cmake) + if(BUILD_TESTS) -add_definitions(-DUNIT_TESTS) + add_definitions(-DUNIT_TESTS) +endif() include_directories ( ${GMOCK_INCLUDE_DIRECTORY} @@ -45,22 +48,10 @@ set(LIBRARIES jsoncpp ) -set(SOURCES - ${COMPONENTS_DIR}/smart_objects/test/SmartObjectDraft_test.cc - ${COMPONENTS_DIR}/smart_objects/test/SmartObjectInvalid_test.cc - ${COMPONENTS_DIR}/smart_objects/test/SmartObjectStress_test.cc - ${COMPONENTS_DIR}/smart_objects/test/SmartObjectUnit_test.cc - ${COMPONENTS_DIR}/smart_objects/test/smart_object_performance_test.cc - ${COMPONENTS_DIR}/smart_objects/test/map_performance_test.cc - ${COMPONENTS_DIR}/smart_objects/test/BoolSchemaItem_test.cc - ${COMPONENTS_DIR}/smart_objects/test/NumberSchemaItem_test.cc - ${COMPONENTS_DIR}/smart_objects/test/StringSchemaItem_test.cc - ${COMPONENTS_DIR}/smart_objects/test/ArraySchemaItem_test.cc - ${COMPONENTS_DIR}/smart_objects/test/CObjectSchemaItem_test.cc - ${COMPONENTS_DIR}/smart_objects/test/AlwaysTrueSchemaItem_test.cc - ${COMPONENTS_DIR}/smart_objects/test/AlwaysFalseSchemaItem_test.cc +set(EXCLUDE_PATHS + EnumSchemaItem_test.cc + SmartObjectConvertionTime_test.cc ) -create_test("smart_object_test" "${SOURCES}" "${LIBRARIES}") - -endif() +collect_sources(SOURCES "${CMAKE_CURRENT_SOURCE_DIR}" "${EXCLUDE_PATHS}") +create_test(smart_object_test "${SOURCES}" "${LIBRARIES}") diff --git a/src/components/telemetry_monitor/CMakeLists.txt b/src/components/telemetry_monitor/CMakeLists.txt index f3004dc61e..594b56abc5 100644 --- a/src/components/telemetry_monitor/CMakeLists.txt +++ b/src/components/telemetry_monitor/CMakeLists.txt @@ -28,8 +28,7 @@ # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. - -set(TELEMETRY_MONITOR_SRC_DIR ${COMPONENTS_DIR}/telemetry_monitor/src) +include(${CMAKE_SOURCE_DIR}/tools/cmake/helpers/sources.cmake) include_directories ( include @@ -49,15 +48,15 @@ include_directories ( ${LOG4CXX_INCLUDE_DIRECTORY} ) -set(SOURCES - ${TELEMETRY_MONITOR_SRC_DIR}/metric_wrapper.cc - ${TELEMETRY_MONITOR_SRC_DIR}/telemetry_monitor.cc - ${TELEMETRY_MONITOR_SRC_DIR}/application_manager_observer.cc - ${TELEMETRY_MONITOR_SRC_DIR}/transport_manager_observer.cc - ${TELEMETRY_MONITOR_SRC_DIR}/protocol_handler_observer.cc - ${TELEMETRY_MONITOR_SRC_DIR}/application_manager_metric_wrapper.cc - ${TELEMETRY_MONITOR_SRC_DIR}/transport_manager_metric_wrapper.cc - ${TELEMETRY_MONITOR_SRC_DIR}/protocol_handler_metric_wrapper.cc +set(PATHS + ${CMAKE_CURRENT_SOURCE_DIR}/include + ${CMAKE_CURRENT_SOURCE_DIR}/src +) +collect_sources(SOURCES "${PATHS}") + +set(LIBRARIES + HMI_API + MOBILE_API ) add_library("TelemetryMonitor" ${SOURCES}) diff --git a/src/components/telemetry_monitor/test/CMakeLists.txt b/src/components/telemetry_monitor/test/CMakeLists.txt index 7d2de19854..ea2698dfb2 100644 --- a/src/components/telemetry_monitor/test/CMakeLists.txt +++ b/src/components/telemetry_monitor/test/CMakeLists.txt @@ -28,7 +28,7 @@ # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. -if(BUILD_TESTS) +include(${CMAKE_SOURCE_DIR}/tools/cmake/helpers/sources.cmake) include_directories( include @@ -40,20 +40,10 @@ include_directories( ${COMPONENTS_DIR}/resumption/include ${JSONCPP_INCLUDE_DIRECTORY} ) - -set(testSources - metric_wrapper_test.cc - telemetry_monitor_test.cc - protocol_handler_metric_test.cc - protocol_handler_observer_test.cc - transport_manager_metric_test.cc - transport_manager_observer_test.cc - application_manager_metric_test.cc - application_manager_observer_test.cc -) +collect_sources(SOURCES "${CMAKE_CURRENT_SOURCE_DIR}") -set(testLibraries +set(LIBRARIES gmock TelemetryMonitor jsoncpp @@ -68,7 +58,7 @@ set(testLibraries MessageHelper Resumption jsoncpp - transport_manager + TransportManager MediaManager ProtocolHandler connectionHandler @@ -82,8 +72,8 @@ if (BUILD_BT_SUPPORT) list(APPEND testLibraries bluetooth) endif() -file(COPY log4cxx.properties DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) +create_test("telemetry_monitor_test" "${SOURCES}" "${LIBRARIES}") + +file(COPY ${COMPONENTS_DIR}/telemetry_monitor/test/log4cxx.properties DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) -create_test("telemetry_monitor_test" "${testSources}" "${testLibraries}") -endif() diff --git a/src/components/transport_manager/CMakeLists.txt b/src/components/transport_manager/CMakeLists.txt index 199592a640..7d3d089c55 100644 --- a/src/components/transport_manager/CMakeLists.txt +++ b/src/components/transport_manager/CMakeLists.txt @@ -28,8 +28,8 @@ # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. -set(target TransportManager) -set(TM_SRC_DIR ${COMPONENTS_DIR}/transport_manager/src) +include(${CMAKE_SOURCE_DIR}/tools/cmake/helpers/platform.cmake) +include(${CMAKE_SOURCE_DIR}/tools/cmake/helpers/sources.cmake) include_directories ( include @@ -42,84 +42,63 @@ include_directories ( ${LIBUSB_INCLUDE_DIRECTORY} ${LOG4CXX_INCLUDE_DIRECTORY} ) -if (BUILD_BT_SUPPORT) - include_directories( - ) -endif() -set (SOURCES - ${TM_SRC_DIR}/transport_manager_impl.cc - ${TM_SRC_DIR}/transport_manager_default.cc - ${TM_SRC_DIR}/transport_adapter/transport_adapter_listener_impl.cc - ${TM_SRC_DIR}/transport_adapter/transport_adapter_impl.cc - ${TM_SRC_DIR}/tcp/tcp_transport_adapter.cc - ${TM_SRC_DIR}/tcp/tcp_server_originated_socket_connection.cc - ${TM_SRC_DIR}/transport_adapter/threaded_socket_connection.cc - ${TM_SRC_DIR}/tcp/tcp_client_listener.cc - ${TM_SRC_DIR}/tcp/tcp_device.cc - ${TM_SRC_DIR}/tcp/tcp_socket_connection.cc - ${TM_SRC_DIR}/tcp/tcp_connection_factory.cc +set(PATHS + ${CMAKE_CURRENT_SOURCE_DIR}/include + ${CMAKE_CURRENT_SOURCE_DIR}/src +) + +set(EXCLUDE_PATHS) + +set(LIBRARIES + ProtocolLibrary ) -if (BUILD_BT_SUPPORT) - list (APPEND SOURCES - ${TM_SRC_DIR}/bluetooth/bluetooth_device_scanner.cc - ${TM_SRC_DIR}/bluetooth/bluetooth_transport_adapter.cc - ${TM_SRC_DIR}/bluetooth/bluetooth_connection_factory.cc - ${TM_SRC_DIR}/bluetooth/bluetooth_socket_connection.cc - ${TM_SRC_DIR}/bluetooth/bluetooth_device.cc +if(BUILD_BT_SUPPORT) + list(APPEND LIBRARIES + bluetooth + ) +else() + list(APPEND EXCLUDE_PATHS + ${COMPONENTS_DIR}/transport_manager/include/transport_manager/bluetooth + ${COMPONENTS_DIR}/transport_manager/src/bluetooth ) endif() -if (BUILD_USB_SUPPORT) - list (APPEND SOURCES - ${TM_SRC_DIR}/usb/usb_aoa_adapter.cc - ${TM_SRC_DIR}/usb/usb_connection_factory.cc - ${TM_SRC_DIR}/usb/usb_device_scanner.cc - ) +if(BUILD_USB_SUPPORT) if (CMAKE_SYSTEM_NAME STREQUAL "Linux") - list (APPEND SOURCES - ${TM_SRC_DIR}/usb/libusb/usb_handler.cc - ${TM_SRC_DIR}/usb/libusb/usb_connection.cc - ${TM_SRC_DIR}/usb/libusb/platform_usb_device.cc + set(EXCLUDE_PATHS + ${COMPONENTS_DIR}/transport_manager/include/transport_manager/usb/qnx + ${COMPONENTS_DIR}/transport_manager/src/usb/qnx + ) + list(APPEND LIBRARIES + Libusb-1.0.16 ) elseif(CMAKE_SYSTEM_NAME STREQUAL "QNX") - list(APPEND SOURCES - ${TM_SRC_DIR}/usb/qnx/usb_handler.cc - ${TM_SRC_DIR}/usb/qnx/usb_connection.cc - ${TM_SRC_DIR}/usb/qnx/platform_usb_device.cc + set(EXCLUDE_PATHS + ${COMPONENTS_DIR}/transport_manager/include/transport_manager/usb/libusb + ${COMPONENTS_DIR}/transport_manager/src/usb/libusb + ) + list(APPEND LIBRARIES + usbdi ) endif() -endif(BUILD_USB_SUPPORT) - - -if (CMAKE_SYSTEM_NAME STREQUAL "QNX") +else() + list(APPEND EXCLUDE_PATHS + ${COMPONENTS_DIR}/transport_manager/include/transport_manager/usb + ${COMPONENTS_DIR}/transport_manager/src/usb + ) endif() -add_library(${target} ${SOURCES}) -target_link_libraries(${target} ProtocolLibrary) +collect_sources(SOURCES "${PATHS}" "${EXCLUDE_PATHS}") -if (BUILD_USB_SUPPORT) - if (CMAKE_SYSTEM_NAME STREQUAL "QNX") - target_link_libraries(${target} usbdi) - endif() -endif(BUILD_USB_SUPPORT) +add_library("TransportManager" ${SOURCES}) +target_link_libraries("TransportManager" ${LIBRARIES}) if(ENABLE_LOG) - target_link_libraries(${target} log4cxx -L${LOG4CXX_LIBS_DIRECTORY}) -endif() - -if (BUILD_BT_SUPPORT) - target_link_libraries(${target} bluetooth) + target_link_libraries("TransportManager" log4cxx -L${LOG4CXX_LIBS_DIRECTORY}) endif() -if (CMAKE_SYSTEM_NAME STREQUAL "QNX") -endif() - -add_library("transport_manager" ${SOURCES} - ${TRANSPORT_MANAGER_SOURCES} -) - if(BUILD_TESTS) add_subdirectory(test) endif() diff --git a/src/components/transport_manager/test/CMakeLists.txt b/src/components/transport_manager/test/CMakeLists.txt index f12007fc37..184d546f15 100644 --- a/src/components/transport_manager/test/CMakeLists.txt +++ b/src/components/transport_manager/test/CMakeLists.txt @@ -28,8 +28,7 @@ # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. -if(BUILD_TESTS) -set(TM_TEST_DIR ${COMPONENTS_DIR}/transport_manager/test) +include(${CMAKE_SOURCE_DIR}/tools/cmake/helpers/sources.cmake) include_directories( include @@ -42,10 +41,16 @@ include_directories( ${JSONCPP_INCLUDE_DIRECTORY} ) +set(EXCLUDE_PATHS + raw_message_matcher.cc +) + +collect_sources(SOURCES "${CMAKE_CURRENT_SOURCE_DIR}" "${EXCLUDE_PATHS}") + set(LIBRARIES gmock ConfigProfile - transport_manager + TransportManager Utils ConfigProfile ProtocolLibrary @@ -58,19 +63,11 @@ if (BUILD_USB_SUPPORT) endif() if (BUILD_BT_SUPPORT) + if (CMAKE_SYSTEM_NAME STREQUAL "Linux") list(APPEND LIBRARIES bluetooth) + endif() endif() -set(SOURCES - ${TM_TEST_DIR}/transport_manager_impl_test.cc - ${TM_TEST_DIR}/transport_adapter_test.cc - ${TM_TEST_DIR}/transport_adapter_listener_test.cc - ${TM_TEST_DIR}/tcp_transport_adapter_test.cc - ${TM_TEST_DIR}/tcp_device_test.cc - ${TM_TEST_DIR}/tcp_client_listener_test.cc - ${TM_TEST_DIR}/transport_manager_default_test.cc -) - create_test("transport_manager_test" "${SOURCES}" "${LIBRARIES}") + file(COPY smartDeviceLink_test.ini DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) -endif() diff --git a/src/components/transport_manager/test/raw_message_matcher.cc b/src/components/transport_manager/test/raw_message_matcher.cc index 130ddc96c8..00489d7c03 100644 --- a/src/components/transport_manager/test/raw_message_matcher.cc +++ b/src/components/transport_manager/test/raw_message_matcher.cc @@ -30,8 +30,7 @@ * POSSIBILITY OF SUCH DAMAGE. */ -#include "include/raw_message_matcher.h" -//#include "../../include/protocol/raw_message.h" +#include "include/transport_manager/raw_message_matcher.h" namespace test { namespace components { diff --git a/src/components/utils/CMakeLists.txt b/src/components/utils/CMakeLists.txt index f72d43e546..51835c125a 100644 --- a/src/components/utils/CMakeLists.txt +++ b/src/components/utils/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (c) 2015, Ford Motor Company +# Copyright (c) 2016, Ford Motor Company # All rights reserved. # # Redistribution and use in source and binary forms, with or without @@ -28,62 +28,77 @@ # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. +include(${CMAKE_SOURCE_DIR}/tools/cmake/helpers/platform.cmake) +include(${CMAKE_SOURCE_DIR}/tools/cmake/helpers/sources.cmake) -set(UTILS_INCLUDE_DIR ${COMPONENTS_DIR}/utils/include) -set(UTILS_SRC_DIR ${COMPONENTS_DIR}/utils/src) +find_package(Sqlite3 REQUIRED) include_directories ( - ${UTILS_INCLUDE_DIR} + ${COMPONENTS_DIR}/utils/include ${COMPONENTS_DIR}/config_profile/include ${COMPONENTS_DIR}/media_manager/include ${COMPONENTS_DIR}/protocol_handler/include ${LOG4CXX_INCLUDE_DIRECTORY} ) -set (SOURCES - ${UTILS_SRC_DIR}/bitstream.cc - ${UTILS_SRC_DIR}/conditional_variable_posix.cc - ${UTILS_SRC_DIR}/file_system.cc - ${UTILS_SRC_DIR}/threads/posix_thread.cc - ${UTILS_SRC_DIR}/threads/thread_delegate.cc - ${UTILS_SRC_DIR}/threads/thread_validator.cc - ${UTILS_SRC_DIR}/threads/async_runner.cc - ${UTILS_SRC_DIR}/lock_posix.cc - ${UTILS_SRC_DIR}/rwlock_posix.cc - ${UTILS_SRC_DIR}/date_time.cc - ${UTILS_SRC_DIR}/signals_linux.cc - ${UTILS_SRC_DIR}/system.cc - ${UTILS_SRC_DIR}/resource_usage.cc - ${UTILS_SRC_DIR}/appenders_loader.cc - ${UTILS_SRC_DIR}/gen_hash.cc - ${UTILS_SRC_DIR}/convert_utils.cc - ${UTILS_SRC_DIR}/custom_string.cc - ${UTILS_SRC_DIR}/timer.cc +# dbms +set(DBMS_PATHS + ${CMAKE_CURRENT_SOURCE_DIR}/include/utils/sqlite_wrapper + ${CMAKE_CURRENT_SOURCE_DIR}/src/sqlite_wrapper + ${CMAKE_CURRENT_SOURCE_DIR}/include/utils/qdb_wrapper + ${CMAKE_CURRENT_SOURCE_DIR}/src/qdb_wrapper ) +set(EXCLUDE_PATHS + thread_manager.cc + pulse_thread_delegate.cc + ${DBMS_PATHS} +) + +set(LIBRARIES) + +if(NOT BUILD_BACKTRACE_SUPPORT) + list(APPEND EXCLUDE_PATHS + back_trace.cc + ) +endif() + if(ENABLE_LOG) - list(APPEND SOURCES - ${UTILS_SRC_DIR}/push_log.cc - ${UTILS_SRC_DIR}/log_message_loop_thread.cc - ${UTILS_SRC_DIR}/logger_status.cc - ${UTILS_SRC_DIR}/auto_trace.cc - ${UTILS_SRC_DIR}/logger.cc + list(APPEND LIBRARIES + log4cxx -L${LOG4CXX_LIBS_DIRECTORY} + apr-1 -L${APR_LIBS_DIRECTORY} + aprutil-1 -L${APR_UTIL_LIBS_DIRECTORY} + ConfigProfile + ) +else() + list(APPEND EXCLUDE_PATHS + push_log.cc + log_message_loop_thread.cc + logger_status.cc + auto_trace.cc + logger.cc ) endif() -if (BUILD_BACKTRACE_SUPPORT) - list(APPEND SOURCES - ${UTILS_SRC_DIR}/back_trace.cc - ) +if(NOT BUILD_BT_SUPPORT) + list(APPEND EXCLUDE_PATHS + ${CMAKE_CURRENT_SOURCE_DIR}/include/utils/bluetooth + ${CMAKE_CURRENT_SOURCE_DIR}/src/bluetooth + ) endif() -if (CMAKE_SYSTEM_NAME STREQUAL "QNX") - list(APPEND SOURCES - ${UTILS_SRC_DIR}/threads/pulse_thread_delegate.cc +if (NOT CMAKE_SYSTEM_NAME STREQUAL "QNX") + list(APPEND EXCLUDE_PATHS + pulse_thread_delegate.cc ) endif() -add_library("Utils" ${SOURCES}) +set(PATHS + ${CMAKE_CURRENT_SOURCE_DIR}/include + ${CMAKE_CURRENT_SOURCE_DIR}/src +) + +collect_sources(SOURCES "${PATHS}" "${EXCLUDE_PATHS}") if (CMAKE_SYSTEM_NAME STREQUAL "QNX") # --- QDB Wrapper @@ -94,26 +109,16 @@ else () endif () if(${CMAKE_SYSTEM_NAME} MATCHES "Linux") - list(APPEND LIBRARIES dl) + list(APPEND LIBRARIES dl pthread ${RTLIB}) endif() +add_library("Utils" ${SOURCES}) +target_link_libraries("Utils" ${LIBRARIES}) if(ENABLE_LOG) - list(APPEND LIBRARIES log4cxx -L${LOG4CXX_LIBS_DIRECTORY}) - list(APPEND LIBRARIES apr-1 -L${APR_LIBS_DIRECTORY}) - list(APPEND LIBRARIES aprutil-1 -L${APR_UTIL_LIBS_DIRECTORY}) - list(APPEND LIBRARIES ConfigProfile) - - ADD_DEPENDENCIES(Utils install-3rd_party_logger) + add_dependencies("Utils" install-3rd_party_logger) endif() -if(CMAKE_SYSTEM_NAME STREQUAL "Linux") - target_link_libraries("Utils" pthread ${RTLIB}) -endif() - -target_link_libraries("Utils" ${LIBRARIES}) - - if(BUILD_TESTS) add_subdirectory(test) endif() diff --git a/src/components/utils/src/signals_linux.cc b/src/components/utils/src/signals_posix.cc index 274c254716..274c254716 100644 --- a/src/components/utils/src/signals_linux.cc +++ b/src/components/utils/src/signals_posix.cc diff --git a/src/components/utils/src/threads/posix_thread.cc b/src/components/utils/src/threads/thread_posix.cc index 51e59fa108..51e59fa108 100644 --- a/src/components/utils/src/threads/posix_thread.cc +++ b/src/components/utils/src/threads/thread_posix.cc diff --git a/src/components/utils/test/CMakeLists.txt b/src/components/utils/test/CMakeLists.txt index 6ec12a17e6..81e7d15bcb 100644 --- a/src/components/utils/test/CMakeLists.txt +++ b/src/components/utils/test/CMakeLists.txt @@ -28,7 +28,8 @@ # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. -if(BUILD_TESTS) +include(${CMAKE_SOURCE_DIR}/tools/cmake/helpers/platform.cmake) +include(${CMAKE_SOURCE_DIR}/tools/cmake/helpers/sources.cmake) include_directories ( ${JSONCPP_INCLUDE_DIRECTORY} @@ -39,74 +40,61 @@ include_directories ( ${COMPONENTS_DIR}/policy/include ) -set(testSources - messagemeter_test.cc - file_system_test.cc - date_time_test.cc - system_test.cc - thread_validator_test.cc - conditional_variable_test.cc - message_queue_test.cc - resource_usage_test.cc - bitstream_test.cc - prioritized_queue_test.cc - data_accessor_test.cc - lock_posix_test.cc - singleton_test.cc - #posix_thread_test.cc - stl_utils_test.cc - rwlock_posix_test.cc - async_runner_test.cc - shared_ptr_test.cc - scope_guard_test.cc - atomic_object_test.cc - message_loop_thread_test.cc - custom_string_test.cc - timer_test.cc +set(EXCLUDE_PATHS + qdb_wrapper + test_generator ) -set(testLibraries - gmock - Utils - Policy - ConfigProfile -) +if(NOT ENABLE_LOG) + list(APPEND EXCLUDE_PATHS + auto_trace_test.cc + log_message_loop_thread_test.cc + ) +endif() + +if(NOT BUILD_BACKTRACE_SUPPORT) + list(APPEND EXCLUDE_PATHS + back_trace_test.cc + ) +endif() if (CMAKE_SYSTEM_NAME STREQUAL "QNX") - # --- Tests for QDB Wrapper - list (APPEND testSources - ./qdb_wrapper/sql_database_test.cc - ./qdb_wrapper/sql_query_test.cc + # exclude tests for SQLite wrapper + list (APPEND EXCLUDE_PATHS + ${CMAKE_CURRENT_SOURCE_DIR}/sqlite_wrapper ) file(COPY qdbserver.sh DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) file(COPY test-qdb.ini DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) file(COPY policy.sql DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) else () - # --- Tests for SQLite Wrapper find_package(Sqlite3 REQUIRED) - list (APPEND testSources - ./sqlite_wrapper/sql_database_test.cc - ./sqlite_wrapper/sql_query_test.cc - generated_code_with_sqlite_test.cc + # exclude tests for QDB wrapper + list (APPEND EXCLUDE_PATHS + ${CMAKE_CURRENT_SOURCE_DIR}/qdb_wrapper ) list (APPEND testLibraries sqlite3) endif() -if (ENABLE_LOG) - list(APPEND testSources auto_trace_test.cc) - list(APPEND testSources log_message_loop_thread_test.cc) -endif() +# exclude some tests +list(APPEND EXCLUDE_PATHS + generated_code_with_sqlite_test.cc + posix_thread_test.cc + resource_usage_test.cc +) -if (BUILD_BACKTRACE_SUPPORT) - list(APPEND testSources back_trace_test.cc) -endif() +collect_sources(SOURCES "${CMAKE_CURRENT_SOURCE_DIR}" "${EXCLUDE_PATHS}") + +set(LIBRARIES + gmock + Utils + Policy + ConfigProfile +) + +create_test(utils_test "${SOURCES}" "${LIBRARIES}") file(COPY testscript.sh DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) file(COPY log4cxx.properties DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) file(COPY smartDeviceLink.ini DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) -create_test("utils_test" "${testSources}" "${testLibraries}") - add_subdirectory(test_generator) - -endif() diff --git a/src/components/utils/test/test_generator/CMakeLists.txt b/src/components/utils/test/test_generator/CMakeLists.txt index d649f927a5..5a7f939659 100644 --- a/src/components/utils/test/test_generator/CMakeLists.txt +++ b/src/components/utils/test/test_generator/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (c) 2015, Ford Motor Company +# Copyright (c) 2016, Ford Motor Company # All rights reserved. # # Redistribution and use in source and binary forms, with or without @@ -28,38 +28,35 @@ # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. -if(BUILD_TESTS) +include(${CMAKE_SOURCE_DIR}/tools/cmake/helpers/generators.cmake) include_directories ( - ${JSONCPP_INCLUDE_DIRECTORY} - ${CMAKE_SOURCE_DIR}/src/3rd_party-static/gmock-1.7.0/include - ${CMAKE_SOURCE_DIR}/src/3rd_party-static/gmock-1.7.0/gtest/include ${CMAKE_SOURCE_DIR}/tools/interfaceGenerator ${CMAKE_CURRENT_BINARY_DIR} ${COMPONENTS_DIR}/utils/include/utils ${COMPONENTS_DIR}/include/utils + ${JSONCPP_INCLUDE_DIRECTORY} + ${GMOCK_INCLUDE_DIRECTORY} ) -set(full_xml_name "${CMAKE_SOURCE_DIR}/src/components/interfaces/MOBILE_API.xml") - -add_custom_target( generate_version - COMMAND ${INTEFRACE_GENERATOR_CMD} ${full_xml_name} "mobile_apis" - ${CMAKE_CURRENT_BINARY_DIR} "--parser-type" "sdlrpcv2" - DEPENDS ${INTERFACE_GENERATOR_DEPENDENCIES} ${full_xml_name} - VERBATIM - ) +set(XML_NAME ${CMAKE_SOURCE_DIR}/src/components/interfaces/MOBILE_API.xml) +add_custom_target(generate_version + COMMAND ${INTEFRACE_GENERATOR_CMD} ${XML_NAME} "mobile_apis" + ${CMAKE_CURRENT_BINARY_DIR} "--parser-type" "sdlrpcv2" + DEPENDS ${INTERFACE_GENERATOR_DEPENDENCIES} ${XML_NAME} + VERBATIM +) -set(testLibraries +set(LIBRARIES gmock Utils ) -set(testSources +set(SOURCES generated_msg_version_test.cc ) -file(COPY ${full_xml_name} DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) -create_test("generator_test" "${testSources}" "${testLibraries}") -add_dependencies("generator_test" generate_version) +create_test(generator_test "${SOURCES}" "${LIBRARIES}") +file(COPY ${XML_NAME} DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) -endif() +add_dependencies("generator_test" generate_version) diff --git a/src/plugins/CMakeLists.txt b/src/plugins/CMakeLists.txt index 1a4eff13b5..4b6f6d8dfa 100644 --- a/src/plugins/CMakeLists.txt +++ b/src/plugins/CMakeLists.txt @@ -29,5 +29,5 @@ # POSSIBILITY OF SUCH DAMAGE. if(ENABLE_LOG) -add_subdirectory(appenders) + add_subdirectory(appenders) endif() diff --git a/src/plugins/appenders/CMakeLists.txt b/src/plugins/appenders/CMakeLists.txt index 9d01599ca3..59628a021b 100644 --- a/src/plugins/appenders/CMakeLists.txt +++ b/src/plugins/appenders/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (c) 2014, Ford Motor Company +# Copyright (c) 2016, Ford Motor Company # All rights reserved. # # Redistribution and use in source and binary forms, with or without @@ -28,22 +28,22 @@ # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. -SET(target "appenders") - -SET(SOURCES - safe_file_appender.cc - safe_rolling_file_appender.cc -) +include(${CMAKE_SOURCE_DIR}/tools/cmake/helpers/sources.cmake) include_directories( ${LOG4CXX_INCLUDE_DIRECTORY} ) -add_library(${target} MODULE ${SOURCES}) +collect_sources(SOURCES "${CMAKE_CURRENT_SOURCE_DIR}") + +set(LIBRARIES + log4cxx -L${LOG4CXX_LIBS_DIRECTORY} +) -target_link_libraries(${target} log4cxx -L${LOG4CXX_LIBS_DIRECTORY}) +add_library(appenders ${SOURCES}) +target_link_libraries(appenders ${LIBRARIES}) -install(TARGETS ${target} +install(TARGETS appenders DESTINATION bin PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE diff --git a/cmake/Modules/cotire.cmake b/tools/cmake/helpers/cotire.cmake index 741d6901f1..741d6901f1 100644 --- a/cmake/Modules/cotire.cmake +++ b/tools/cmake/helpers/cotire.cmake diff --git a/src/components/utils/src/qdb_wrapper/CMakeLists.txt b/tools/cmake/helpers/generators.cmake index c19321568e..64f7c1f670 100644 --- a/src/components/utils/src/qdb_wrapper/CMakeLists.txt +++ b/tools/cmake/helpers/generators.cmake @@ -1,4 +1,4 @@ -# Copyright (c) 2013, Ford Motor Company +# Copyright (c) 2016, Ford Motor Company # All rights reserved. # # Redistribution and use in source and binary forms, with or without @@ -28,27 +28,35 @@ # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. -set(target dbms) +find_package(PythonInterp REQUIRED) -include_directories(${COMPONENTS_DIR}/utils/include/utils) +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) -set(SOURCES - ./sql_database.cc - ./sql_query.cc - ./sql_error.cc -) +set(INTEFRACE_GENERATOR "${CMAKE_SOURCE_DIR}/tools/InterfaceGenerator/Generator.py") +set(INTEFRACE_GENERATOR_CMD ${PYTHON_EXECUTABLE} -B ${INTEFRACE_GENERATOR}) +file(GLOB_RECURSE INTERFACE_GENERATOR_DEPENDENCIES "${CMAKE_SOURCE_DIR}/tools/InterfaceGenerator/*.*") -add_library(${target} ${SOURCES}) -target_link_libraries(${target} qdb Utils) +macro(generate_interface 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 -if (CMAKE_SYSTEM_NAME STREQUAL "QNX") - file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/policy.ini DESTINATION ${CMAKE_BINARY_DIR}/src/appMain) - file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/qdbserver.sh DESTINATION ${CMAKE_BINARY_DIR}/src/appMain) -endif () + set(HPP_FILE + "${CMAKE_CURRENT_BINARY_DIR}/${FILE_NAME}.h" + "${CMAKE_CURRENT_BINARY_DIR}/${FILE_NAME}_schema.h" + ) -if (CMAKE_SYSTEM_NAME STREQUAL "QNX") - install(FILES policy.ini DESTINATION bin) - install(FILES qdbserver.sh DESTINATION bin - PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ - GROUP_EXECUTE WORLD_READ WORLD_EXECUTE) -endif () + 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 ${FULL_XML_NAME} ..." + VERBATIM + ) +endmacro() diff --git a/tools/cmake/helpers/platform.cmake b/tools/cmake/helpers/platform.cmake new file mode 100644 index 0000000000..a377dfd042 --- /dev/null +++ b/tools/cmake/helpers/platform.cmake @@ -0,0 +1,96 @@ +# Copyright (c) 2016, 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. + +# SDL build platform includes three necessary components: +# OS, Architecture and SDK. Build parameters and sources code base +# could be varied depends on these three components combination. +# +# Platform helpers provide functionality to get supported by SDL +# OS, Architecture or SDK lists and specified for actual build these +# variables values. Values could be passed to cmake as parameters +# (f.e. "-DOS_WINDOWS=1 -DSDK_QT=1"), otherwise they will be detected +# related to current build environment. +# +# Full list of supported cmake flags: +# OS_POSIX +# OS_WINDOWS +# ARCH_X86 +# ARCH_X64 +# SDK_QT + +function(get_supported_os OS_LIST) + set(${OS_LIST} "posix" "win" PARENT_SCOPE) +endfunction() + +function(get_supported_arch ARCH_LIST) + set(${ARCH_LIST} "x86" "x64" PARENT_SCOPE) +endfunction() + +function(get_supported_sdk SDK_LIST) + set(${SDK_LIST} "qt" PARENT_SCOPE) +endfunction() + +function(get_os OS) + if(OS_POSIX) + set(${OS} "posix" PARENT_SCOPE) + elseif(OS_WINDOWS) + set(${OS} "win" PARENT_SCOPE) + else() + if(${CMAKE_SYSTEM_NAME} MATCHES "Linux") + set(${OS} "posix" PARENT_SCOPE) + elseif(${CMAKE_SYSTEM_NAME} MATCHES "Windows") + set(${OS} "win" PARENT_SCOPE) + else() + message(FATAL_ERROR "Unsupported operation system") + endif() + endif() +endfunction() + +function(get_arch ARCH) + if(ARCH_X86) + set(${ARCH} "x86" PARENT_SCOPE) + elseif(ARCH_X64) + set(${ARCH} "x64" PARENT_SCOPE) + else() + if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "i386") + set(${ARCH} "x86" PARENT_SCOPE) + elseif(${CMAKE_SYSTEM_PROCESSOR} MATCHES "x86_64") + set(${ARCH} "x64" PARENT_SCOPE) + else() + message(FATAL_ERROR "Unsupported architecture") + endif() + endif() +endfunction() + +function(get_sdk SDK) + if(SDK_QT) + set(${SDK} "qt" PARENT_SCOPE) + endif() +endfunction() diff --git a/tools/cmake/helpers/sources.cmake b/tools/cmake/helpers/sources.cmake new file mode 100644 index 0000000000..0315b905d9 --- /dev/null +++ b/tools/cmake/helpers/sources.cmake @@ -0,0 +1,166 @@ +# Copyright (c) 2016, 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. + +# Sources helpers provide functionality to collect headers, source files +# or any other files depends on current build settings (OS, Architecture, SDK). +# +# Files could be included or excluded to/from build for some platform by +# platform-specific suffix adding to filename. For example file +# sdl_source_file_posix_x86_qt.cc will be added only to build with parameters: +# OS=posix ARCH=x86 SDK=qt but file sdl_source_file_win.cc to all builds +# with OS=win option enabled. Suffixes could be mixed within filename randomly. +# +# Full list of supported suffixes: +# posix +# win +# x86 +# x64 +# qt + +include(${CMAKE_SOURCE_DIR}/tools/cmake/helpers/platform.cmake) + +function(filter_files_by_name FILES IGNORE_NAMES) + set(FILES_LOCAL ${${FILES}}) + foreach(FILE_ENTRY ${${FILES}}) + foreach(IGNORE_ENTRY ${IGNORE_NAMES}) + if(${FILE_ENTRY} MATCHES ${IGNORE_ENTRY}) + list(REMOVE_ITEM FILES_LOCAL ${FILE_ENTRY}) + endif() + endforeach() + endforeach() + set(${FILES} ${FILES_LOCAL} PARENT_SCOPE) +endfunction() + +function(filter_files_by_suffix FILES IGNORE_SUFFIXES) + set(FILES_LOCAL ${${FILES}}) + foreach(FILE_ENTRY ${${FILES}}) + foreach(IGNORE_ENTRY ${IGNORE_SUFFIXES}) + if((${FILE_ENTRY} MATCHES "_${IGNORE_ENTRY}_") OR (${FILE_ENTRY} MATCHES "_${IGNORE_ENTRY}\\.")) + list(REMOVE_ITEM FILES_LOCAL ${FILE_ENTRY}) + endif() + endforeach() + endforeach() + set(${FILES} ${FILES_LOCAL} PARENT_SCOPE) +endfunction() + +function(filter_files_by_os FILES) + set(FILES_LOCAL ${${FILES}}) + get_supported_os(OS_LIST) + get_os(OS) + list(REMOVE_ITEM OS_LIST ${OS}) + filter_files_by_suffix(FILES_LOCAL "${OS_LIST}") + set(${FILES} ${FILES_LOCAL} PARENT_SCOPE) +endfunction() + +function(filter_files_by_arch FILES) + set(FILES_LOCAL ${${FILES}}) + get_supported_arch(ARCH_LIST) + get_arch(ARCH) + list(REMOVE_ITEM ARCH_LIST ${ARCH}) + filter_files_by_suffix(FILES_LOCAL "${ARCH_LIST}") + set(${FILES} ${FILES_LOCAL} PARENT_SCOPE) +endfunction() + +function(filter_files_by_sdk FILES) + set(FILES_LOCAL ${${FILES}}) + get_supported_sdk(SDK_LIST) + get_sdk(SDK) + if(SDK) + list(REMOVE_ITEM SDK_LIST ${SDK}) + endif() + filter_files_by_suffix(FILES_LOCAL "${SDK_LIST}") + set(${FILES} ${FILES_LOCAL} PARENT_SCOPE) +endfunction() + +function(filter_files FILES IGNORE_NAMES) + set(FILES_LOCAL ${${FILES}}) + filter_files_by_name(FILES_LOCAL "${IGNORE_NAMES}") + filter_files_by_os(FILES_LOCAL) + filter_files_by_arch(FILES_LOCAL) + filter_files_by_sdk(FILES_LOCAL) + set(${FILES} ${FILES_LOCAL} PARENT_SCOPE) +endfunction() + +function(collect_sources SOURCES PATHS) + set(OPTIONAL_ARG ${ARGN}) + set(HEADERS_LOCAL) + set(SOURCES_LOCAL) + get_os(OS) + + foreach(PATH_ENTRY ${PATHS}) + file(GLOB_RECURSE SOURCES_TO_FILTER "${PATH_ENTRY}/*.c" "${PATH_ENTRY}/*.cc" "${PATH_ENTRY}/*.cpp") + filter_files(SOURCES_TO_FILTER "${OPTIONAL_ARG}") + list(APPEND SOURCES_LOCAL ${SOURCES_TO_FILTER}) + set(SOURCES_TO_FILTER) + if(${OS} STREQUAL "win") + file(GLOB_RECURSE HEADERS_TO_FILTER "${PATH_ENTRY}/*.h" "${PATH_ENTRY}/*.hpp") + filter_files(HEADERS_TO_FILTER "${OPTIONAL_ARG}") + list(APPEND HEADERS_LOCAL ${HEADERS_TO_FILTER}) + set(HEADERS_TO_FILTER) + endif() + endforeach() + + if(${OS} STREQUAL "win") + source_group("Header Files" FILES ${HEADERS_LOCAL}) + source_group("Source Files" FILES ${SOURCES_LOCAL}) + endif() + set(${SOURCES} ${SOURCES_LOCAL} PARENT_SCOPE) +endfunction() + +function(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) + add_test(NAME ${NAME} + COMMAND ${NAME} --gtest_output=xml:${CMAKE_BINARY_DIR}/test_results/) +endfunction() + +function(create_cotired_test NAME SOURCES LIBS) + add_executable( + ${NAME} + EXCLUDE_FROM_ALL + ${CMAKE_SOURCE_DIR}/src/components/test_main.cc + ${SOURCES} + ) + # TODO: Fix problems with Cotire on Windows and Qt APPLINK-28060 + if(${USE_COTIRE} AND (${CMAKE_SYSTEM_NAME} MATCHES "Linux")) + include(${CMAKE_SOURCE_DIR}/tools/cmake/helpers/cotire.cmake) + cotire(${NAME}) + set(NAME "${NAME}_unity") + endif() + target_link_libraries(${NAME} ${LIBS}) + set_target_properties( + ${NAME} + PROPERTIES + EXCLUDE_FROM_ALL 0 + ) + add_test(NAME ${NAME} + COMMAND ${NAME} --gtest_output=xml:${CMAKE_BINARY_DIR}/test_results/) +endfunction() diff --git a/cmake/Modules/FindGlib-2.0.cmake b/tools/cmake/modules/FindGlib-2.0.cmake index b39da141c9..b39da141c9 100644 --- a/cmake/Modules/FindGlib-2.0.cmake +++ b/tools/cmake/modules/FindGlib-2.0.cmake diff --git a/cmake/Modules/FindGstreamer-1.0.cmake b/tools/cmake/modules/FindGstreamer-1.0.cmake index 8f1d69d01b..8f1d69d01b 100644 --- a/cmake/Modules/FindGstreamer-1.0.cmake +++ b/tools/cmake/modules/FindGstreamer-1.0.cmake diff --git a/cmake/Modules/FindLibXML2.cmake b/tools/cmake/modules/FindLibXML2.cmake index 1daaeb07b7..1daaeb07b7 100644 --- a/cmake/Modules/FindLibXML2.cmake +++ b/tools/cmake/modules/FindLibXML2.cmake diff --git a/cmake/Modules/FindQt5Core.cmake b/tools/cmake/modules/FindQt5Core.cmake index 1a2ad84842..1a2ad84842 100644 --- a/cmake/Modules/FindQt5Core.cmake +++ b/tools/cmake/modules/FindQt5Core.cmake diff --git a/cmake/Modules/FindQt5DBus.cmake b/tools/cmake/modules/FindQt5DBus.cmake index d850010e97..d850010e97 100644 --- a/cmake/Modules/FindQt5DBus.cmake +++ b/tools/cmake/modules/FindQt5DBus.cmake diff --git a/cmake/Modules/FindQt5Qml.cmake b/tools/cmake/modules/FindQt5Qml.cmake index f4bdaa8f71..f4bdaa8f71 100644 --- a/cmake/Modules/FindQt5Qml.cmake +++ b/tools/cmake/modules/FindQt5Qml.cmake diff --git a/cmake/Modules/FindQt5Quick.cmake b/tools/cmake/modules/FindQt5Quick.cmake index 1e16340c2e..1e16340c2e 100644 --- a/cmake/Modules/FindQt5Quick.cmake +++ b/tools/cmake/modules/FindQt5Quick.cmake diff --git a/tools/cmake/modules/FindSDLGstreamer.cmake b/tools/cmake/modules/FindSDLGstreamer.cmake new file mode 100644 index 0000000000..515404d39b --- /dev/null +++ b/tools/cmake/modules/FindSDLGstreamer.cmake @@ -0,0 +1,42 @@ +# - Try to find Gstreamer +# +# GSTREAMER_INCLUDE_DIRECTORY - the Gstreamer include directory +# GSTREAMER_LIBRARIES - the Gstreamer libraries + +get_os(OS) +if(${OS} STREQUAL "posix") + find_package(Gstreamer-1.0 REQUIRED) + find_package(Glib-2.0 REQUIRED) + find_package(PkgConfig) + pkg_check_modules(GLIB2 REQUIRED glib-2.0) + add_definitions(${GLIB2_CFLAGS}) + set(GSTREAMER_INCLUDE_DIRECTORY + ${GSTREAMER_gst_INCLUDE_DIR} + ${GLIB_glib_2_INCLUDE_DIR} + ) + set(GSTREAMER_LIBRARIES + ${GSTREAMER_gstreamer_LIBRARY} + gobject-2.0 + glib-2.0 + ) +elseif(${OS} STREQUAL "win") + get_sdk(SDK) + if(NOT SDK) + if(EXISTS $ENV{SDL_GSTREAMER_DIR}) + set(GSTREAMER_DIR $ENV{SDL_GSTREAMER_DIR}) + else() + message(FATAL_ERROR "Could not find GSTREAMER (Check SDL_GSTREAMER_DIR environment variable)") + endif() + set(GSTREAMER_INCLUDE_DIRECTORY + ${GSTREAMER_DIR}/include/gstreamer-0.10 + ${GSTREAMER_DIR}/include/libxml2 + ${GSTREAMER_DIR}/include/glib-2.0 + ${GSTREAMER_DIR}/lib/glib-2.0/include + ) + set(GSTREAMER_LIBRARIES + ${GSTREAMER_DIR}/lib/gstreamer-0.10.lib + ${GSTREAMER_DIR}/lib/glib-2.0.lib + ${GSTREAMER_DIR}/lib/gobject-2.0.lib + ) + endif() +endif() diff --git a/tools/cmake/modules/FindSDLLibUSB.cmake b/tools/cmake/modules/FindSDLLibUSB.cmake new file mode 100644 index 0000000000..0082d62315 --- /dev/null +++ b/tools/cmake/modules/FindSDLLibUSB.cmake @@ -0,0 +1,19 @@ +# - Try to find libusb +# +# LIBUSB_INCLUDE_DIRECTORY - the libusb include directory +# LIBUSB_LIBRARIES - libusb libraries to link + +get_os(OS) +if(${OS} STREQUAL "posix") + set(LIBUSB_INCLUDE_DIRECTORY /usr/include/libusb-1.0) + set(LIBUSB_LIBRARIES usb-1.0 udev) +elseif(${OS} STREQUAL "win") + get_arch(ARCH) + if(${ARCH} STREQUAL "x86") + set(LIBUSB_DIR ${CMAKE_SOURCE_DIR}/build/libusbx_win_x86) + elseif(${ARCH} STREQUAL "x64") + set(LIBUSB_DIR ${CMAKE_SOURCE_DIR}/build/libusbx_win_x64) + endif() + set(LIBUSB_INCLUDE_DIRECTORY ${LIBUSB_DIR}/libusb) + set(LIBUSB_LIBRARIES ${LIBUSB_DIR}/bin/libusb-1.0.lib) +endif() diff --git a/tools/cmake/modules/FindSDLOpenSSL.cmake b/tools/cmake/modules/FindSDLOpenSSL.cmake new file mode 100644 index 0000000000..c16236a1cb --- /dev/null +++ b/tools/cmake/modules/FindSDLOpenSSL.cmake @@ -0,0 +1,18 @@ +# - Try to find OpenSSL +# +# OPENSSL_INCLUDE_DIRECTORY - the OpenSSL include directory +# OPENSSL_LIBRARIES - the OpenSSL libraries + +get_os(OS) +if(${OS} STREQUAL "posix") + find_package(OpenSSL REQUIRED) +elseif(${OS} STREQUAL "win") + get_arch(ARCH) + if(${ARCH} STREQUAL "x86") + set(OPENSSL_DIR ${CMAKE_SOURCE_DIR}/build/openssl_win_x86) + elseif(${ARCH} STREQUAL "x64") + set(OPENSSL_DIR ${CMAKE_SOURCE_DIR}/build/openssl_win_x64) + endif() + set(OPENSSL_INCLUDE_DIRECTORY ${OPENSSL_DIR}/include) + set(OPENSSL_LIBRARIES ${OPENSSL_DIR}/lib/libeay32.lib ${OPENSSL_DIR}/lib/ssleay32.lib) +endif() diff --git a/cmake/Modules/FindSqlite3.cmake b/tools/cmake/modules/FindSqlite3.cmake index 514ff0b7f9..f6bdcad69c 100644 --- a/cmake/Modules/FindSqlite3.cmake +++ b/tools/cmake/modules/FindSqlite3.cmake @@ -23,7 +23,7 @@ else (SQLITE3_LIBRARIES AND SQLITE3_INCLUDE_DIRS) else (PKG_CONFIG_FOUND) message(WARNING "PkgConfig isn't installed. You need to sure sqlite3>=3.7.11") endif (PKG_CONFIG_FOUND) - + find_path(SQLITE3_INCLUDE_DIR NAMES sqlite3.h diff --git a/cmake/Modules/FindUDev.cmake b/tools/cmake/modules/FindUDev.cmake index cdc8743777..cdc8743777 100644 --- a/cmake/Modules/FindUDev.cmake +++ b/tools/cmake/modules/FindUDev.cmake diff --git a/tools/intergen/test/CMakeLists.txt b/tools/intergen/test/CMakeLists.txt index f8af75c3bf..27d506443e 100644 --- a/tools/intergen/test/CMakeLists.txt +++ b/tools/intergen/test/CMakeLists.txt @@ -76,10 +76,10 @@ if (${HMI_DBUS_API}) ${CMAKE_SOURCE_DIR}/src/components/dbus/include ${DBUS_INCLUDE_DIRS} ) - set (LIBRARIES ${LIBRARIES} DBus) + set (LIBRARIES ${LIBRARIES} dbus) set (SOURCES ${SOURCES} generated_interface_dbus_tests.cc) endif () create_test(test_generated_interface "${SOURCES}" "${LIBRARIES}") -endif()
\ No newline at end of file +endif() |