Переглянути джерело

CMake: Create an INTERFACE target for Catch

Yuri Kunde Schlesner 9 роки тому
батько
коміт
cebdae6c92
2 змінених файлів з 6 додано та 4 видалено
  1. 4 0
      externals/CMakeLists.txt
  2. 2 4
      src/tests/CMakeLists.txt

+ 4 - 0
externals/CMakeLists.txt

@@ -1,3 +1,7 @@
+# Catch
+add_library(catch-single-include INTERFACE)
+target_include_directories(catch-single-include INTERFACE catch/single_include)
+
 # Xbyak
 if (ARCHITECTURE_x86_64)
     add_library(xbyak INTERFACE)

+ 2 - 4
src/tests/CMakeLists.txt

@@ -10,11 +10,9 @@ set(HEADERS
 
 create_directory_groups(${SRCS} ${HEADERS})
 
-include_directories(../../externals/catch/single_include/)
-
 add_executable(tests ${SRCS} ${HEADERS})
 target_link_libraries(tests PRIVATE common core)
 target_link_libraries(tests PRIVATE glad) # To support linker work-around
-target_link_libraries(tests PRIVATE ${PLATFORM_LIBRARIES} Threads::Threads)
+target_link_libraries(tests PRIVATE ${PLATFORM_LIBRARIES} catch-single-include Threads::Threads)
 
-add_test(NAME tests COMMAND $<TARGET_FILE:tests>)
+add_test(NAME tests COMMAND tests)