Browse Source

Correct how google test is used.

I think it was working before because the other computer had gtest system installed.

Bonus: it is now also integrated with CTest
Godzil 4 years ago
parent
commit
514bd649c1
2 changed files with 14 additions and 14 deletions
  1. 8 13
      CMakeLists.txt
  2. 6 1
      tests/CMakeLists.txt

+ 8 - 13
CMakeLists.txt

@@ -6,17 +6,6 @@ project(DoRayMe)
 
 set(CMAKE_CXX_STANDARD 11)
 
-
-#Add external projects that directly need to be builded
-ExternalProject_Add(googletest
-        SOURCE_DIR        "${CMAKE_CURRENT_SOURCE_DIR}/external/googletest"
-        BINARY_DIR        "${CMAKE_CURRENT_BINARY_DIR}/external/googletest"
-        CONFIGURE_COMMAND ""
-        BUILD_COMMAND     ""
-        INSTALL_COMMAND   ""
-        TEST_COMMAND      ""
-)
-
 # LodePNG don't make a .a or .so, so let's build a library here
 add_library(LodePNG STATIC)
 set(LODEPNG_INCLUDE_FOLDER ${CMAKE_CURRENT_SOURCE_DIR}/external/lodepng)
@@ -25,5 +14,11 @@ target_sources(LodePNG PRIVATE external/lodepng/lodepng.cpp external/lodepng/lod
 
 # Main app
 add_subdirectory(source)
-# Unit Tests
-add_subdirectory(tests)
+
+option(PACKAGE_TESTS "Build the tests" ON)
+if(PACKAGE_TESTS)
+    enable_testing()
+    include(GoogleTest)
+	 add_subdirectory("${PROJECT_SOURCE_DIR}/external/googletest" "external/googletest")
+    add_subdirectory(tests)
+endif()

+ 6 - 1
tests/CMakeLists.txt

@@ -9,4 +9,9 @@ add_executable(testMyRays)
 target_include_directories(testMyRays PUBLIC ${gtest_SOURCE_DIR}/include ${gtest_SOURCE_DIR})
 target_include_directories(testMyRays PUBLIC ../source/include)
 target_sources(testMyRays PRIVATE ${TESTS_SRC})
-target_link_libraries(testMyRays gtest gtest_main rayonnement Threads::Threads)
+target_link_libraries(testMyRays gtest gtest_main rayonnement Threads::Threads)
+
+gtest_discover_tests(testMyRays
+   WORKING_DIRECTORY ${PROJECT_DIR}
+   PROPERTIES VS_DEBUGGER_WORKING_DIRECTORY "${PROJECT_DIR}"
+   )