From 46ed776c537131e72747538488b213cf45f23e22 Mon Sep 17 00:00:00 2001 From: Justin Dickow Date: Mon, 26 Jan 2015 11:15:48 -0500 Subject: Latest internal release - last bulk merge before pull request and gitflow!? Smoke tested on Ubuntu 12.04 Signed-off-by: Justin Dickow --- CMakeLists.txt | 340 +++++++++++++++++---------------------------------------- 1 file changed, 103 insertions(+), 237 deletions(-) (limited to 'CMakeLists.txt') diff --git a/CMakeLists.txt b/CMakeLists.txt index fe20f7edf9..a9d8be65b4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -38,16 +38,19 @@ set (HMI "web" CACHE STRING "HMI type") option(HMI2 "Use Qt HMI" OFF) option(EXTENDED_MEDIA_MODE "Turn on and off extended Madia Manager features relates to PulseAudio A2DP and GStreamer" OFF) 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_BT_SUPPORT "Bluetooth support" OFF) option(BUILD_USB_SUPPORT "libusb support" OFF) +option(BUILD_AOA_SUPPORT "libaoa support" OFF) +option(BUILD_MME_SUPPORT "Apple devices support" OFF) option(BUILD_AVAHI_SUPPORT "libavahi support" OFF) +option(BUILD_RWLOCK_SUPPORT "rwlocks support" OFF) 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(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(EXTENDED_POLICY_FLAG "Build with specific features and extended functionality" OFF) set(OS_TYPE_OPTION "$ENV{OS_TYPE}") set(DEBUG_OPTION "$ENV{DEBUG}") @@ -59,8 +62,24 @@ set(ENABLE_LOG_OPTION "$ENV{ENABLE_LOG}") set(ARCH_TYPE_OPTION "$ENV{ARCH_TYPE}") set(POLICY_OPTION "$ENV{POLICY_TYPE}") set(SECURITY_OPTION "$ENV{SECURITY_MODE}") -set(SNAPSHOT_TAG "$ENV{SNAPSHOT_TAG}") +add_custom_target(pasa-tarball + COMMAND ${CMAKE_SOURCE_DIR}/tools/Utils/export-customer-specific.sh ${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR} pasa + COMMAND tar -cz -C /tmp/PASA -f ${CMAKE_BINARY_DIR}/pasa.tar.gz . + DEPENDS HMI_API MOBILE_API v4_protocol_v1_2_no_extra +) + +add_custom_target(ford-tarball + COMMAND ${CMAKE_SOURCE_DIR}/tools/Utils/export-customer-specific.sh ${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR} FORD + COMMAND tar -czv -C /tmp/FORD -f ${CMAKE_BINARY_DIR}/ford.tar.gz . + DEPENDS HMI_API MOBILE_API v4_protocol_v1_2_no_extra +) + +add_custom_target(genivi-tarball + COMMAND ${CMAKE_SOURCE_DIR}/tools/Utils/export-customer-specific.sh ${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR} genivi + COMMAND tar -czv -C /tmp/GENIVI -f ${CMAKE_BINARY_DIR}/genivi.tar.gz . + DEPENDS HMI_API MOBILE_API v4_protocol_v1_2_no_extra +) if (ARCH_TYPE_OPTION) if (NOT (${ARCH_TYPE_OPTION} STREQUAL "x86") AND NOT (${ARCH_TYPE_OPTION} STREQUAL "armv7")) @@ -131,6 +150,12 @@ if (ENABLE_LOG_OPTION) endif() endif() +if (POLICY_OPTION) + if (${POLICY_OPTION} STREQUAL "EXTENDED_POLICY") + message(STATUS "Jenkins integration: Extended policy is used") + set (EXTENDED_POLICY_FLAG ON) + endif() +endif() if (SECURITY_OPTION) if (${SECURITY_OPTION} STREQUAL "SEC_OFF") @@ -139,25 +164,8 @@ if (SECURITY_OPTION) endif() endif() -#Jenkins integration section end - -add_custom_target(pasa-tarball - COMMAND ${CMAKE_SOURCE_DIR}/tools/Utils/export-customer-specific.sh ${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR} pasa - COMMAND tar -cz -C /tmp/PASA -f ${CMAKE_BINARY_DIR}/pasa.tar.gz . - DEPENDS HMI_API MOBILE_API v4_protocol_v1_2_no_extra -) - -add_custom_target(ford-tarball - COMMAND ${CMAKE_SOURCE_DIR}/tools/Utils/export-customer-specific.sh ${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR} ford - COMMAND tar -cz -C /tmp/FORD -f ${CMAKE_BINARY_DIR}/ford.tar.gz . - DEPENDS HMI_API MOBILE_API v4_protocol_v1_2_no_extra -) - -add_custom_target(genivi-tarball - COMMAND ${CMAKE_SOURCE_DIR}/tools/Utils/export-customer-specific.sh ${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR} genivi - COMMAND tar -cz -C /tmp/GENIVI -f ${CMAKE_BINARY_DIR}/genivi.tar.gz . -) +#Jenkins integration section end project (${PROJECT}) @@ -169,16 +177,17 @@ set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/") # flag is handled by CMake 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") -if(ENABLE_SANITIZE) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address") -endif() -if(ENABLE_GCOV) +set(CMAKE_CXX_FLAGS "-fPIC -g3 -ggdb3 -std=gnu++0x -Wall -Werror -Wuninitialized") +if (ENABLE_GCOV) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --coverage") add_definitions(-DGCOV_ENABLED) endif() -set(CMAKE_CXX_FLAGS_RELEASE " -DNDEBUG -s -O2") -set(CMAKE_CXX_FLAGS_DEBUG " -DDEBUG -g3 -ggdb3") +set(CMAKE_CXX_FLAGS_RELEASE "-fPIC -s -O2") #It will be appended to CMAKE_CXX_FLAGS in release + +#include_directories( +# ../../../src/components/policy/ +# ../../../src/components/rpc_base/ +#) if (CMAKE_SYSTEM_NAME STREQUAL "Linux") add_definitions(-DOS_LINUX) @@ -210,6 +219,10 @@ if (BUILD_AVAHI_SUPPORT) message(STATUS "Avahi support is enabled") endif() +if (BUILD_RWLOCK_SUPPORT) + add_definitions(-DRWLOCK_SUPPORT) +endif() + if (BUILD_BACKTRACE_SUPPORT) add_definitions(-DBACKTRACE_SUPPORT) endif() @@ -226,6 +239,16 @@ endif() # TODO(AK): check current OS here add_definitions(-DOS_POSIX) +# FIXME(DC): weird logic +IF(CMAKE_C_FLAGS_DEBUG) + SET( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DDEBUG" ) + add_definitions(-DDEBUG) +ELSE (CMAKE_C_FLAGS_DEBUG) + SET( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DRELEASE" ) + add_definitions(-DRELEASE) +ENDIF(CMAKE_C_FLAGS_DEBUG) + + if (EXTENDED_MEDIA_MODE) add_definitions(-DEXTENDED_MEDIA_MODE) # required to find 'glibconfig.h' @@ -377,219 +400,66 @@ 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() +set (is_logger_actual 1) +set (is_dbus_actual 1) +set (is_git_folder 1) +execute_process( + COMMAND /bin/bash -c "cd ${CMAKE_CURRENT_SOURCE_DIR} && git log . 1>/dev/null 2>&1; if [ $? == 0 ]; then exit 0; else exit 1; fi" + RESULT_VARIABLE is_git_folder +) if(ENABLE_LOG) - if(NO_REBUILD_3RD_PARTY_LOGGER) - message(STATUS "Not rebuilding logger.") + #build logger + if(is_git_folder EQUAL 0) + execute_process( + 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=\$(git log --pretty=\"format:%H\" -1 ${3RD_PARTY_SOURCE_DIRECTORY}/apache-log4cxx-0.10.0); if [[ \$VAR1 == \$VAR2 ]]; then exit 0; else exit 1; fi; else exit 1; fi" + RESULT_VARIABLE is_logger_actual + ) + endif() + if(is_logger_actual EQUAL 0) + message(STATUS "Logger is actual.") 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() - + message(STATUS "Need to rebuild logger.") + + add_custom_target(3rd_party_logger + make + WORKING_DIRECTORY ${3RD_PARTY_BINARY_DIRECTORY} + ) + #install logger + #install either to default place with sudo or none-default plase without sudo. + #to install with sudo to none-default place use manual installation + add_custom_target(install-3rd_party_logger + COMMAND /bin/bash -c \"if [ ! ${is_logger_actual} == 0 ]\; then USE_DEFAULT_3RD_PARTY_PATH=${USE_DEFAULT_3RD_PARTY_PATH}\; if [[ \\$$USE_DEFAULT_3RD_PARTY_PATH == "true" ]]\; then sudo make install\; else make install\; fi\; fi\" + DEPENDS 3rd_party_logger + WORKING_DIRECTORY ${3RD_PARTY_BINARY_DIRECTORY} + ) 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.") +#build d-bus + execute_process( + 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=\$(git log --pretty=\"format:%H\" -1 ${3RD_PARTY_SOURCE_DIRECTORY}/dbus-1.7.8); if [[ \$VAR1 == \$VAR2 ]]; then exit 0; else exit 1; fi; else exit 1; fi" + RESULT_VARIABLE is_dbus_actual + ) + if(is_dbus_actual EQUAL 0) + message(STATUS "D-Bus is actual.") 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() - + message(STATUS "Need to rebuild 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 none default plase without sudo. + #to install with sudo to none default place use manual installation + add_custom_target(install-3rd_party_dbus + COMMAND /bin/bash -c \"if [ ! ${is_dbus_actual} == 0 ]\; then USE_DEFAULT_3RD_PARTY_PATH=${USE_DEFAULT_3RD_PARTY_PATH}\; if [[ \\$$USE_DEFAULT_3RD_PARTY_PATH == "true" ]]\; then sudo make install\; else 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() @@ -601,10 +471,6 @@ add_custom_target(install-3rd_party WORKING_DIRECTORY ${3RD_PARTY_BINARY_DIRECTORY} ) -if(ENABLE_LOG) - include_directories ( ${LOG4CXX_INCLUDE_DIRECTORY} ) -endif() - if(ENABLE_SECURITY) add_definitions(-DENABLE_SECURITY) set(SecurityManagerLibrary SecurityManager) @@ -646,7 +512,7 @@ add_subdirectory(./src/plugins) if(BUILD_TESTS) # Directory test is deprecated. Use src/components//test include(Dart) - add_subdirectory(./test) + #add_subdirectory(./test) endif() # Building documentation -- cgit v1.2.1