diff options
Diffstat (limited to 'share/cmake-3.17/Modules/Internal/CPack/CPackNuGet.cmake')
-rw-r--r-- | share/cmake-3.17/Modules/Internal/CPack/CPackNuGet.cmake | 354 |
1 files changed, 0 insertions, 354 deletions
diff --git a/share/cmake-3.17/Modules/Internal/CPack/CPackNuGet.cmake b/share/cmake-3.17/Modules/Internal/CPack/CPackNuGet.cmake deleted file mode 100644 index 1f4bcfd..0000000 --- a/share/cmake-3.17/Modules/Internal/CPack/CPackNuGet.cmake +++ /dev/null @@ -1,354 +0,0 @@ -# Distributed under the OSI-approved BSD 3-Clause License. See accompanying -# file Copyright.txt or https://cmake.org/licensing for details. - -# Author: Alex Turbov - -if(CMAKE_BINARY_DIR) - message(FATAL_ERROR "CPackNuGet.cmake may only be used by CPack internally.") -endif() - -function(_cpack_nuget_debug) - if(CPACK_NUGET_PACKAGE_DEBUG) - message("CPackNuGet:Debug: " ${ARGN}) - endif() -endfunction() - -function(_cpack_nuget_debug_var NAME) - if(CPACK_NUGET_PACKAGE_DEBUG) - message("CPackNuGet:Debug: ${NAME}=`${${NAME}}`") - endif() -endfunction() - -function(_cpack_nuget_variable_fallback OUTPUT_VAR_NAME NUGET_VAR_NAME) - if(ARGN) - list(JOIN ARGN "`, `" _va_args) - set(_va_args ", ARGN: `${_va_args}`") - endif() - _cpack_nuget_debug( - "_cpack_nuget_variable_fallback: " - "OUTPUT_VAR_NAME=`${OUTPUT_VAR_NAME}`, " - "NUGET_VAR_NAME=`${NUGET_VAR_NAME}`" - "${_va_args}" - ) - - set(_options USE_CDATA) - set(_one_value_args LIST_GLUE) - set(_multi_value_args FALLBACK_VARS) - cmake_parse_arguments(PARSE_ARGV 0 _args "${_options}" "${_one_value_args}" "${_multi_value_args}") - - if(CPACK_NUGET_PACKAGE_COMPONENT) - string( - TOUPPER "${CPACK_NUGET_PACKAGE_COMPONENT}" - CPACK_NUGET_PACKAGE_COMPONENT_UPPER - ) - endif() - - if(CPACK_NUGET_PACKAGE_COMPONENT - AND CPACK_NUGET_${CPACK_NUGET_PACKAGE_COMPONENT}_PACKAGE_${NUGET_VAR_NAME} - ) - set( - _result - "${CPACK_NUGET_${CPACK_NUGET_PACKAGE_COMPONENT}_PACKAGE_${NUGET_VAR_NAME}}" - ) - _cpack_nuget_debug( - " CPACK_NUGET_${CPACK_NUGET_PACKAGE_COMPONENT}_PACKAGE_${NUGET_VAR_NAME}: " - "OUTPUT_VAR_NAME->${OUTPUT_VAR_NAME}=`${_result}`" - ) - - elseif(CPACK_NUGET_PACKAGE_COMPONENT_UPPER - AND CPACK_NUGET_${CPACK_NUGET_PACKAGE_COMPONENT_UPPER}_PACKAGE_${NUGET_VAR_NAME} - ) - set( - _result - "${CPACK_NUGET_${CPACK_NUGET_PACKAGE_COMPONENT_UPPER}_PACKAGE_${NUGET_VAR_NAME}}" - ) - _cpack_nuget_debug( - " CPACK_NUGET_${CPACK_NUGET_PACKAGE_COMPONENT_UPPER}_PACKAGE_${NUGET_VAR_NAME}: " - "OUTPUT_VAR_NAME->${OUTPUT_VAR_NAME}=`${_result}`" - ) - - elseif(CPACK_NUGET_PACKAGE_${NUGET_VAR_NAME}) - set(_result "${CPACK_NUGET_PACKAGE_${NUGET_VAR_NAME}}") - _cpack_nuget_debug( - " CPACK_NUGET_PACKAGE_${NUGET_VAR_NAME}: " - "OUTPUT_VAR_NAME->${OUTPUT_VAR_NAME}=`${_result}`" - ) - - else() - foreach(_var IN LISTS _args_FALLBACK_VARS) - _cpack_nuget_debug(" Fallback: ${_var} ...") - if(${_var}) - _cpack_nuget_debug(" ${_var}=`${${_var}}`") - set(_result "${${_var}}") - _cpack_nuget_debug( - " ${_var}: OUTPUT_VAR_NAME->${OUTPUT_VAR_NAME}=`${_result}`" - ) - break() - endif() - endforeach() - endif() - - if(_result) - if(_args_USE_CDATA) - set(_value_before "<![CDATA[") - set(_value_after "]]>") - endif() - - list(LENGTH _result _result_len) - if(_result_len GREATER 1 AND _args_LIST_GLUE) - list(JOIN _result "${_args_LIST_GLUE}" _result) - endif() - - set(${OUTPUT_VAR_NAME} "${_value_before}${_result}${_value_after}" PARENT_SCOPE) - endif() - -endfunction() - -function(_cpack_nuget_variable_fallback_and_wrap_into_element ELEMENT NUGET_VAR_NAME) - set(_options) - set(_one_value_args) - set(_multi_value_args FALLBACK_VARS) - cmake_parse_arguments(PARSE_ARGV 0 _args "${_options}" "${_one_value_args}" "${_multi_value_args}") - - _cpack_nuget_variable_fallback(_value ${NUGET_VAR_NAME} ${ARGN} USE_CDATA) - - if(_value) - string(TOUPPER "${ELEMENT}" _ELEMENT_UP) - set( - _CPACK_NUGET_${_ELEMENT_UP}_TAG - "<${ELEMENT}>${_value}</${ELEMENT}>" - PARENT_SCOPE - ) - endif() -endfunction() - -# Print some debug info -_cpack_nuget_debug("---[CPack NuGet Input Variables]---") -_cpack_nuget_debug_var(CPACK_PACKAGE_NAME) -_cpack_nuget_debug_var(CPACK_PACKAGE_VERSION) -_cpack_nuget_debug_var(CPACK_TOPLEVEL_TAG) -_cpack_nuget_debug_var(CPACK_TOPLEVEL_DIRECTORY) -_cpack_nuget_debug_var(CPACK_TEMPORARY_DIRECTORY) -_cpack_nuget_debug_var(CPACK_NUGET_GROUPS) -if(CPACK_NUGET_GROUPS) - foreach(_group IN LISTS CPACK_NUGET_GROUPS) - string(MAKE_C_IDENTIFIER "${_group}" _group_up) - string(TOUPPER "${_group_up}" _group_up) - _cpack_nuget_debug_var(CPACK_NUGET_${_group_up}_GROUP_COMPONENTS) - endforeach() -endif() -_cpack_nuget_debug_var(CPACK_NUGET_COMPONENTS) -_cpack_nuget_debug_var(CPACK_NUGET_ALL_IN_ONE) -_cpack_nuget_debug_var(CPACK_NUGET_ORDINAL_MONOLITIC) -_cpack_nuget_debug("-----------------------------------") - -function(_cpack_nuget_render_spec) - # Make a variable w/ upper-cased component name - if(CPACK_NUGET_PACKAGE_COMPONENT) - string(TOUPPER "${CPACK_NUGET_PACKAGE_COMPONENT}" CPACK_NUGET_PACKAGE_COMPONENT_UPPER) - endif() - - # Set mandatory variables (not wrapped into XML elements) - # https://docs.microsoft.com/en-us/nuget/reference/nuspec#required-metadata-elements - if(CPACK_NUGET_PACKAGE_COMPONENT) - if(CPACK_NUGET_${CPACK_NUGET_PACKAGE_COMPONENT_UPPER}_PACKAGE_NAME) - set( - CPACK_NUGET_PACKAGE_NAME - "${CPACK_NUGET_${CPACK_NUGET_PACKAGE_COMPONENT_UPPER}_PACKAGE_NAME}" - ) - elseif(NOT CPACK_NUGET_PACKAGE_COMPONENT STREQUAL "Unspecified") - set( - CPACK_NUGET_PACKAGE_NAME - "${CPACK_PACKAGE_NAME}.${CPACK_NUGET_PACKAGE_COMPONENT}" - ) - else() - set(CPACK_NUGET_PACKAGE_NAME "${CPACK_PACKAGE_NAME}") - endif() - elseif(NOT CPACK_NUGET_PACKAGE_NAME) - set(CPACK_NUGET_PACKAGE_NAME "${CPACK_PACKAGE_NAME}") - endif() - - _cpack_nuget_variable_fallback( - CPACK_NUGET_PACKAGE_VERSION VERSION - FALLBACK_VARS - CPACK_PACKAGE_VERSION - ) - _cpack_nuget_variable_fallback( - CPACK_NUGET_PACKAGE_DESCRIPTION DESCRIPTION - FALLBACK_VARS - CPACK_COMPONENT_${CPACK_NUGET_PACKAGE_COMPONENT}_DESCRIPTION - CPACK_COMPONENT_${CPACK_NUGET_PACKAGE_COMPONENT_UPPER}_DESCRIPTION - CPACK_COMPONENT_GROUP_${CPACK_NUGET_PACKAGE_COMPONENT_UPPER}_DESCRIPTION - CPACK_PACKAGE_DESCRIPTION - USE_CDATA - ) - _cpack_nuget_variable_fallback( - CPACK_NUGET_PACKAGE_AUTHORS AUTHORS - FALLBACK_VARS - CPACK_PACKAGE_VENDOR - USE_CDATA - LIST_GLUE "," - ) - - # Set optional variables (wrapped into XML elements) - # https://docs.microsoft.com/en-us/nuget/reference/nuspec#optional-metadata-elements - _cpack_nuget_variable_fallback_and_wrap_into_element( - title - TITLE - FALLBACK_VARS - CPACK_COMPONENT_${CPACK_NUGET_PACKAGE_COMPONENT}_DISPLAY_NAME - CPACK_COMPONENT_${CPACK_NUGET_PACKAGE_COMPONENT_UPPER}_DISPLAY_NAME - CPACK_COMPONENT_GROUP_${CPACK_NUGET_PACKAGE_COMPONENT_UPPER}_DISPLAY_NAME - ) - _cpack_nuget_variable_fallback_and_wrap_into_element(owners OWNERS LIST_GLUE ",") - _cpack_nuget_variable_fallback_and_wrap_into_element( - projectUrl - HOMEPAGE_URL - FALLBACK_VARS - CPACK_PACKAGE_HOMEPAGE_URL - ) - _cpack_nuget_variable_fallback_and_wrap_into_element(licenseUrl LICENSEURL) - _cpack_nuget_variable_fallback_and_wrap_into_element(iconUrl ICONURL) - _cpack_nuget_variable_fallback_and_wrap_into_element( - summary DESCRIPTION_SUMMARY - FALLBACK_VARS - CPACK_PACKAGE_DESCRIPTION_SUMMARY - ) - if(CPACK_NUGET_PACKAGE_REQUIRE_LICENSE_ACCEPTANCE) - set( - _CPACK_NUGET_REQUIRELICENSEACCEPTANCE_TAG - "<requireLicenseAcceptance>true</requireLicenseAcceptance>" - ) - endif() - _cpack_nuget_variable_fallback_and_wrap_into_element(releaseNotes RELEASE_NOTES) - _cpack_nuget_variable_fallback_and_wrap_into_element(copyright COPYRIGHT) - _cpack_nuget_variable_fallback_and_wrap_into_element(tags TAGS LIST_GLUE " ") - - # Handle dependencies - _cpack_nuget_variable_fallback(_deps DEPENDENCIES) - set(_collected_deps) - foreach(_dep IN LISTS _deps) - _cpack_nuget_debug(" checking dependency `${_dep}`") - - _cpack_nuget_variable_fallback(_ver DEPENDENCIES_${_dep}_VERSION) - - if(NOT _ver) - string(TOUPPER "${_dep}" _dep_upper) - _cpack_nuget_variable_fallback(_ver DEPENDENCIES_${_dep_upper}_VERSION) - endif() - - if(_ver) - _cpack_nuget_debug(" got `${_dep}` dependency version ${_ver}") - string(CONCAT _collected_deps "${_collected_deps}" " <dependency id=\"${_dep}\" version=\"${_ver}\" />\n") - endif() - endforeach() - - # Render deps into the variable - if(_collected_deps) - string(CONCAT _CPACK_NUGET_DEPENDENCIES_TAG "<dependencies>\n" "${_collected_deps}" " </dependencies>") - endif() - - # Render the spec file - # NOTE The spec filename doesn't matter. Being included into a package, - # NuGet will name it properly. - _cpack_nuget_debug("Rendering `${CPACK_TEMPORARY_DIRECTORY}/CPack.NuGet.nuspec` file...") - configure_file( - "${CMAKE_ROOT}/Modules/Internal/CPack/CPack.NuGet.nuspec.in" - "${CPACK_TEMPORARY_DIRECTORY}/CPack.NuGet.nuspec" - @ONLY - ) -endfunction() - -function(_cpack_nuget_make_files_tag) - set(_files) - foreach(_comp IN LISTS ARGN) - string(APPEND _files " <file src=\"${_comp}\\**\" target=\".\" />\n") - endforeach() - set(_CPACK_NUGET_FILES_TAG "<files>\n${_files} </files>" PARENT_SCOPE) -endfunction() - -find_program(NUGET_EXECUTABLE nuget) -_cpack_nuget_debug_var(NUGET_EXECUTABLE) -if(NOT NUGET_EXECUTABLE) - message(FATAL_ERROR "NuGet executable not found") -endif() - -# Add details for debug run -if(CPACK_NUGET_PACKAGE_DEBUG) - list(APPEND CPACK_NUGET_PACK_ADDITIONAL_OPTIONS "-Verbosity" "detailed") -endif() - -# Case one: ordinal all-in-one package -if(CPACK_NUGET_ORDINAL_MONOLITIC) - # This variable `CPACK_NUGET_ALL_IN_ONE` set by C++ code: - # Meaning to pack all installed files into a single package - _cpack_nuget_debug("---[Making an ordinal monolitic package]---") - _cpack_nuget_render_spec() - execute_process( - COMMAND "${NUGET_EXECUTABLE}" pack ${CPACK_NUGET_PACK_ADDITIONAL_OPTIONS} - WORKING_DIRECTORY "${CPACK_TEMPORARY_DIRECTORY}" - ) - -elseif(CPACK_NUGET_ALL_IN_ONE) - # This variable `CPACK_NUGET_ALL_IN_ONE` set by C++ code: - # Meaning to pack all installed components into a single package - _cpack_nuget_debug("---[Making a monolitic package from installed components]---") - - # Prepare the `files` element which include files from several components - _cpack_nuget_make_files_tag(${CPACK_NUGET_COMPONENTS}) - _cpack_nuget_render_spec() - execute_process( - COMMAND "${NUGET_EXECUTABLE}" pack ${CPACK_NUGET_PACK_ADDITIONAL_OPTIONS} - WORKING_DIRECTORY "${CPACK_TEMPORARY_DIRECTORY}" - ) - -else() - # Is there any grouped component? - if(CPACK_NUGET_GROUPS) - _cpack_nuget_debug("---[Making grouped component(s) package(s)]---") - foreach(_group IN LISTS CPACK_NUGET_GROUPS) - _cpack_nuget_debug("Starting to make the package for group `${_group}`") - string(MAKE_C_IDENTIFIER "${_group}" _group_up) - string(TOUPPER "${_group_up}" _group_up) - - # Render a spec file which includes all components in the current group - unset(_CPACK_NUGET_FILES_TAG) - _cpack_nuget_make_files_tag(${CPACK_NUGET_${_group_up}_GROUP_COMPONENTS}) - # Temporary set `CPACK_NUGET_PACKAGE_COMPONENT` to the group name - # to properly collect various per group settings - set(CPACK_NUGET_PACKAGE_COMPONENT ${_group}) - _cpack_nuget_render_spec() - unset(CPACK_NUGET_PACKAGE_COMPONENT) - execute_process( - COMMAND "${NUGET_EXECUTABLE}" pack ${CPACK_NUGET_PACK_ADDITIONAL_OPTIONS} - WORKING_DIRECTORY "${CPACK_TEMPORARY_DIRECTORY}" - ) - endforeach() - endif() - # Is there any single component package needed? - if(CPACK_NUGET_COMPONENTS) - _cpack_nuget_debug("---[Making single-component(s) package(s)]---") - foreach(_comp IN LISTS CPACK_NUGET_COMPONENTS) - _cpack_nuget_debug("Starting to make the package for component `${_comp}`") - # Render a spec file which includes only given component - unset(_CPACK_NUGET_FILES_TAG) - _cpack_nuget_make_files_tag(${_comp}) - # Temporary set `CPACK_NUGET_PACKAGE_COMPONENT` to the current - # component name to properly collect various per group settings - set(CPACK_NUGET_PACKAGE_COMPONENT ${_comp}) - _cpack_nuget_render_spec() - unset(CPACK_NUGET_PACKAGE_COMPONENT) - execute_process( - COMMAND "${NUGET_EXECUTABLE}" pack ${CPACK_NUGET_PACK_ADDITIONAL_OPTIONS} - WORKING_DIRECTORY "${CPACK_TEMPORARY_DIRECTORY}" - ) - endforeach() - endif() -endif() - -file(GLOB_RECURSE GEN_CPACK_OUTPUT_FILES "${CPACK_TEMPORARY_DIRECTORY}/*.nupkg") -if(NOT GEN_CPACK_OUTPUT_FILES) - message(FATAL_ERROR "NuGet package was not generated at `${CPACK_TEMPORARY_DIRECTORY}`!") -endif() - -_cpack_nuget_debug("Generated files: ${GEN_CPACK_OUTPUT_FILES}") |