@@ -12,6 +12,8 @@ cmake_minimum_required(VERSION 3.1)
1212if (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} )
1719endif ()
@@ -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 )
141146else ()
142147 find_package (GTest REQUIRED )
143148endif ()
@@ -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} )
299305endforeach ()
300306
301307add_executable (test_xtensor_lib ${COMMON_BASE} ${XTENSOR_TESTS} ${TEST_HEADERS} ${XTENSOR_HEADERS} )
@@ -320,9 +326,10 @@ if(DOWNLOAD_GTEST OR GTEST_SRC_DIR)
320326endif ()
321327
322328target_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
325331add_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 )
335342endif ()
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} )
338345add_custom_target (coverity COMMAND coverity_scan DEPENDS test_xtensor_core_lib )
0 commit comments