reorganise source and add CPMFindPackage (#92)

* reorganise source and add CPMFindPackage

* add consistent find_package behaviour

* document CPMFindPackage

* reset examples to CPMAddPackage unless tested

* update version

* update README.md

* Update README.md
This commit is contained in:
Lars Melchior
2019-10-24 15:42:25 +02:00
committed by GitHub
parent 0a8a65df32
commit 47bfb554ab
20 changed files with 199 additions and 303 deletions

View File

@@ -29,7 +29,7 @@ function(reset_test)
update_cmake_lists()
endfunction()
set(CATCH2_VERSION 2.8.0)
set(FIBONACCI_VERSION 1.0)
## Read CPM_SOURCE_CACHE from arguments
@@ -43,13 +43,13 @@ execute_process(
ASSERT_EQUAL(${ret} "0")
if (NOT EXISTS "${CPM_SOURCE_CACHE_DIR}/catch2")
ASSERTION_FAILED("catch2 not in cache")
if (NOT EXISTS "${CPM_SOURCE_CACHE_DIR}/fibonacci")
ASSERTION_FAILED("fibonacci not in cache")
endif()
FILE(GLOB catch2_versions "${CPM_SOURCE_CACHE_DIR}/catch2/*")
list(LENGTH catch2_versions catch2_version_count)
ASSERT_EQUAL(${catch2_version_count} "1")
FILE(GLOB FIBONACCI_VERSIONs "${CPM_SOURCE_CACHE_DIR}/fibonacci/*")
list(LENGTH FIBONACCI_VERSIONs FIBONACCI_VERSION_count)
ASSERT_EQUAL(${FIBONACCI_VERSION_count} "1")
FILE(GLOB fibonacci_versions "${CPM_SOURCE_CACHE_DIR}/fibonacci/*")
list(LENGTH fibonacci_versions fibonacci_version_count)
@@ -57,7 +57,7 @@ ASSERT_EQUAL(${fibonacci_version_count} "1")
## Update dependency and keep CPM_SOURCE_CACHE
set(CATCH2_VERSION 2.9.0)
set(FIBONACCI_VERSION 2.0)
update_cmake_lists()
execute_process(
@@ -68,13 +68,9 @@ execute_process(
ASSERT_EQUAL(${ret} "0")
FILE(GLOB catch2_versions "${CPM_SOURCE_CACHE_DIR}/catch2/*")
list(LENGTH catch2_versions catch2_version_count)
ASSERT_EQUAL(${catch2_version_count} "2")
FILE(GLOB fibonacci_versions "${CPM_SOURCE_CACHE_DIR}/fibonacci/*")
list(LENGTH fibonacci_versions fibonacci_version_count)
ASSERT_EQUAL(${fibonacci_version_count} "1")
FILE(GLOB FIBONACCI_VERSIONs "${CPM_SOURCE_CACHE_DIR}/fibonacci/*")
list(LENGTH FIBONACCI_VERSIONs FIBONACCI_VERSION_count)
ASSERT_EQUAL(${FIBONACCI_VERSION_count} "2")
## Clear cache and update
@@ -88,8 +84,8 @@ execute_process(
ASSERT_EQUAL(${ret} "0")
if (NOT EXISTS "${CPM_SOURCE_CACHE_DIR}/catch2")
ASSERTION_FAILED("catch2 not in cache")
if (NOT EXISTS "${CPM_SOURCE_CACHE_DIR}/fibonacci")
ASSERTION_FAILED("fibonacci not in cache")
endif()
## Read CPM_SOURCE_CACHE from environment
@@ -104,8 +100,8 @@ execute_process(
ASSERT_EQUAL(${ret} "0")
if (NOT EXISTS "${CPM_SOURCE_CACHE_DIR}/catch2")
ASSERTION_FAILED("catch2 not in cache")
if (NOT EXISTS "${CPM_SOURCE_CACHE_DIR}/fibonacci")
ASSERTION_FAILED("fibonacci not in cache")
endif()
## Overwrite CPM_SOURCE_CACHE with argument
@@ -120,6 +116,6 @@ execute_process(
ASSERT_EQUAL(${ret} "0")
if (NOT EXISTS "${CPM_SOURCE_CACHE_DIR}/catch2")
ASSERTION_FAILED("catch2 not in cache")
if (NOT EXISTS "${CPM_SOURCE_CACHE_DIR}/fibonacci")
ASSERTION_FAILED("fibonacci not in cache")
endif()

View File

@@ -13,18 +13,11 @@ include(@CPM_PATH@/CPM.cmake)
CPMAddPackage(
NAME fibonacci
GIT_REPOSITORY https://github.com/TheLartians/Fibonacci.git
VERSION 1.0
)
CPMAddPackage(
NAME Catch2
GITHUB_REPOSITORY catchorg/Catch2
VERSION @CATCH2_VERSION@
GIT_SHALLOW YES
VERSION @FIBONACCI_VERSION@
)
# ---- Create binary ----
add_executable(CPMExampleCatch2 main.cpp)
target_link_libraries(CPMExampleCatch2 fibonacci Catch2)
target_link_libraries(CPMExampleCatch2 fibonacci)
set_target_properties(CPMExampleCatch2 PROPERTIES CXX_STANDARD 17 COMPILE_FLAGS "-Wall -pedantic -Wextra -Werror")

View File

@@ -1,13 +1,9 @@
#define CATCH_CONFIG_MAIN
#include <catch2/catch.hpp>
#include <fibonacci.h>
#include <iostream>
TEST_CASE("fibonnacci"){
REQUIRE(fibonnacci(0) == 0);
REQUIRE(fibonnacci(1) == 1);
REQUIRE(fibonnacci(2) == 1);
REQUIRE(fibonnacci(3) == 2);
REQUIRE(fibonnacci(4) == 3);
REQUIRE(fibonnacci(5) == 5);
int main(){
std::cout << "fib(10) = " << fastFibonacci(10) << std::endl;
return 0;
}

View File

@@ -15,7 +15,7 @@ CPMAddPackage(
VERSION 1.2.3
)
CPM_GET_PACKAGE_VERSION(A VERSION)
CPMGetPackageVersion(A VERSION)
ASSERT_EQUAL(${VERSION} "1.2.3")
CPMAddPackage(
@@ -28,7 +28,7 @@ CPMAddPackage(
GIT_TAG v2.3.1
)
CPM_GET_PACKAGE_VERSION(B VERSION)
CPMGetPackageVersion(B VERSION)
ASSERT_EQUAL(${VERSION} "2.4.1")
CPMAddPackage(
@@ -37,5 +37,5 @@ CPMAddPackage(
VERSION 3.1.2
)
CPM_GET_PACKAGE_VERSION(C VERSION)
CPMGetPackageVersion(C VERSION)
ASSERT_EQUAL(${VERSION} "3.1.2")