mirror of
https://github.com/cpm-cmake/CPM.cmake.git
synced 2026-02-06 14:55:57 +08:00
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:
@@ -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()
|
||||
|
||||
11
test/unit/cache/CMakeLists.txt.in
vendored
11
test/unit/cache/CMakeLists.txt.in
vendored
@@ -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")
|
||||
|
||||
12
test/unit/cache/main.cpp
vendored
12
test/unit/cache/main.cpp
vendored
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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")
|
||||
|
||||
Reference in New Issue
Block a user