mirror of
https://github.com/cpm-cmake/CPM.cmake.git
synced 2025-11-20 13:17:53 -05:00
Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7000572bbe | ||
|
|
fe8d15ba82 |
@@ -464,14 +464,16 @@ endmacro()
|
||||
|
||||
function(cpm_add_to_package_lock Name)
|
||||
if(NOT CPM_DONT_CREATE_PACKAGE_LOCK)
|
||||
file(APPEND ${CPM_PACKAGE_LOCK_FILE} "# ${Name}\nCPMDeclarePackage(${Name} \"${ARGN}\")\n")
|
||||
cpm_prettify_package_arguments(PRETTY_ARGN false ${ARGN})
|
||||
file(APPEND ${CPM_PACKAGE_LOCK_FILE} "# ${Name}\nCPMDeclarePackage(${Name}\n${PRETTY_ARGN})\n")
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
function(cpm_add_comment_to_package_lock Name)
|
||||
if(NOT CPM_DONT_CREATE_PACKAGE_LOCK)
|
||||
cpm_prettify_package_arguments(PRETTY_ARGN true ${ARGN})
|
||||
file(APPEND ${CPM_PACKAGE_LOCK_FILE}
|
||||
"# ${Name} (unversioned)\n# CPMDeclarePackage(${Name} \"${ARGN}\")\n"
|
||||
"# ${Name} (unversioned)\n# CPMDeclarePackage(${Name}\n${PRETTY_ARGN}#)\n"
|
||||
)
|
||||
endif()
|
||||
endfunction()
|
||||
@@ -625,3 +627,68 @@ function(cpm_is_git_tag_commit_hash GIT_TAG RESULT)
|
||||
endif()
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
function(cpm_prettify_package_arguments OUT_VAR IS_IN_COMMENT)
|
||||
set(oneValueArgs
|
||||
NAME
|
||||
FORCE
|
||||
VERSION
|
||||
GIT_TAG
|
||||
DOWNLOAD_ONLY
|
||||
GITHUB_REPOSITORY
|
||||
GITLAB_REPOSITORY
|
||||
GIT_REPOSITORY
|
||||
SOURCE_DIR
|
||||
DOWNLOAD_COMMAND
|
||||
FIND_PACKAGE_ARGUMENTS
|
||||
NO_CACHE
|
||||
GIT_SHALLOW
|
||||
)
|
||||
set(multiValueArgs OPTIONS)
|
||||
cmake_parse_arguments(CPM_ARGS "" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
|
||||
|
||||
foreach(oneArgName ${oneValueArgs})
|
||||
if(DEFINED CPM_ARGS_${oneArgName})
|
||||
if(${IS_IN_COMMENT})
|
||||
string(APPEND PRETTY_OUT_VAR "#")
|
||||
endif()
|
||||
if(${oneArgName} STREQUAL "SOURCE_DIR")
|
||||
string(REPLACE ${CMAKE_SOURCE_DIR} "\${CMAKE_SOURCE_DIR}" CPM_ARGS_${oneArgName}
|
||||
${CPM_ARGS_${oneArgName}}
|
||||
)
|
||||
endif()
|
||||
string(APPEND PRETTY_OUT_VAR " ${oneArgName} ${CPM_ARGS_${oneArgName}}\n")
|
||||
endif()
|
||||
endforeach()
|
||||
foreach(multiArgName ${multiValueArgs})
|
||||
if(DEFINED CPM_ARGS_${multiArgName})
|
||||
if(${IS_IN_COMMENT})
|
||||
string(APPEND PRETTY_OUT_VAR "#")
|
||||
endif()
|
||||
string(APPEND PRETTY_OUT_VAR " ${multiArgName}\n")
|
||||
foreach(singleOption ${CPM_ARGS_${multiArgName}})
|
||||
if(${IS_IN_COMMENT})
|
||||
string(APPEND PRETTY_OUT_VAR "#")
|
||||
endif()
|
||||
string(APPEND PRETTY_OUT_VAR " \"${singleOption}\"\n")
|
||||
endforeach()
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
if(NOT "${CPM_ARGS_UNPARSED_ARGUMENTS}" STREQUAL "")
|
||||
if(${IS_IN_COMMENT})
|
||||
string(APPEND PRETTY_OUT_VAR "#")
|
||||
endif()
|
||||
string(APPEND PRETTY_OUT_VAR " ")
|
||||
foreach(CPM_ARGS_UNPARSED_ARGUMENT ${CPM_ARGS_UNPARSED_ARGUMENTS})
|
||||
string(APPEND PRETTY_OUT_VAR " ${CPM_ARGS_UNPARSED_ARGUMENT}")
|
||||
endforeach()
|
||||
string(APPEND PRETTY_OUT_VAR "\n")
|
||||
endif()
|
||||
|
||||
set(${OUT_VAR}
|
||||
${PRETTY_OUT_VAR}
|
||||
PARENT_SCOPE
|
||||
)
|
||||
|
||||
endfunction()
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
set(CPM_DOWNLOAD_VERSION 1.0.0-development-version)
|
||||
|
||||
if(CPM_SOURCE_CACHE)
|
||||
# Expand relative path. This is important if the provided path contains a tilde (~)
|
||||
get_filename_component(CPM_SOURCE_CACHE ${CPM_SOURCE_CACHE} ABSOLUTE)
|
||||
set(CPM_DOWNLOAD_LOCATION "${CPM_SOURCE_CACHE}/cpm/CPM_${CPM_DOWNLOAD_VERSION}.cmake")
|
||||
elseif(DEFINED ENV{CPM_SOURCE_CACHE})
|
||||
set(CPM_DOWNLOAD_LOCATION "$ENV{CPM_SOURCE_CACHE}/cpm/CPM_${CPM_DOWNLOAD_VERSION}.cmake")
|
||||
|
||||
42
test/unit/package-lock_prettify.cmake
Normal file
42
test/unit/package-lock_prettify.cmake
Normal file
@@ -0,0 +1,42 @@
|
||||
cmake_minimum_required(VERSION 3.14 FATAL_ERROR)
|
||||
|
||||
include(${CPM_PATH}/CPM.cmake)
|
||||
include(${CPM_PATH}/testing.cmake)
|
||||
|
||||
# cmake-format: off
|
||||
cpm_prettify_package_arguments(PRETTY_ARGN false
|
||||
NAME Dependency
|
||||
SOURCE_DIR ${CMAKE_SOURCE_DIR}/local_dependency/dependency
|
||||
UPDATE_DISCONNECTED ON
|
||||
TESTCUSTOMDATA TRUE
|
||||
)
|
||||
# cmake-format: on
|
||||
set(EXPECTED_UNCOMMENTED
|
||||
" NAME Dependency
|
||||
SOURCE_DIR \${CMAKE_SOURCE_DIR}/local_dependency/dependency
|
||||
UPDATE_DISCONNECTED ON TESTCUSTOMDATA TRUE
|
||||
"
|
||||
)
|
||||
assert_equal(${PRETTY_ARGN} ${EXPECTED_UNCOMMENTED})
|
||||
|
||||
# cmake-format: off
|
||||
cpm_prettify_package_arguments(PRETTY_ARGN true
|
||||
NAME Dependency
|
||||
SOURCE_DIR ${CMAKE_SOURCE_DIR}/local_dependency/dependency
|
||||
UPDATE_DISCONNECTED ON
|
||||
TESTCUSTOMDATA TRUE
|
||||
)
|
||||
# cmake-format: on
|
||||
set(EXPECTED_COMMENTED
|
||||
"# NAME Dependency
|
||||
# SOURCE_DIR \${CMAKE_SOURCE_DIR}/local_dependency/dependency
|
||||
# UPDATE_DISCONNECTED ON TESTCUSTOMDATA TRUE
|
||||
"
|
||||
)
|
||||
assert_equal(${PRETTY_ARGN} ${EXPECTED_COMMENTED})
|
||||
|
||||
cpm_prettify_package_arguments(PRETTY_ARGN true "local directory")
|
||||
set(EXPECTED_COMMENTED_LOCALDIR "# local directory
|
||||
"
|
||||
)
|
||||
assert_equal(${PRETTY_ARGN} ${EXPECTED_COMMENTED_LOCALDIR})
|
||||
Reference in New Issue
Block a user