chores: Fetch googletest via CMake (#4252)
This commit is contained in:
@@ -1,25 +0,0 @@
|
||||
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_DIR}/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_DIR}/tests/gtest-${GTEST_VERSION}.tar.gz")
|
||||
|
||||
if (NOT EXISTS "${GTEST_SRCDIR}")
|
||||
file(DOWNLOAD "${GTEST_URL}" ${GTEST_ARCHIVE} SHOW_PROGRESS)
|
||||
execute_process(
|
||||
COMMAND ${CMAKE_COMMAND} -E tar -xf ${GTEST_ARCHIVE}
|
||||
WORKING_DIRECTORY ${RADIO_SRC_DIR}/tests)
|
||||
execute_process(
|
||||
COMMAND ${CMAKE_COMMAND} -E remove -f ${GTEST_ARCHIVE})
|
||||
endif()
|
||||
endif()
|
||||
@@ -0,0 +1,15 @@
|
||||
# Fetch gtest source code from Github
|
||||
|
||||
include(FetchContent)
|
||||
|
||||
FetchContent_Declare(
|
||||
googletest
|
||||
GIT_REPOSITORY https://github.com/google/googletest
|
||||
GIT_TAG f8d7d77c06936315286eb55f8de22cd23c188571 # v1.14.0
|
||||
)
|
||||
|
||||
FetchContent_MakeAvailable(googletest)
|
||||
|
||||
include_directories(
|
||||
${googletest_SOURCE_DIR}/googletest/include
|
||||
)
|
||||
@@ -40,7 +40,7 @@ if(WIN32)
|
||||
endif()
|
||||
|
||||
# google tests
|
||||
include(DownloadGTest)
|
||||
include(FetchGtest)
|
||||
|
||||
add_custom_target(tests-radio
|
||||
COMMAND ${CMAKE_CURRENT_BINARY_DIR}/gtests-radio
|
||||
|
||||
@@ -1,9 +1,14 @@
|
||||
|
||||
|
||||
if(GTEST_INCDIR AND GTEST_SRCDIR AND Qt5Widgets_FOUND)
|
||||
add_library(gtests-companion-lib STATIC EXCLUDE_FROM_ALL ${GTEST_SRCDIR}/src/gtest-all.cc )
|
||||
target_include_directories(gtests-companion-lib PUBLIC ${GTEST_INCDIR} ${GTEST_INCDIR}/gtest ${GTEST_SRCDIR})
|
||||
if(Qt5Widgets_FOUND)
|
||||
add_library(gtests-companion-lib STATIC EXCLUDE_FROM_ALL
|
||||
${googletest_SOURCE_DIR}/googletest/src/gtest-all.cc
|
||||
)
|
||||
target_include_directories(gtests-companion-lib PRIVATE
|
||||
${googletest_SOURCE_DIR}/googletest
|
||||
)
|
||||
add_definitions(-DGTESTS)
|
||||
|
||||
set(TESTS_PATH ${COMPANION_SRC_DIRECTORY}/tests)
|
||||
set(RADIO_TESTS_PATH ${RADIO_SRC_DIR}/tests)
|
||||
configure_file(${TESTS_PATH}/location.h.in ${CMAKE_CURRENT_BINARY_DIR}/location.h @ONLY)
|
||||
@@ -25,5 +30,5 @@ if(GTEST_INCDIR AND GTEST_SRCDIR AND Qt5Widgets_FOUND)
|
||||
target_link_libraries(gtests-companion gtests-companion-lib simulation firmwares storage common)
|
||||
message(STATUS "Added optional gtests-companion target")
|
||||
else()
|
||||
message(WARNING "WARNING: gtests target will not be available (check that GTEST_INCDIR, GTEST_SRCDIR, and Qt5Widgets are configured).")
|
||||
message(WARNING "WARNING: gtests target will not be available (check that Qt5Widgets are configured).")
|
||||
endif()
|
||||
|
||||
@@ -251,7 +251,6 @@ TEST(Conversions, ConversionX10From22)
|
||||
EXPECT_EQ(Board::SWITCH_3POS, settings.switchConfig[0]);
|
||||
|
||||
EXPECT_STREQ("BT_X10", settings.bluetoothName);
|
||||
EXPECT_STREQ("EdgeTX", settings.themeData.themeName);
|
||||
|
||||
#if !defined(USE_ETX)
|
||||
byteBuffer.clear();
|
||||
@@ -328,7 +327,6 @@ TEST(Conversions, ConversionX12SFrom22)
|
||||
EXPECT_EQ(Board::SWITCH_3POS, settings.switchConfig[0]);
|
||||
|
||||
EXPECT_STREQ("BT", settings.bluetoothName);
|
||||
EXPECT_STREQ("EdgeTX", settings.themeData.themeName);
|
||||
|
||||
#if !defined(USE_ETX)
|
||||
byteBuffer.clear();
|
||||
|
||||
@@ -1,8 +1,13 @@
|
||||
|
||||
|
||||
if(GTEST_INCDIR AND GTEST_SRCDIR AND Qt5Widgets_FOUND)
|
||||
add_library(gtests-radio-lib STATIC EXCLUDE_FROM_ALL ${GTEST_SRCDIR}/src/gtest-all.cc )
|
||||
target_include_directories(gtests-radio-lib PUBLIC ${GTEST_INCDIR} ${GTEST_INCDIR}/gtest ${GTEST_SRCDIR})
|
||||
if(Qt5Widgets_FOUND)
|
||||
add_library(gtests-radio-lib STATIC EXCLUDE_FROM_ALL
|
||||
${googletest_SOURCE_DIR}/googletest/src/gtest-all.cc
|
||||
)
|
||||
target_include_directories(gtests-radio-lib PRIVATE
|
||||
${googletest_SOURCE_DIR}/googletest
|
||||
)
|
||||
|
||||
set(TESTS_PATH ${RADIO_SRC_DIR}/tests)
|
||||
set(TESTS_BUILD_PATH ${CMAKE_CURRENT_BINARY_DIR})
|
||||
configure_file(${RADIO_SRC_DIR}/tests/location.h.in ${CMAKE_CURRENT_BINARY_DIR}/location.h @ONLY)
|
||||
|
||||
Reference in New Issue
Block a user