Commit 8e87df2a6cb82ec30cf14cd2743f7c8dbbddb76d

Authored by Henry Fredrick Schreiner
Committed by Henry Schreiner
1 parent 10772e5d

Adding GTest improvments

CHANGELOG.md
@@ -12,6 +12,8 @@ @@ -12,6 +12,8 @@
12 * Subcommand now support groups [#46](https://github.com/CLIUtils/CLI11/pull/46) 12 * Subcommand now support groups [#46](https://github.com/CLIUtils/CLI11/pull/46)
13 * `CLI::RuntimeError` added, for easy exit with error codes [#45](https://github.com/CLIUtils/CLI11/pull/45) 13 * `CLI::RuntimeError` added, for easy exit with error codes [#45](https://github.com/CLIUtils/CLI11/pull/45)
14 * The clang-format script is now no longer "hidden" [#48](https://github.com/CLIUtils/CLI11/pull/48) 14 * The clang-format script is now no longer "hidden" [#48](https://github.com/CLIUtils/CLI11/pull/48)
  15 +* The order is now preserved for subcommands (list and callbacks) [#49](https://github.com/CLIUtils/CLI11/pull/49)
  16 +* Tests now run individually, utilizing CMake 3.10 additions if possible
15 17
16 18
17 ## Version 1.2 19 ## Version 1.2
cmake/AddGoogletest.cmake
@@ -32,11 +32,29 @@ set_target_properties(check PROPERTIES FOLDER "Scripts") @@ -32,11 +32,29 @@ set_target_properties(check PROPERTIES FOLDER "Scripts")
32 # More modern way to do the last line, less messy but needs newish CMake: 32 # More modern way to do the last line, less messy but needs newish CMake:
33 # target_include_directories(gtest INTERFACE ${gtest_SOURCE_DIR}/include) 33 # target_include_directories(gtest INTERFACE ${gtest_SOURCE_DIR}/include)
34 34
  35 +
  36 +if(GOOGLE_TEST_INDIVIDUAL)
  37 + include(GoogleTest)
  38 +endif()
  39 +
35 # Target must already exist 40 # Target must already exist
36 macro(add_gtest TESTNAME) 41 macro(add_gtest TESTNAME)
37 target_link_libraries(${TESTNAME} PUBLIC gtest gmock gtest_main) 42 target_link_libraries(${TESTNAME} PUBLIC gtest gmock gtest_main)
38 - add_test(${TESTNAME} ${TESTNAME})  
39 - set_target_properties(${TESTNAME} PROPERTIES FOLDER "Tests") 43 +
  44 + if(GOOGLE_TEST_INDIVIDUAL)
  45 + if(CMAKE_VERSION VERSION_LESS 3.10)
  46 + gtest_add_tests(TARGET ${TESTNAME}
  47 + TEST_LIST TmpTestList)
  48 + set_tests_properties(${TmpTestList} PROPERTIES FOLDER "Tests")
  49 + else()
  50 + gtest_discover_tests(${TESTNAME}
  51 + PROPERTIES FOLDER "Tests")
  52 + endif()
  53 + else()
  54 + add_test(${TESTNAME} ${TESTNAME})
  55 + set_target_properties(${TESTNAME} PROPERTIES FOLDER "Tests")
  56 + endif()
  57 +
40 endmacro() 58 endmacro()
41 59
42 mark_as_advanced( 60 mark_as_advanced(
tests/CMakeLists.txt
  1 +set(GOOGLE_TEST_INDIVIDUAL ON)
1 include(AddGoogletest) 2 include(AddGoogletest)
2 3
3 set(CLI_TESTS 4 set(CLI_TESTS