mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-05 21:31:08 -06:00
CPack: CMAKE_PROJECT_HOMEPAGE_URL -> CPACK_PACKAGE_HOMEPAGE_URL
At CPack running time the `CMAKE_PROJECT_HOMEPAGE_URL` variable is not set. Internal CPack modules (e.g. CPackDEB, CPackRPM, CPackFreeBSD) should use `CPACK_PACKAGE_HOMEPAGE_URL` instead, which is available after inclusion of `CPack.cmake` into `CMakeLists.txt`. Closes: #19607
This commit is contained in:
@@ -546,8 +546,8 @@ function(cpack_deb_prepare_package_vars)
|
||||
)
|
||||
|
||||
# Homepage: (optional)
|
||||
if(NOT CPACK_DEBIAN_PACKAGE_HOMEPAGE AND CMAKE_PROJECT_HOMEPAGE_URL)
|
||||
set(CPACK_DEBIAN_PACKAGE_HOMEPAGE "${CMAKE_PROJECT_HOMEPAGE_URL}")
|
||||
if(NOT CPACK_DEBIAN_PACKAGE_HOMEPAGE AND CPACK_PACKAGE_HOMEPAGE_URL)
|
||||
set(CPACK_DEBIAN_PACKAGE_HOMEPAGE "${CPACK_PACKAGE_HOMEPAGE_URL}")
|
||||
endif()
|
||||
|
||||
# Section: (recommended)
|
||||
|
||||
@@ -68,7 +68,7 @@ _cpack_freebsd_fallback_var("CPACK_FREEBSD_PACKAGE_DESCRIPTION"
|
||||
# There's really only one homepage for a project, so
|
||||
# re-use the Debian setting if it's there.
|
||||
_cpack_freebsd_fallback_var("CPACK_FREEBSD_PACKAGE_WWW"
|
||||
"CMAKE_PROJECT_HOMEPAGE_URL"
|
||||
"CPACK_PACKAGE_HOMEPAGE_URL"
|
||||
"CPACK_DEBIAN_PACKAGE_HOMEPAGE"
|
||||
"_cpack_freebsd_fallback_www"
|
||||
)
|
||||
|
||||
@@ -844,8 +844,8 @@ function(cpack_rpm_generate_package)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(NOT CPACK_RPM_PACKAGE_URL AND CMAKE_PROJECT_HOMEPAGE_URL)
|
||||
set(CPACK_RPM_PACKAGE_URL "${CMAKE_PROJECT_HOMEPAGE_URL}")
|
||||
if(NOT CPACK_RPM_PACKAGE_URL AND CPACK_PACKAGE_HOMEPAGE_URL)
|
||||
set(CPACK_RPM_PACKAGE_URL "${CPACK_PACKAGE_HOMEPAGE_URL}")
|
||||
endif()
|
||||
|
||||
# CPACK_RPM_PACKAGE_NAME (mandatory)
|
||||
|
||||
@@ -553,6 +553,7 @@ set(cpack_tests
|
||||
DEB.MD5SUMS
|
||||
DEB.DEB_PACKAGE_VERSION_BACK_COMPATIBILITY
|
||||
DEB.DEB_DESCRIPTION
|
||||
DEB.PROJECT_META
|
||||
|
||||
RPM.CUSTOM_BINARY_SPEC_FILE
|
||||
RPM.CUSTOM_NAMES
|
||||
@@ -573,6 +574,7 @@ set(cpack_tests
|
||||
RPM.SUGGESTS
|
||||
RPM.SYMLINKS
|
||||
RPM.USER_FILELIST
|
||||
RPM.PROJECT_META
|
||||
|
||||
7Z
|
||||
TBZ2
|
||||
|
||||
@@ -46,3 +46,4 @@ run_cpack_test_subtests(
|
||||
false
|
||||
"MONOLITHIC;COMPONENT"
|
||||
)
|
||||
run_cpack_test(PROJECT_META "RPM.PROJECT_META;DEB.PROJECT_META" false "MONOLITHIC;COMPONENT")
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
if(GENERATOR_TYPE STREQUAL DEB)
|
||||
set(EXPECTED_FILE_1 "project_meta-1.2.3*.deb")
|
||||
elseif(GENERATOR_TYPE STREQUAL RPM)
|
||||
set(EXPECTED_FILE_1 "project_meta-1.2.3*.rpm")
|
||||
else()
|
||||
message(FATAL_ERROR "Unexpected CPack generator")
|
||||
endif()
|
||||
set(EXPECTED_FILES_COUNT "1")
|
||||
set(EXPECTED_FILE_CONTENT_1_LIST "/foo;/foo/CMakeLists.txt")
|
||||
30
Tests/RunCMake/CPack/tests/PROJECT_META/VerifyResult.cmake
Normal file
30
Tests/RunCMake/CPack/tests/PROJECT_META/VerifyResult.cmake
Normal file
@@ -0,0 +1,30 @@
|
||||
function(checkPackageURL FILE TAG EXPECTED_URL)
|
||||
getPackageInfo("${FILE}" "_file_info")
|
||||
string(REPLACE "\n" ";" _file_info "${_file_info}")
|
||||
|
||||
set(_seen_url FALSE)
|
||||
foreach(_line IN LISTS _file_info)
|
||||
if(_line MATCHES "${TAG}: (.*)")
|
||||
set(_seen_url TRUE)
|
||||
if(NOT CMAKE_MATCH_1 STREQUAL EXPECTED_URL)
|
||||
message(FATAL_ERROR "Unexpected `Homepage` URL: `${CMAKE_MATCH_1}` != `${EXPECTED_URL}`")
|
||||
endif()
|
||||
break()
|
||||
endif()
|
||||
endforeach()
|
||||
if(NOT _seen_url)
|
||||
message(FATAL_ERROR "The packge `${FILE}` do not have URL as expected")
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
if(GENERATOR_TYPE STREQUAL DEB)
|
||||
set(_tag " Homepage") # NOTE The leading space
|
||||
elseif(GENERATOR_TYPE STREQUAL RPM)
|
||||
set(_tag "URL.*")
|
||||
else()
|
||||
message(FATAL_ERROR "Unexpected CPack generator")
|
||||
endif()
|
||||
|
||||
checkPackageURL("${FOUND_FILE_1}" "${_tag}" "https://meta.test.info")
|
||||
|
||||
# kate: indent-width 2;
|
||||
11
Tests/RunCMake/CPack/tests/PROJECT_META/test.cmake
Normal file
11
Tests/RunCMake/CPack/tests/PROJECT_META/test.cmake
Normal file
@@ -0,0 +1,11 @@
|
||||
project(
|
||||
MetaInfoTest
|
||||
VERSION 1.2.3
|
||||
DESCRIPTION "This is going to be a summary"
|
||||
HOMEPAGE_URL "https://meta.test.info"
|
||||
)
|
||||
install(FILES CMakeLists.txt DESTINATION foo COMPONENT test)
|
||||
|
||||
if(PACKAGING_TYPE STREQUAL "COMPONENT")
|
||||
set(CPACK_COMPONENTS_ALL test)
|
||||
endif()
|
||||
Reference in New Issue
Block a user