From d399a75bf66f6584e99cc43e06148997b9704b3e Mon Sep 17 00:00:00 2001 From: Raphael Coeffic Date: Mon, 2 Sep 2019 14:36:13 +0200 Subject: [PATCH] download googletest automatically (#6697) and a small fix for finding QT5 installed via brew on OSX --- CMakeLists.txt | 35 ++++++++++++++++++++++++++++++ companion/src/tests/CMakeLists.txt | 3 --- radio/src/tests/CMakeLists.txt | 3 --- 3 files changed, 35 insertions(+), 6 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 69c809f6e..802138652 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -79,6 +79,14 @@ endif() option(DISABLE_COMPANION "Disable building companion and simulators" OFF) if(NOT DISABLE_COMPANION) # FIXME cosmetics/style + +if(APPLE AND EXISTS /usr/local/opt/qt5) + # Homebrew installs Qt5 (up to at least 5.9.1) in + # /usr/local/qt5, ensure it can be found by CMake since + # it is not in the default /usr/local prefix. + list(APPEND CMAKE_PREFIX_PATH "/usr/local/opt/qt5") +endif() + find_package(Qt5Core) find_package(Qt5Widgets) find_package(Qt5Xml) @@ -189,6 +197,33 @@ if(WIN32) endif() endif() +set(GTEST_ROOT /usr CACHE STRING "Base path to Google Test headers and source.") + +find_path(GTEST_INCDIR gtest/gtest.h HINTS "${GTEST_ROOT}/include" DOC "Path to Google Test header files folder ('gtest/gtest.h').") +find_path(GTEST_SRCDIR src/gtest-all.cc HINTS "${GTEST_ROOT}" "${GTEST_ROOT}/src/gtest" DOC "Path of Google Test 'src' folder.") + +if(NOT GTEST_INCDIR OR NOT GTEST_SRCDIR) + message(STATUS "Googletest will be downloaded") + + set(GTEST_VERSION 1.8.1) + + set(GTEST_SRCDIR "${RADIO_SRC_DIRECTORY}/tests/googletest-release-${GTEST_VERSION}/googletest") + set(GTEST_INCDIR "${GTEST_SRCDIR}/include") + + set(GTEST_URL "https://github.com/google/googletest/archive/release-${GTEST_VERSION}.tar.gz") + set(GTEST_ARCHIVE "${RADIO_SRC_DIRECTORY}/tests/gtest-${GTEST_VERSION}.tar.gz") + + if (NOT EXISTS "${GTEST_ARCHIVE}") + file(DOWNLOAD "${GTEST_URL}" ${GTEST_ARCHIVE} SHOW_PROGRESS) + endif() + + if (NOT EXISTS "${GTEST_SRCDIR}") + execute_process( + COMMAND ${CMAKE_COMMAND} -E tar -xf ${GTEST_ARCHIVE} + WORKING_DIRECTORY ${RADIO_SRC_DIRECTORY}/tests) + endif() +endif() + add_subdirectory(${RADIO_SRC_DIRECTORY}) if(Qt5Core_FOUND AND NOT DISABLE_COMPANION) diff --git a/companion/src/tests/CMakeLists.txt b/companion/src/tests/CMakeLists.txt index a7666afeb..e66b41fd2 100644 --- a/companion/src/tests/CMakeLists.txt +++ b/companion/src/tests/CMakeLists.txt @@ -1,7 +1,4 @@ -set(GTEST_ROOT /usr CACHE STRING "Base path to Google Test headers and source.") -find_path(GTEST_INCDIR gtest/gtest.h HINTS "${GTEST_ROOT}/include" DOC "Path to Google Test header files folder ('gtest/gtest.h').") -find_path(GTEST_SRCDIR src/gtest-all.cc HINTS "${GTEST_ROOT}" "${GTEST_ROOT}/src/gtest" DOC "Path of Google Test 'src' folder.") if(GTEST_INCDIR AND GTEST_SRCDIR AND Qt5Widgets_FOUND) add_library(gtests-companion-lib STATIC EXCLUDE_FROM_ALL ${GTEST_SRCDIR}/src/gtest-all.cc ) diff --git a/radio/src/tests/CMakeLists.txt b/radio/src/tests/CMakeLists.txt index 73e1b34b0..e381cb808 100644 --- a/radio/src/tests/CMakeLists.txt +++ b/radio/src/tests/CMakeLists.txt @@ -1,7 +1,4 @@ -set(GTEST_ROOT /usr CACHE STRING "Base path to Google Test headers and source.") -find_path(GTEST_INCDIR gtest/gtest.h HINTS "${GTEST_ROOT}/include" DOC "Path to Google Test header files folder ('gtest/gtest.h').") -find_path(GTEST_SRCDIR src/gtest-all.cc HINTS "${GTEST_ROOT}" "${GTEST_ROOT}/src/gtest" DOC "Path of Google Test 'src' folder.") if(GTEST_INCDIR AND GTEST_SRCDIR AND Qt5Widgets_FOUND) add_library(gtests-radio-lib STATIC EXCLUDE_FROM_ALL ${GTEST_SRCDIR}/src/gtest-all.cc )