Merge branch 'example/fetch' into 'master'
feat: new example See merge request CLIUtils/modern-cmake!40
This commit is contained in:
commit
a0e2335253
@ -14,7 +14,7 @@ For example, to download Catch2:
|
||||
FetchContent_Declare(
|
||||
catch
|
||||
GIT_REPOSITORY https://github.com/catchorg/Catch2.git
|
||||
GIT_TAG v2.9.1
|
||||
GIT_TAG v2.13.0
|
||||
)
|
||||
|
||||
# CMake 3.14+
|
||||
@ -48,4 +48,6 @@ endif()
|
||||
|
||||
Now you have the CMake 3.14+ syntax in CMake 3.11+.
|
||||
|
||||
See the example [here](https://gitlab.com/CLIUtils/modern-cmake/-/tree/master/examples/fetch).
|
||||
|
||||
[FetchContent]: https://cmake.org/cmake/help/latest/module/FetchContent.html
|
||||
|
@ -1,4 +1,4 @@
|
||||
cmake_minimum_required(VERSION 3.11...3.16)
|
||||
cmake_minimum_required(VERSION 3.11...3.18)
|
||||
|
||||
project(ModernCMakeExamples)
|
||||
set(MODERN_CMAKE_BUILD_TESTING ON)
|
||||
@ -7,6 +7,7 @@ include(CTest)
|
||||
|
||||
add_subdirectory(simple-project)
|
||||
add_subdirectory(extended-project)
|
||||
add_subdirectory(fetch)
|
||||
|
||||
add_subdirectory(root-usefile)
|
||||
add_subdirectory(root-simple)
|
||||
|
@ -1,9 +1,9 @@
|
||||
# Testing library
|
||||
FetchContent_Declare(
|
||||
catch2
|
||||
catch
|
||||
GIT_REPOSITORY https://github.com/catchorg/Catch2.git
|
||||
GIT_TAG v2.9.1)
|
||||
FetchContent_MakeAvailable(catch2)
|
||||
FetchContent_MakeAvailable(catch)
|
||||
# Adds Catch2::Catch2
|
||||
|
||||
# Tests need to be added as executables first
|
||||
|
19
examples/fetch/CMakeLists.txt
Normal file
19
examples/fetch/CMakeLists.txt
Normal file
@ -0,0 +1,19 @@
|
||||
cmake_minimum_required(VERSION 3.14...3.18)
|
||||
|
||||
project(FetchExample LANGUAGES CXX)
|
||||
|
||||
include(FetchContent)
|
||||
include(CTest)
|
||||
|
||||
FetchContent_Declare(
|
||||
catch
|
||||
GIT_REPOSITORY https://github.com/catchorg/Catch2.git
|
||||
GIT_TAG v2.13.0
|
||||
)
|
||||
|
||||
# CMake 3.14+
|
||||
FetchContent_MakeAvailable(catch)
|
||||
|
||||
add_executable(fetch_example main.cpp)
|
||||
target_link_libraries(fetch_example PRIVATE Catch2::Catch2)
|
||||
add_test(NAME fetch_example COMMAND fetch_example)
|
13
examples/fetch/main.cpp
Normal file
13
examples/fetch/main.cpp
Normal file
@ -0,0 +1,13 @@
|
||||
#define CATCH_CONFIG_MAIN // This tells Catch to provide a main() - only do this in one cpp file
|
||||
#include "catch2/catch.hpp"
|
||||
|
||||
unsigned int Factorial( unsigned int number ) {
|
||||
return number <= 1 ? number : Factorial(number-1)*number;
|
||||
}
|
||||
|
||||
TEST_CASE( "Factorials are computed", "[factorial]" ) {
|
||||
REQUIRE( Factorial(1) == 1 );
|
||||
REQUIRE( Factorial(2) == 2 );
|
||||
REQUIRE( Factorial(3) == 6 );
|
||||
REQUIRE( Factorial(10) == 3628800 );
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user