From 223912bb0fe9b8fa56ad0f06c6076454ac65ed94 Mon Sep 17 00:00:00 2001 From: Nikolay Khlopkov Date: Thu, 13 Mar 2014 19:01:49 +0400 Subject: [PATCH] only find avahi libs if avahi support enabled Signed-off-by: Justin Dickow Conflicts: CMakeLists.txt --- CMakeLists.txt | 182 +++++++++++++++++++++++++++++++++++++++------------------ 1 file changed, 125 insertions(+), 57 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index befbf48..e693a14 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -28,49 +28,101 @@ # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. +#Jenkins integration section +#dont modify this section if you dont know details about integration with Jenkins!!! +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 GSteamer" 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_USB_SUPPORT "libusb support" ON) +option(BUILD_AVAHI_SUPPORT "libavahi support" ON) +option(BUILD_RWLOCK_SUPPORT "rwlocks support" OFF) +option(BUILD_BACKTRACE_SUPPORT "backtrace support" ON) +option(BUILD_TESTS "Possibility to build and run tests" OFF) + +set(OS_TYPE_OPTION "$ENV{OS_TYPE}") +set(DEBUG_OPTION "$ENV{DEBUG}") +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}") + +if (OS_TYPE_OPTION) + if (${OS_TYPE_OPTION} STREQUAL "QNX") + message(STATUS "Jenkins integration: set build process for QNX") + INCLUDE("./qnx_6.5.0_linux_x86.cmake") + #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") + set (HMI "web") + elseif (${HMI_TYPE_OPTION} STREQUAL "NONE") + message(STATUS "Jenkins integration: select HMI none") + set (HMI "no") + else () + message(STATUS "Jenkins integration: select QML HMI none") + set (HMI "qt") + endif() +endif() + +if (MEDIA_MODE_OPTION) + if (${MEDIA_MODE_OPTION} STREQUAL "EXTENDED_MEDIA") + message(STATUS "Jenkins integration: select extended media mode") + set (EXTENDED_MEDIA_MODE ON) + endif() +endif() + +if (DEBUG_OPTION) + if (${DEBUG_OPTION} STREQUAL "DBG_OFF") + message(STATUS "Jenkins integration: build release version") + set (CMAKE_BUILD_TYPE Release) + endif() +endif() + +if (HMI_ADAPTER_OPTION) + if (${HMI_ADAPTER_OPTION} STREQUAL "MESSAGEBROKER") + message(STATUS "Jenkins integration: selected HMI adapter MESSAGEBROKER") + set (HMIADAPTER "messagebroker") + elseif (${HMI_ADAPTER_OPTION} STREQUAL "DBUS") + message(STATUS "Jenkins integration: selected HMI adapter DBUS") + set (HMIADAPTER "dbus") + elseif (${HMI_ADAPTER_OPTION} STREQUAL "MQUEUE") + message(STATUS "Jenkins integration: selected HMI adapter MQUEUE") + set (HMIADAPTER "mqueue") + endif() +endif() + +#Jenkins integration section end + + cmake_minimum_required(VERSION 2.8.0) set (PROJECT smartDeviceLinkCore) project (${PROJECT}) -option(HMI2 "Use Qt HMI" OFF) - 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 .) set(ARCHIVE_OUTPUT_DIRECTORY ./bin) - -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" OFF) -option(BUILD_USB_SUPPORT "libusb support" OFF) -option(BUILD_AVAHI_SUPPORT "libavahi support" OFF) -option(BUILD_RWLOCK_SUPPORT "rwlocks support" OFF) -option(BUILD_BACKTRACE_SUPPORT "backtrace support" ON) - - -if (UNIX) - add_definitions(-DOS_POSIX) - - set(CMAKE_CXX_FLAGS "-g3 -ggdb3 -std=gnu++0x -Werror=return-type -Wuninitialized") - set(CMAKE_CXX_FLAGS_RELEASE "-s -O2") #It will be appended to CMAKE_CXX_FLAGS in release - - if (CMAKE_SYSTEM_NAME STREQUAL "Linux") - add_definitions(-DOS_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) - elseif(CMAKE_SYSTEM_NAME STREQUAL Darwin) - add_definitions(-DOS_MACOSX) - #compile 32-bit 64-bit is having an issue - SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -arch i386") - endif() -endif(UNIX) +set(CMAKE_CXX_FLAGS "-g3 -ggdb3 -std=gnu++0x -Werror=return-type -Wuninitialized --coverage") +set(CMAKE_CXX_FLAGS_RELEASE "-s -O2") #It will be appended to CMAKE_CXX_FLAGS in release + +if (CMAKE_SYSTEM_NAME STREQUAL "Linux") + add_definitions(-DOS_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() if (BUILD_USB_SUPPORT) add_definitions(-DUSB_SUPPORT) @@ -81,10 +133,9 @@ if (BUILD_BT_SUPPORT) endif() if (BUILD_AVAHI_SUPPORT) - # --- Check libavahi-common, libavahi-client availability - find_package(Libavahi) - add_definitions(-DAVAHI_SUPPORT) +# --- Check libavahi-common, libavahi-client availability + find_package(Libavahi) endif() if (BUILD_RWLOCK_SUPPORT) @@ -101,10 +152,6 @@ add_definitions(-DOS_POSIX) IF(CMAKE_C_FLAGS_DEBUG) SET( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DDEBUG" ) add_definitions(-DDEBUG) - - # Enable debug mode in the GNU C++ library, to catch incorrect/undefined behavior - add_definitions(-D_GLIBCXX_DEBUG) - add_definitions(-D_GLIBCXX_DEBUG_PEDANTIC) ELSE (CMAKE_C_FLAGS_DEBUG) SET( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DRELEASE" ) add_definitions(-DRELEASE) @@ -112,24 +159,13 @@ ENDIF(CMAKE_C_FLAGS_DEBUG) if (EXTENDED_MEDIA_MODE) -add_definitions(-DEXTENDED_MEDIA) +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}) endif() -# Find log4cxx -if(UNIX) - find_package(PkgConfig) - pkg_check_modules(LOG4CXX REQUIRED liblog4cxx) - include_directories(${LOG4CXX_INCLUDE_DIRS}) - link_directories(${LOG4CXX_LIBRARY_DIRS}) -elseif(WIN32) -# Add finding log4cxx here -endif(UNIX) - - # --- Interface generator find_package(PythonInterp) @@ -139,7 +175,7 @@ if(NOT PYTHONINTERP_FOUND) message(ERROR "sudo apt-get install python") endif(NOT PYTHONINTERP_FOUND) -if (${HMI2}) +if (HMI STREQUAL "qt") cmake_minimum_required(VERSION 2.8.11) if (CMAKE_SYSTEM_NAME STREQUAL "QNX") set(qt_version "4.8.5") @@ -201,19 +237,52 @@ endmacro(GenerateInterface) macro(create_test NAME SOURCES LIBS) add_executable("${NAME}" ${SOURCES}) target_link_libraries("${NAME}" ${LIBS}) - add_test(${NAME} ${NAME}) + if(CMAKE_SYSTEM_NAME STREQUAL "QNX") + add_test(${NAME} ${CMAKE_SOURCE_DIR}/qnx/remote_run_test.sh ${NAME}) + else() + add_test(${NAME} ${NAME}) + endif() endmacro(create_test) # Building application # --- Type HMI -if (${HMI2}) +if (HMI STREQUAL "qt") set(QT_HMI ON) add_definitions(-DQT_HMI) -else (${HMI2}) +elseif (HMI STREQUAL "web") set(WEB_HMI ON) add_definitions(-DWEB_HMI) -ENDIF (${HMI2}) +else () + set(HMI "no") + add_definitions(-DNO_HMI) +endif () + +if (HMI STREQUAL "qt" AND NOT DEFINED HMIADAPTER) + set(HMIADAPTER "dbus") +endif() +if (HMI STREQUAL "web" AND NOT DEFINED HMIADAPTER) + set(HMIADAPTER "messagebroker") +endif() +if (HMI STREQUAL "no" AND NOT DEFINED HMIADAPTER) + set(HMIADAPTER "mqueue") +endif() + +if (HMIADAPTER STREQUAL "dbus") + set(HMI_DBUS_API ON) + add_definitions(-DDBUS_HMIADAPTER) + add_definitions(-DHMI_DBUS_API) +endif() +if (HMIADAPTER STREQUAL "messagebroker") + set(HMI_JSON_API ON) + add_definitions(-DMESSAGEBROKER_HMIADAPTER) + add_definitions(-DHMI_JSON_API) +endif() +if (HMIADAPTER STREQUAL "mqueue") + set(HMI_JSON_API ON) + add_definitions(-DMQUEUE_HMIADAPTER) + add_definitions(-DHMI_JSON_API) +endif() # --- ThirdPartyLibs add_subdirectory(./src/thirdPartyLibs) @@ -228,7 +297,6 @@ add_subdirectory(./src/components) add_subdirectory(./src/appMain) # Building tests -option(BUILD_TESTS "Possibility to build and run tests" OFF) if(BUILD_TESTS) enable_testing() include(Dart) -- 2.7.4