diff options
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r-- | CMakeLists.txt | 270 |
1 files changed, 137 insertions, 133 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index c42cf545b4..9b2b200d20 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -40,16 +40,15 @@ option(EXTENDED_MEDIA_MODE "Turn on and off extended Madia Manager features rela option(BUILD_SHARED_LIBS "Build all libraries as shared (if ON) or static (if OFF)" OFF) option(BUILD_BT_SUPPORT "Bluetooth support" ON) option(BUILD_USB_SUPPORT "libusb support" ON) -option(BUILD_AVAHI_SUPPORT "libavahi support" ON) option(BUILD_BACKTRACE_SUPPORT "backtrace support" ON) option(BUILD_TESTS "Possibility to build and run tests" OFF) -option(TIME_TESTER "Enable profiling time test util" ON) +option(TELEMETRY_MONITOR "Enable profiling time test util" ON) option(ENABLE_LOG "Logging feature" ON) option(ENABLE_GCOV "gcov code coverage feature" OFF) option(ENABLE_SANITIZE "Sanitize tool" OFF) option(ENABLE_SECURITY "Security Ford protocol protection" ON) option(ENABLE_HMI_PTU_DECRYPTION "Policy table update parsed by hmi" ON) -option(ENABLE_EXTENDED_POLICY "Turns extended flow which requires embedded system interaction" OFF) +option(ENABLE_EXTENDED_POLICY "Turns extended flow which requires embedded system interaction" ON) set(OS_TYPE_OPTION "$ENV{OS_TYPE}") set(DEBUG_OPTION "$ENV{DEBUG}") @@ -57,6 +56,7 @@ set(HMI_TYPE_OPTION "$ENV{HMI_TYPE}") set(TARGET_OPTION "$ENV{TARGET}") set(MEDIA_MODE_OPTION "$ENV{MEDIA_MODE}") set(HMI_ADAPTER_OPTION "$ENV{HMI_ADAPTER}") +set(ENABLE_TESTS_OPTION "$ENV{ENABLE_TESTS}") set(ENABLE_LOG_OPTION "$ENV{ENABLE_LOG}") set(ARCH_TYPE_OPTION "$ENV{ARCH_TYPE}") set(POLICY_OPTION "$ENV{POLICY_TYPE}") @@ -64,7 +64,8 @@ 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}) if (ARCH_TYPE_OPTION) if (NOT (${ARCH_TYPE_OPTION} STREQUAL "x86") AND NOT (${ARCH_TYPE_OPTION} STREQUAL "armv7")) @@ -75,19 +76,6 @@ else () set(ARCH_TYPE_OPTION "x86") endif() -set(objcopy "objcopy") -if (OS_TYPE_OPTION) - if (${OS_TYPE_OPTION} STREQUAL "QNX") - message(STATUS "Jenkins integration: set build process for QNX") - #do not use include after project() command. - #Such usecase results in infinite cycle of reinitialization of compiler and other variables - INCLUDE("./qnx_6.5.0_linux_x86.cmake") - set(objcopy "nto${ARCH_TYPE_OPTION}-objcopy") - #tests are not supported yet for QNX build - set (BUILD_TESTS OFF) - endif() -endif() - if (HMI_TYPE_OPTION) if (${HMI_TYPE_OPTION} STREQUAL "HTML5") message(STATUS "Jenkins integration: select HTML5 HMI") @@ -135,6 +123,15 @@ if (ENABLE_LOG_OPTION) endif() endif() +if (ENABLE_TESTS_OPTION) + if (${ENABLE_TESTS_OPTION} STREQUAL "TESTS_OFF") + message(STATUS "Jenkins integration: Unit tests is turned off") + set (BUILD_TESTS OFF) + elseif(${ENABLE_TESTS_OPTION} STREQUAL "TESTS_ON") + message(STATUS "Jenkins integration: Unit tests is turned on") + set (BUILD_TESTS ON) + endif() +endif() if (SECURITY_OPTION) if (${SECURITY_OPTION} STREQUAL "SEC_OFF") @@ -143,6 +140,19 @@ if (SECURITY_OPTION) endif() endif() +set(objcopy "objcopy") +if (OS_TYPE_OPTION) + if (${OS_TYPE_OPTION} STREQUAL "QNX") + message(STATUS "Jenkins integration: set build process for QNX") + #do not use include after project() command. + #Such usecase results in infinite cycle of reinitialization of compiler and other variables + INCLUDE("./qnx_6.5.0_linux_x86.cmake") + set(objcopy "nto${ARCH_TYPE_OPTION}-objcopy") + #tests are not supported yet for QNX build + set (BUILD_TESTS OFF) + endif() +endif() + #Jenkins integration section end add_custom_target(pasa-tarball @@ -174,7 +184,7 @@ set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/") set(CMAKE_INSTALL_PREFIX ${CMAKE_CURRENT_BINARY_DIR}) set(ARCHIVE_OUTPUT_DIRECTORY ./bin) -set(CMAKE_CXX_FLAGS "-fPIC -std=gnu++0x -Wall -Werror -Wuninitialized -Wvla") +set(CMAKE_CXX_FLAGS "-fPIC -std=gnu++0x -Wall -Werror -Wno-deprecated-declarations -Wuninitialized -Wvla") if(ENABLE_SANITIZE) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address") @@ -191,7 +201,6 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux") elseif(CMAKE_SYSTEM_NAME STREQUAL "QNX") add_definitions(-DOS_QNX) SET(BUILD_BT_SUPPORT OFF) - SET(BUILD_AVAHI_SUPPORT OFF) SET(BUILD_BACKTRACE_SUPPORT OFF) SET(EXTENDED_MEDIA_MODE OFF) endif() @@ -209,14 +218,6 @@ if (BUILD_BT_SUPPORT) message(STATUS "Bluetooth support is enabled") endif() - -if (BUILD_AVAHI_SUPPORT) - add_definitions(-DAVAHI_SUPPORT) -# --- Check libavahi-common, libavahi-client availability - find_package(Libavahi) - message(STATUS "Avahi support is enabled") -endif() - if (BUILD_BACKTRACE_SUPPORT) add_definitions(-DBACKTRACE_SUPPORT) endif() @@ -226,8 +227,8 @@ if(ENABLE_LOG) set(install-3rd_party_logger "install-3rd_party_logger") endif() -if (TIME_TESTER) - add_definitions(-DTIME_TESTER) +if (TELEMETRY_MONITOR) + add_definitions(-DTELEMETRY_MONITOR) endif() if (ENABLE_EXTENDED_POLICY) @@ -381,6 +382,9 @@ endif() include_directories( ${COMPONENTS_DIR}/include ${COMPONENTS_DIR}/protocol/include +if (BUILD_TESTS) + ${COMPONENTS_DIR}/include/test +endif () ) # --- 3rd party libs @@ -412,23 +416,23 @@ if(ENABLE_LOG) else() if(FORCE_3RD_PARTY_LOGGER) message(STATUS "Force to rebuild logger.") - + #build logger add_custom_target(3rd_party_logger - make + 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\; + 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} @@ -436,74 +440,74 @@ if(ENABLE_LOG) 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}'\)\; + 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\)\; + 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\; - 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\; + 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}'\)\; + 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\)\; + 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 + 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 + 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 + 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 + sudo -k \; + sudo make install\; + else cd ${3RD_PARTY_BINARY_DIRECTORY}\; - make install\; + 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() @@ -514,23 +518,23 @@ if (HMIADAPTER STREQUAL "dbus") 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\; + 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} @@ -538,72 +542,72 @@ if (HMIADAPTER STREQUAL "dbus") 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}'\)\; + 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\)\; + 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\; - 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\; + 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}'\)\; + 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\)\; + 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 + 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 + 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 + 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 + sudo -k \; + sudo make install\; + else cd ${3RD_PARTY_BINARY_DIRECTORY}\; - make install\; - fi\; + 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() @@ -669,8 +673,8 @@ if(BUILD_TESTS) include(Dart) #add_subdirectory(./test) endif() - -# Building documentation + +# Building documentation # At first creating directory for generated documentation. Unfortunately doxygen # cannot generate it byself |