mirror of
https://github.com/cpm-cmake/CPM.cmake.git
synced 2025-11-17 14:47:30 -05:00
Support CPM_SOURCE_CACHE on windows (#109)
* use semicolon as empty command and add test * remove platform specific test coverage * only run actions for pushes and prs into master (avoid duplication) * remove cache test as it's already part of the test suite * update version * test cache reuse
This commit is contained in:
10
.github/workflows/macos.yml
vendored
10
.github/workflows/macos.yml
vendored
@@ -1,11 +1,17 @@
|
|||||||
name: MacOS
|
name: MacOS
|
||||||
|
|
||||||
on: [push]
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
pull_request:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
|
|
||||||
runs-on: macOS-10.14
|
runs-on: macos-latest
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v1
|
- uses: actions/checkout@v1
|
||||||
|
|||||||
10
.github/workflows/ubuntu.yml
vendored
10
.github/workflows/ubuntu.yml
vendored
@@ -1,11 +1,17 @@
|
|||||||
name: Ubuntu
|
name: Ubuntu
|
||||||
|
|
||||||
on: [push]
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
pull_request:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
|
|
||||||
runs-on: ubuntu-18.04
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v1
|
- uses: actions/checkout@v1
|
||||||
|
|||||||
10
.github/workflows/windows.yml
vendored
10
.github/workflows/windows.yml
vendored
@@ -1,11 +1,17 @@
|
|||||||
name: Windows
|
name: Windows
|
||||||
|
|
||||||
on: [push]
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
pull_request:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
|
|
||||||
runs-on: windows-2019
|
runs-on: windows-latest
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v1
|
- uses: actions/checkout@v1
|
||||||
|
|||||||
@@ -28,7 +28,7 @@
|
|||||||
|
|
||||||
cmake_minimum_required(VERSION 3.14 FATAL_ERROR)
|
cmake_minimum_required(VERSION 3.14 FATAL_ERROR)
|
||||||
|
|
||||||
set(CURRENT_CPM_VERSION 0.18)
|
set(CURRENT_CPM_VERSION 0.19)
|
||||||
|
|
||||||
if(CPM_DIRECTORY)
|
if(CPM_DIRECTORY)
|
||||||
if(NOT ${CPM_DIRECTORY} MATCHES ${CMAKE_CURRENT_LIST_DIR})
|
if(NOT ${CPM_DIRECTORY} MATCHES ${CMAKE_CURRENT_LIST_DIR})
|
||||||
@@ -218,7 +218,7 @@ function(CPMAddPackage)
|
|||||||
set(download_directory ${CPM_SOURCE_CACHE}/${lower_case_name}/${origin_hash})
|
set(download_directory ${CPM_SOURCE_CACHE}/${lower_case_name}/${origin_hash})
|
||||||
list(APPEND FETCH_CONTENT_DECLARE_EXTRA_OPTS SOURCE_DIR ${download_directory})
|
list(APPEND FETCH_CONTENT_DECLARE_EXTRA_OPTS SOURCE_DIR ${download_directory})
|
||||||
if (EXISTS ${download_directory})
|
if (EXISTS ${download_directory})
|
||||||
list(APPEND FETCH_CONTENT_DECLARE_EXTRA_OPTS DOWNLOAD_COMMAND ":")
|
list(APPEND FETCH_CONTENT_DECLARE_EXTRA_OPTS DOWNLOAD_COMMAND ";")
|
||||||
set(PACKAGE_INFO "${download_directory}")
|
set(PACKAGE_INFO "${download_directory}")
|
||||||
else()
|
else()
|
||||||
# remove timestamps so CMake will re-download the dependency
|
# remove timestamps so CMake will re-download the dependency
|
||||||
|
|||||||
@@ -2,10 +2,6 @@ cmake_minimum_required(VERSION 3.14 FATAL_ERROR)
|
|||||||
|
|
||||||
project(CPMExampleCatch2)
|
project(CPMExampleCatch2)
|
||||||
|
|
||||||
# ---- Options ----
|
|
||||||
|
|
||||||
option(ENABLE_TEST_COVERAGE "Enable test coverage" OFF)
|
|
||||||
|
|
||||||
# ---- Dependencies ----
|
# ---- Dependencies ----
|
||||||
|
|
||||||
include(../../cmake/CPM.cmake)
|
include(../../cmake/CPM.cmake)
|
||||||
@@ -26,16 +22,9 @@ CPMAddPackage(
|
|||||||
|
|
||||||
add_executable(CPMExampleCatch2 main.cpp)
|
add_executable(CPMExampleCatch2 main.cpp)
|
||||||
target_link_libraries(CPMExampleCatch2 fibonacci Catch2)
|
target_link_libraries(CPMExampleCatch2 fibonacci Catch2)
|
||||||
set_target_properties(CPMExampleCatch2 PROPERTIES CXX_STANDARD 17 COMPILE_FLAGS "-Wall -pedantic -Wextra -Werror")
|
set_target_properties(CPMExampleCatch2 PROPERTIES CXX_STANDARD 17)
|
||||||
|
|
||||||
# ---- Enable testing ----
|
# ---- Enable testing ----
|
||||||
|
|
||||||
ENABLE_TESTING()
|
ENABLE_TESTING()
|
||||||
ADD_TEST(CPMExampleCatch2 CPMExampleCatch2)
|
ADD_TEST(CPMExampleCatch2 CPMExampleCatch2)
|
||||||
|
|
||||||
# ---- Add code coverage ----
|
|
||||||
|
|
||||||
if (${ENABLE_TEST_COVERAGE})
|
|
||||||
set_target_properties(CPMExampleCatch2 PROPERTIES CXX_STANDARD 17 COMPILE_FLAGS "-O0 -g -fprofile-arcs -ftest-coverage --coverage")
|
|
||||||
target_link_options(CPMExampleCatch2 PUBLIC "--coverage")
|
|
||||||
endif()
|
|
||||||
|
|||||||
@@ -2,10 +2,6 @@ cmake_minimum_required(VERSION 3.14 FATAL_ERROR)
|
|||||||
|
|
||||||
project(CPMExampleCXXOpts)
|
project(CPMExampleCXXOpts)
|
||||||
|
|
||||||
# ---- Options ----
|
|
||||||
|
|
||||||
option(ENABLE_TEST_COVERAGE "Enable test coverage" OFF)
|
|
||||||
|
|
||||||
# ---- Dependencies ----
|
# ---- Dependencies ----
|
||||||
|
|
||||||
include(../../cmake/CPM.cmake)
|
include(../../cmake/CPM.cmake)
|
||||||
@@ -23,4 +19,4 @@ CPMAddPackage(
|
|||||||
|
|
||||||
add_executable(CPMExampleCXXOpts main.cpp)
|
add_executable(CPMExampleCXXOpts main.cpp)
|
||||||
target_link_libraries(CPMExampleCXXOpts cxxopts)
|
target_link_libraries(CPMExampleCXXOpts cxxopts)
|
||||||
set_target_properties(CPMExampleCXXOpts PROPERTIES CXX_STANDARD 17 COMPILE_FLAGS "-Wall -pedantic -Wextra -Werror")
|
set_target_properties(CPMExampleCXXOpts PROPERTIES CXX_STANDARD 17)
|
||||||
|
|||||||
@@ -2,10 +2,6 @@ cmake_minimum_required(VERSION 3.14 FATAL_ERROR)
|
|||||||
|
|
||||||
project(CPMExampleDoctest)
|
project(CPMExampleDoctest)
|
||||||
|
|
||||||
# ---- Options ----
|
|
||||||
|
|
||||||
option(ENABLE_TEST_COVERAGE "Enable test coverage" OFF)
|
|
||||||
|
|
||||||
# ---- Dependencies ----
|
# ---- Dependencies ----
|
||||||
|
|
||||||
include(../../cmake/CPM.cmake)
|
include(../../cmake/CPM.cmake)
|
||||||
@@ -26,16 +22,9 @@ CPMAddPackage(
|
|||||||
|
|
||||||
add_executable(CPMExampleDoctest main.cpp)
|
add_executable(CPMExampleDoctest main.cpp)
|
||||||
target_link_libraries(CPMExampleDoctest fibonacci doctest)
|
target_link_libraries(CPMExampleDoctest fibonacci doctest)
|
||||||
set_target_properties(CPMExampleDoctest PROPERTIES CXX_STANDARD 17 COMPILE_FLAGS "-Wall -pedantic -Wextra -Werror")
|
set_target_properties(CPMExampleDoctest PROPERTIES CXX_STANDARD 17)
|
||||||
|
|
||||||
# ---- Enable testing ----
|
# ---- Enable testing ----
|
||||||
|
|
||||||
ENABLE_TESTING()
|
ENABLE_TESTING()
|
||||||
ADD_TEST(CPMExampleDoctest CPMExampleDoctest)
|
ADD_TEST(CPMExampleDoctest CPMExampleDoctest)
|
||||||
|
|
||||||
# ---- Add code coverage ----
|
|
||||||
|
|
||||||
if (${ENABLE_TEST_COVERAGE})
|
|
||||||
set_target_properties(CPMExampleDoctest PROPERTIES CXX_STANDARD 17 COMPILE_FLAGS "-O0 -g -fprofile-arcs -ftest-coverage --coverage")
|
|
||||||
target_link_options(CPMExampleDoctest PUBLIC "--coverage")
|
|
||||||
endif()
|
|
||||||
|
|||||||
@@ -2,10 +2,6 @@ cmake_minimum_required(VERSION 3.14 FATAL_ERROR)
|
|||||||
|
|
||||||
project(CPMExampleGtest)
|
project(CPMExampleGtest)
|
||||||
|
|
||||||
# ---- Options ----
|
|
||||||
|
|
||||||
option(ENABLE_TEST_COVERAGE "Enable test coverage" OFF)
|
|
||||||
|
|
||||||
# ---- Dependencies ----
|
# ---- Dependencies ----
|
||||||
|
|
||||||
include(../../cmake/CPM.cmake)
|
include(../../cmake/CPM.cmake)
|
||||||
@@ -36,10 +32,3 @@ set_target_properties(CPMExampleGtest PROPERTIES CXX_STANDARD 17)
|
|||||||
|
|
||||||
enable_testing()
|
enable_testing()
|
||||||
add_test(CPMExampleGtest CPMExampleGtest)
|
add_test(CPMExampleGtest CPMExampleGtest)
|
||||||
|
|
||||||
# ---- Add code coverage ----
|
|
||||||
|
|
||||||
if (${ENABLE_TEST_COVERAGE})
|
|
||||||
set_target_properties(CPMExampleGtest PROPERTIES CXX_STANDARD 17 COMPILE_FLAGS "-O0 -g -fprofile-arcs -ftest-coverage --coverage")
|
|
||||||
target_link_options(CPMExampleGtest PUBLIC "--coverage")
|
|
||||||
endif()
|
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ set(CPM_SOURCE_CACHE_DIR "${CMAKE_CURRENT_BINARY_DIR}/CPM")
|
|||||||
set(TEST_BUILD_DIR ${CMAKE_CURRENT_BINARY_DIR}/cache)
|
set(TEST_BUILD_DIR ${CMAKE_CURRENT_BINARY_DIR}/cache)
|
||||||
|
|
||||||
function(clear_cache)
|
function(clear_cache)
|
||||||
|
message(STATUS "clearing CPM cache")
|
||||||
FILE(REMOVE_RECURSE ${CPM_SOURCE_CACHE_DIR})
|
FILE(REMOVE_RECURSE ${CPM_SOURCE_CACHE_DIR})
|
||||||
|
|
||||||
if (EXISTS "${CPM_SOURCE_CACHE_DIR}")
|
if (EXISTS "${CPM_SOURCE_CACHE_DIR}")
|
||||||
@@ -104,6 +105,16 @@ if (NOT EXISTS "${CPM_SOURCE_CACHE_DIR}/fibonacci")
|
|||||||
ASSERTION_FAILED("fibonacci not in cache")
|
ASSERTION_FAILED("fibonacci not in cache")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
## Reuse cached packages for other build
|
||||||
|
|
||||||
|
execute_process(
|
||||||
|
COMMAND
|
||||||
|
${CMAKE_COMMAND} -E env "CPM_SOURCE_CACHE=${CPM_SOURCE_CACHE_DIR}" ${CMAKE_COMMAND} "-H${CMAKE_CURRENT_LIST_DIR}/cache" "-B${TEST_BUILD_DIR}-2"
|
||||||
|
RESULT_VARIABLE ret
|
||||||
|
)
|
||||||
|
|
||||||
|
ASSERT_EQUAL(${ret} "0")
|
||||||
|
|
||||||
## Overwrite CPM_SOURCE_CACHE with argument
|
## Overwrite CPM_SOURCE_CACHE with argument
|
||||||
|
|
||||||
reset_test()
|
reset_test()
|
||||||
|
|||||||
Reference in New Issue
Block a user