Skip to content

Commit 5921553

Browse files
committed
test/CMakeLists.txt: Modernized GTest-integration
1 parent 07bbe7f commit 5921553

2 files changed

Lines changed: 12 additions & 4 deletions

File tree

CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -237,6 +237,7 @@ if(MSVC AND DISABLE_MSVC_ITERATOR_CHECK)
237237
endif()
238238

239239
if(BUILD_TESTS)
240+
enable_testing()
240241
add_subdirectory(test)
241242
endif()
242243

test/CMakeLists.txt

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ cmake_minimum_required(VERSION 3.1)
1212
if (CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_SOURCE_DIR)
1313
project(xtensor-test)
1414

15+
enable_testing()
16+
1517
find_package(xtensor REQUIRED CONFIG)
1618
set(XTENSOR_INCLUDE_DIR ${xtensor_INCLUDE_DIRS})
1719
endif ()
@@ -137,7 +139,10 @@ if(DOWNLOAD_GTEST OR GTEST_SRC_DIR)
137139
${CMAKE_CURRENT_BINARY_DIR}/googletest-build EXCLUDE_FROM_ALL)
138140

139141
set(GTEST_INCLUDE_DIRS "${gtest_SOURCE_DIR}/include")
140-
set(GTEST_BOTH_LIBRARIES gtest_main gtest)
142+
add_library(GTest::GTest INTERFACE IMPORTED)
143+
target_link_libraries(GTest::GTest INTERFACE gtest)
144+
add_library(GTest::Main INTERFACE IMPORTED)
145+
target_link_libraries(GTest::Main INTERFACE gtest_main)
141146
else()
142147
find_package(GTest REQUIRED)
143148
endif()
@@ -291,11 +296,12 @@ foreach(filename IN LISTS COMMON_BASE XTENSOR_TESTS)
291296
add_dependencies(${targetname} gtest_main)
292297
endif()
293298
target_include_directories(${targetname} PRIVATE ${XTENSOR_INCLUDE_DIR})
294-
target_link_libraries(${targetname} PRIVATE xtensor ${GTEST_BOTH_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT})
299+
target_link_libraries(${targetname} PRIVATE xtensor GTest::GTest GTest::Main ${CMAKE_THREAD_LIBS_INIT})
295300
add_custom_target(
296301
x${targetname}
297302
COMMAND ${targetname}
298303
DEPENDS ${targetname} ${filename} ${XTENSOR_HEADERS})
304+
add_test(NAME ${targetname} COMMAND ${targetname})
299305
endforeach()
300306

301307
add_executable(test_xtensor_lib ${COMMON_BASE} ${XTENSOR_TESTS} ${TEST_HEADERS} ${XTENSOR_HEADERS})
@@ -320,9 +326,10 @@ if(DOWNLOAD_GTEST OR GTEST_SRC_DIR)
320326
endif()
321327

322328
target_include_directories(test_xtensor_lib PRIVATE ${XTENSOR_INCLUDE_DIR})
323-
target_link_libraries(test_xtensor_lib PRIVATE xtensor ${GTEST_BOTH_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT})
329+
target_link_libraries(test_xtensor_lib PRIVATE xtensor GTest::GTest GTest::Main ${CMAKE_THREAD_LIBS_INIT})
324330

325331
add_custom_target(xtest COMMAND test_xtensor_lib DEPENDS test_xtensor_lib)
332+
add_test(NAME xtest COMMAND test_xtensor_lib)
326333

327334
# Some files will be compiled twice, however compiling common files in a static
328335
# library and linking test_xtensor_lib with it removes half of the tests at
@@ -334,5 +341,5 @@ if(DOWNLOAD_GTEST OR GTEST_SRC_DIR)
334341
add_dependencies(test_xtensor_core_lib gtest_main)
335342
endif()
336343

337-
target_link_libraries(test_xtensor_core_lib PRIVATE xtensor ${GTEST_BOTH_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT})
344+
target_link_libraries(test_xtensor_core_lib PRIVATE xtensor GTest::GTest GTest::Main ${CMAKE_THREAD_LIBS_INIT})
338345
add_custom_target(coverity COMMAND coverity_scan DEPENDS test_xtensor_core_lib)

0 commit comments

Comments
 (0)