Turn Googletest into a imported target

This commit is contained in:
Carles Fernandez 2019-02-07 17:05:26 +01:00
parent 5519df8924
commit aee9decb54
2 changed files with 77 additions and 77 deletions

View File

@ -465,13 +465,13 @@ if(ENABLE_UNIT_TESTING OR ENABLE_SYSTEM_TESTING)
endif()
if(GTEST_DIR)
message(STATUS "Googletest root folder set at ${GTEST_DIR}")
find_path(LIBGTEST_DEV_DIR NAMES src/gtest-all.cc PATHS ${GTEST_DIR})
find_path(LIBGTEST_DEV_DIR NAMES googletest/src/gtest-all.cc PATHS ${GTEST_DIR})
if(LIBGTEST_DEV_DIR)
message(STATUS "Googletest has been found.")
else()
message(FATAL_ERROR " Googletest source code has not been found at ${GTEST_DIR}.")
endif()
find_path(GTEST_INCLUDE_DIRS NAMES gtest/gtest.h PATHS ${GTEST_DIR}/include)
find_path(GTEST_INCLUDE_DIRS NAMES gtest/gtest.h PATHS ${GTEST_DIR}/googletest/include)
else()
find_path(LIBGTEST_DEV_DIR NAMES src/gtest-all.cc PATHS /usr/src/googletest/googletest /usr/src/gtest /usr/include/gtest /opt/local/src/gtest-1.7.0)
find_path(GTEST_INCLUDE_DIRS NAMES gtest/gtest.h PATHS /usr/include /opt/local/src/gtest-1.7.0/include)

View File

@ -76,14 +76,6 @@ if(NOT ${GTEST_DIR_LOCAL})
)
endif()
# Set up variables
# Set recently downloaded and build Googletest root folder
set(GTEST_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../../thirdparty/gtest/gtest-${GNSSSDR_GTEST_LOCAL_VERSION}/googletest")
# Source code
ExternalProject_Get_Property(gtest-${GNSSSDR_GTEST_LOCAL_VERSION} source_dir)
set(GTEST_INCLUDE_DIR ${source_dir}/googletest/include)
set(GTEST_INCLUDE_DIRECTORIES ${GTEST_DIR}/include ${GTEST_DIR} ${GTEST_DIR}/src)
# Library
ExternalProject_Get_Property(gtest-${GNSSSDR_GTEST_LOCAL_VERSION} binary_dir)
if(OS_IS_MACOSX)
if(CMAKE_GENERATOR STREQUAL Xcode)
@ -91,26 +83,69 @@ if(NOT ${GTEST_DIR_LOCAL})
set(ADD_DEBUG "Debug/")
endif()
endif()
set(GTEST_LIBRARY_PATH "${binary_dir}/googletest/${ADD_DEBUG}${CMAKE_FIND_LIBRARY_PREFIXES}gtest${FINAL_D}${CMAKE_STATIC_LIBRARY_SUFFIX};${binary_dir}/googletest/${CMAKE_FIND_LIBRARY_PREFIXES}gtest_main${FINAL_D}${CMAKE_STATIC_LIBRARY_SUFFIX}")
set(GTEST_LIBRARY gtest-${GNSSSDR_GTEST_LOCAL_VERSION})
set(GTEST_LIBRARIES
${binary_dir}/googletest/${ADD_DEBUG}${CMAKE_FIND_LIBRARY_PREFIXES}gtest${FINAL_D}${CMAKE_STATIC_LIBRARY_SUFFIX}
${binary_dir}/googletest/${ADD_DEBUG}${CMAKE_FIND_LIBRARY_PREFIXES}gtest_main${FINAL_D}${CMAKE_STATIC_LIBRARY_SUFFIX}
Threads::Threads)
set(GTEST_LIB_DIR "${CMAKE_CURRENT_BINARY_DIR}/../../gtest-${GNSSSDR_GTEST_LOCAL_VERSION}/googletest")
if(NOT TARGET GTest::GTest)
add_library(GTest::GTest STATIC IMPORTED)
add_dependencies(GTest::GTest gtest-${GNSSSDR_GTEST_LOCAL_VERSION})
set_target_properties(GTest::GTest PROPERTIES
IMPORTED_LINK_INTERFACE_LANGUAGES "CXX"
IMPORTED_LOCATION "${binary_dir}/googletest/${ADD_DEBUG}${CMAKE_FIND_LIBRARY_PREFIXES}gtest${FINAL_D}${CMAKE_STATIC_LIBRARY_SUFFIX}"
INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_CURRENT_SOURCE_DIR}/../../thirdparty/gtest/gtest-${GNSSSDR_GTEST_LOCAL_VERSION}/googletest/include"
INTERFACE_LINK_LIBRARIES "${binary_dir}/googletest/${ADD_DEBUG}${CMAKE_FIND_LIBRARY_PREFIXES}gtest${FINAL_D}${CMAKE_STATIC_LIBRARY_SUFFIX}"
)
set_target_properties(GTest::GTest PROPERTIES
INTERFACE_LINK_LIBRARIES Threads::Threads
)
endif()
if(NOT TARGET GTest::Main)
add_library(GTest::Main STATIC IMPORTED)
add_dependencies(GTest::Main gtest-${GNSSSDR_GTEST_LOCAL_VERSION})
set_target_properties(GTest::Main PROPERTIES
IMPORTED_LINK_INTERFACE_LANGUAGES "CXX"
IMPORTED_LOCATION "${binary_dir}/googletest/${ADD_DEBUG}${CMAKE_FIND_LIBRARY_PREFIXES}gtest_main${FINAL_D}${CMAKE_STATIC_LIBRARY_SUFFIX}"
INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_CURRENT_SOURCE_DIR}/../../thirdparty/gtest/gtest-${GNSSSDR_GTEST_LOCAL_VERSION}/googletest/include"
INTERFACE_LINK_LIBRARIES "${binary_dir}/googletest/${ADD_DEBUG}${CMAKE_FIND_LIBRARY_PREFIXES}gtest_main${FINAL_D}${CMAKE_STATIC_LIBRARY_SUFFIX}"
)
endif()
else()
if(GTEST_INCLUDE_DIRS)
set(GTEST_INCLUDE_DIRECTORIES ${GTEST_INCLUDE_DIRS} ${LIBGTEST_DEV_DIR})
add_library(gtest ${LIBGTEST_DEV_DIR}/src/gtest-all.cc ${LIBGTEST_DEV_DIR}/src/gtest_main.cc)
set(GTEST_LIBRARIES gtest)
else()
# If the variable GTEST_DIR is defined, we use the existing Googletest
set(GTEST_DIR $ENV{GTEST_DIR})
set(GTEST_INCLUDE_DIRECTORIES ${GTEST_DIR}/include ${GTEST_DIR} ${GTEST_DIR}/src)
add_library(gtest ${GTEST_DIR}/src/gtest-all.cc ${GTEST_DIR}/src/gtest_main.cc)
set(GTEST_LIBRARIES gtest)
add_library(gtest STATIC ${LIBGTEST_DEV_DIR}/googletest/src/gtest-all.cc)
target_include_directories(gtest
PUBLIC
${LIBGTEST_DEV_DIR}/googletest/include
${LIBGTEST_DEV_DIR}/googletest
)
add_library(gtest_main STATIC ${LIBGTEST_DEV_DIR}/googletest/src/gtest_main.cc)
target_include_directories(gtest_main
PUBLIC
${LIBGTEST_DEV_DIR}/googletest/include
)
if(NOT TARGET GTest::GTest)
add_library(GTest::GTest STATIC IMPORTED)
add_dependencies(GTest::GTest gtest)
set_target_properties(GTest::GTest PROPERTIES
IMPORTED_LINK_INTERFACE_LANGUAGES "CXX"
INTERFACE_INCLUDE_DIRECTORIES "${LIBGTEST_DEV_DIR}/googletest/include"
INTERFACE_LINK_LIBRARIES "${CMAKE_CURRENT_BINARY_DIR}/${ADD_DEBUG}${CMAKE_FIND_LIBRARY_PREFIXES}gtest${FINAL_D}${CMAKE_STATIC_LIBRARY_SUFFIX}"
IMPORTED_LOCATION "${CMAKE_CURRENT_BINARY_DIR}/${ADD_DEBUG}${CMAKE_FIND_LIBRARY_PREFIXES}gtest${FINAL_D}${CMAKE_STATIC_LIBRARY_SUFFIX}"
)
set_target_properties(GTest::GTest PROPERTIES
INTERFACE_LINK_LIBRARIES Threads::Threads
)
endif()
if(NOT TARGET GTest::Main)
add_library(GTest::Main STATIC IMPORTED)
add_dependencies(GTest::Main gtest_main)
set_target_properties(GTest::Main PROPERTIES
IMPORTED_LINK_INTERFACE_LANGUAGES "CXX"
INTERFACE_INCLUDE_DIRECTORIES "${LIBGTEST_DEV_DIR}/googletest/include"
INTERFACE_LINK_LIBRARIES "${CMAKE_CURRENT_BINARY_DIR}/${ADD_DEBUG}${CMAKE_FIND_LIBRARY_PREFIXES}gtest_main${FINAL_D}${CMAKE_STATIC_LIBRARY_SUFFIX}"
IMPORTED_LOCATION "${CMAKE_CURRENT_BINARY_DIR}/${ADD_DEBUG}${CMAKE_FIND_LIBRARY_PREFIXES}gtest_main${FINAL_D}${CMAKE_STATIC_LIBRARY_SUFFIX}"
)
endif()
endif()
target_link_libraries(gtest PUBLIC Threads::Threads)
endif()
@ -312,7 +347,6 @@ else()
endif()
set(LIST_INCLUDE_DIRS
${GTEST_INCLUDE_DIRECTORIES}
${CMAKE_SOURCE_DIR}/src/tests/common-files
${GNSS_SDR_TEST_OPTIONAL_HEADERS}
)
@ -331,6 +365,7 @@ if(ENABLE_UNIT_TESTING)
Boost::chrono
Boost::filesystem
Boost::system
Boost::thread
Armadillo::armadillo
Gflags::gflags
Glog::glog
@ -341,7 +376,7 @@ if(ENABLE_UNIT_TESTING)
Matio::matio
Volk::volk
Volkgnsssdr::volkgnsssdr
${GTEST_LIBRARIES}
GTest::GTest GTest::Main
gnss_sp_libs
gnss_rx
gnss_system_parameters
@ -362,9 +397,6 @@ if(ENABLE_UNIT_TESTING)
system_testing_lib
${GNSS_SDR_TEST_OPTIONAL_LIBS}
)
if(NOT ${GTEST_DIR_LOCAL})
add_dependencies(run_tests gtest-${GNSSSDR_GTEST_LOCAL_VERSION})
endif()
if(ENABLE_UNIT_TESTING_EXTRA)
target_link_libraries(run_tests PUBLIC Gpstk::gpstk)
endif()
@ -390,7 +422,7 @@ if(ENABLE_FPGA)
${Boost_LIBRARIES}
Gflags::gflags
Glog::glog
${GTEST_LIBRARIES}
GTest::GTest GTest::Main
Gnuradio::runtime
Gnuradio::blocks
Armadillo::armadillo
@ -424,12 +456,6 @@ function(add_system_test executable)
endif()
add_executable(${executable} ${SYSTEM_TEST_SOURCES})
if(NOT ${GTEST_DIR_LOCAL})
add_dependencies(${executable} gtest-${GNSSSDR_GTEST_LOCAL_VERSION})
else()
add_dependencies(${executable} gtest)
endif()
target_include_directories(${executable} PUBLIC ${OPT_INCLUDES_} ${CMAKE_SOURCES_DIR}/src/algorithms/libs)
target_link_libraries(${executable} PUBLIC ${OPT_LIBS_} gnss_sp_libs)
@ -460,7 +486,7 @@ if(ENABLE_SYSTEM_TESTING)
#### TTFF
set(OPT_LIBS_ ${Boost_LIBRARIES} Threads::Threads Gflags::gflags Glog::glog
Gnuradio::runtime ${GTEST_LIBRARIES}
Gnuradio::runtime GTest::GTest GTest::Main
Gnuradio::blocks Gnuradio::filter
Gnuradio::analog gnss_sp_libs
gnss_rx gnss_system_parameters)
@ -469,7 +495,7 @@ if(ENABLE_SYSTEM_TESTING)
if(ENABLE_SYSTEM_TESTING_EXTRA)
#### POSITION_TEST
set(OPT_LIBS_ ${Boost_LIBRARIES} Threads::Threads Gflags::gflags Glog::glog
${GTEST_LIBRARIES} Gnuradio::runtime
GTest::GTest GTest::Main Gnuradio::runtime
Gnuradio::blocks Gnuradio::filter
Gnuradio::analog Matio::matio Volkgnsssdr::volkgnsssdr
gnss_sp_libs gnss_rx gnss_system_parameters
@ -505,7 +531,7 @@ target_link_libraries(flowgraph_test PUBLIC ${Boost_LIBRARIES}
Gflags::gflags
Glog::glog
Gnuradio::runtime
${GTEST_LIBRARIES}
GTest::GTest GTest::Main
gnss_sp_libs
gnss_rx
gnss_system_parameters
@ -519,11 +545,7 @@ target_link_libraries(flowgraph_test PUBLIC ${Boost_LIBRARIES}
target_include_directories(flowgraph_test PUBLIC ${CMAKE_SOURCE_DIR}/src/algorithms/libs)
add_test(flowgraph_test flowgraph_test)
if(NOT ${GTEST_DIR_LOCAL})
add_dependencies(flowgraph_test gtest-${GNSSSDR_GTEST_LOCAL_VERSION})
else()
add_dependencies(flowgraph_test gtest)
endif()
set_property(TEST flowgraph_test PROPERTY TIMEOUT 30)
#########################################################
@ -541,7 +563,7 @@ add_executable(gnss_block_test ${CMAKE_CURRENT_SOURCE_DIR}/single_test_main.cc
target_link_libraries(gnss_block_test PUBLIC ${Boost_LIBRARIES}
Gflags::gflags
Glog::glog
${GTEST_LIBRARIES}
GTest::GTest GTest::Main
Gnuradio::runtime
Gnuradio::blocks
Gnuradio::filter
@ -557,11 +579,6 @@ target_link_libraries(gnss_block_test PUBLIC ${Boost_LIBRARIES}
)
target_include_directories(gnss_block_test PUBLIC ${CMAKE_SOURCE_DIR}/src/algorithms/libs)
add_test(gnss_block_test gnss_block_test)
if(NOT ${GTEST_DIR_LOCAL})
add_dependencies(gnss_block_test gtest-${GNSSSDR_GTEST_LOCAL_VERSION})
else()
add_dependencies(gnss_block_test gtest)
endif()
set_property(TEST gnss_block_test PROPERTY TIMEOUT 60)
#########################################################
@ -572,7 +589,7 @@ add_executable(gnuradio_block_test ${CMAKE_CURRENT_SOURCE_DIR}/single_test_main.
target_link_libraries(gnuradio_block_test ${Boost_LIBRARIES}
Gflags::gflags
Glog::glog
${GTEST_LIBRARIES}
GTest::GTest GTest::Main
Gnuradio::runtime
Gnuradio::blocks
Gnuradio::filter
@ -584,11 +601,6 @@ target_link_libraries(gnuradio_block_test ${Boost_LIBRARIES}
Volkgnsssdr::volkgnsssdr
)
add_test(gnuradio_block_test gnuradio_block_test)
if(NOT ${GTEST_DIR_LOCAL})
add_dependencies(gnuradio_block_test gtest-${GNSSSDR_GTEST_LOCAL_VERSION})
else()
add_dependencies(gnuradio_block_test gtest)
endif()
set_property(TEST gnuradio_block_test PROPERTY TIMEOUT 30)
#########################################################
@ -601,7 +613,7 @@ target_link_libraries(matio_test
Gflags::gflags
Glog::glog
gnss_rx
${GTEST_LIBRARIES}
GTest::GTest GTest::Main
gnss_system_parameters
Matio::matio
)
@ -620,7 +632,7 @@ target_link_libraries(acq_test
${Boost_LIBRARIES}
Gflags::gflags
Glog::glog
${GTEST_LIBRARIES}
GTest::GTest GTest::Main
Gnuradio::runtime
Gnuradio::blocks
Gnuradio::filter
@ -635,11 +647,7 @@ target_link_libraries(acq_test
)
add_test(acq_test acq_test)
if(NOT ${GTEST_DIR_LOCAL})
add_dependencies(acq_test acq_test gtest-${GNSSSDR_GTEST_LOCAL_VERSION})
else()
add_dependencies(acq_test acq_test gtest)
endif()
set_property(TEST acq_test PROPERTY TIMEOUT 30)
#########################################################
@ -656,7 +664,7 @@ target_link_libraries(trk_test
${Boost_LIBRARIES}
Gflags::gflags
Glog::glog
${GTEST_LIBRARIES}
GTest::GTest GTest::Main
Gnuradio::runtime
Gnuradio::blocks
Gnuradio::filter
@ -669,11 +677,7 @@ target_link_libraries(trk_test
Volkgnsssdr::volkgnsssdr
)
add_test(trk_test trk_test)
if(NOT ${GTEST_DIR_LOCAL})
add_dependencies(trk_test gtest-${GNSSSDR_GTEST_LOCAL_VERSION})
else()
add_dependencies(trk_test gtest)
endif()
set_property(TEST trk_test PROPERTY TIMEOUT 30)
@ -690,16 +694,12 @@ if(NOT ENABLE_PACKAGING)
Glog::glog
signal_source_adapters
gnss_sp_libs
${GTEST_LIBRARIES}
GTest::GTest GTest::Main
gnss_rx
)
add_test(control_thread_test control_thread_test)
if(NOT ${GTEST_DIR_LOCAL})
add_dependencies(control_thread_test gtest-${GNSSSDR_GTEST_LOCAL_VERSION})
else()
add_dependencies(control_thread_test gtest)
endif()
set_property(TEST control_thread_test PROPERTY TIMEOUT 30)
endif()