diff --git a/README.md b/README.md index be29c09..27a3c08 100644 --- a/README.md +++ b/README.md @@ -52,7 +52,7 @@ To update CPM to the newest version, simply update the script in the project's c # Options -If you set the CMake option `CPM_REMOTE_PACKAGES_ONLY` to `On`, packages will always be fetched via the URL. Setting `CPM_LOCAL_PACKAGES_ONLY` to `On` will only add packages via `find_package`. +Setting the CMake option `CPM_USE_LOCAL_PACKAGES` will activate finding packages via `find_package`. If the option `CPM_LOCAL_PACKAGES_ONLY` is set, CPM will only use local packages. # Advantages diff --git a/cmake/CPM.cmake b/cmake/CPM.cmake index 8dcdc08..668f257 100644 --- a/cmake/CPM.cmake +++ b/cmake/CPM.cmake @@ -36,8 +36,8 @@ endif() set(CPM_DIRECTORY ${CMAKE_CURRENT_LIST_DIR} CACHE INTERNAL "") set(CPM_PACKAGES "" CACHE INTERNAL "") +option(CPM_USE_LOCAL_PACKAGES "Use locally installed packages (find_package)" OFF) option(CPM_LOCAL_PACKAGES_ONLY "Use only locally installed packages" OFF) -option(CPM_REMOTE_PACKAGES_ONLY "Always download packages" OFF) include(FetchContent) include(CMakeParseArguments) @@ -83,7 +83,7 @@ function(CPMAddPackage) cmake_parse_arguments(CPM_ARGS "" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) - if (CPM_ARGS_VERSION AND NOT CPM_ARGS_OPTIONS AND NOT ${CPM_REMOTE_PACKAGES_ONLY}) + if(${CPM_USE_LOCAL_PACKAGES} OR ${CPM_LOCAL_PACKAGES_ONLY}) find_package(${CPM_ARGS_NAME} ${CPM_ARGS_VERSION} QUIET) if(${CPM_PACKAGE_FOUND}) @@ -94,10 +94,10 @@ function(CPMAddPackage) ) return() endif() - endif() - if(${CPM_LOCAL_PACKAGES_ONLY}) - message(SEND_ERROR "CPM: ${CPM_ARGS_NAME} not found via findpackage(${CPM_ARGS_NAME} ${CPM_ARGS_VERSION})") + if(${CPM_LOCAL_PACKAGES_ONLY}) + message(SEND_ERROR "CPM: ${CPM_ARGS_NAME} not found via find_package(${CPM_ARGS_NAME} ${CPM_ARGS_VERSION})") + endif() endif() if (NOT CPM_ARGS_VERSION)