Merge branch 'backport-license-rst' (early part) into license-rst

This commit is contained in:
Brad King 2025-03-03 10:42:50 -05:00
commit 67b6964efa
16 changed files with 52 additions and 40 deletions

View File

@ -10,8 +10,8 @@ skip =
.git, .git,
.typos.toml, .typos.toml,
build, build,
Copyright.txt,
CTestCustom.cmake.in, CTestCustom.cmake.in,
LICENSE.rst,
Modules/Internal/CPack/NSIS.template.in, Modules/Internal/CPack/NSIS.template.in,
Source/CursesDialog/form/*, Source/CursesDialog/form/*,
Source/kwsys/*, Source/kwsys/*,

View File

@ -25,7 +25,7 @@ for try in $(seq $n); do
git reset -q --hard FETCH_HEAD git reset -q --hard FETCH_HEAD
Source/CMakeVersion.bash Source/CMakeVersion.bash
git update-index -q --ignore-missing --refresh git update-index -q --ignore-missing --refresh
modified=$(git diff-index --name-only HEAD -- "Source/CMakeVersion.cmake" "Copyright.txt") modified=$(git diff-index --name-only HEAD -- "Source/CMakeVersion.cmake" "LICENSE.rst")
if test -n "$modified"; then if test -n "$modified"; then
echo "version changed" echo "version changed"
git add -u git add -u

View File

@ -57,7 +57,7 @@ SEH = "SEH"
ignore-hidden = false ignore-hidden = false
ignore-dot = false ignore-dot = false
extend-exclude = [ extend-exclude = [
"Copyright.txt" "LICENSE.rst"
# Exclude third-party sources. # Exclude third-party sources.
, "Source/CursesDialog/form/" , "Source/CursesDialog/form/"
, "Source/kwsys/" , "Source/kwsys/"

View File

@ -14,10 +14,12 @@ if(CMake_INSTALL_DEPENDENCIES)
include(${CMake_SOURCE_DIR}/Modules/InstallRequiredSystemLibraries.cmake) include(${CMake_SOURCE_DIR}/Modules/InstallRequiredSystemLibraries.cmake)
endif() endif()
set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/LICENSE.txt")
configure_file("${CMake_LICENSE_FILE}" "${CPACK_RESOURCE_FILE_LICENSE}" COPYONLY)
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "CMake is a build tool") set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "CMake is a build tool")
set(CPACK_PACKAGE_VENDOR "Kitware") set(CPACK_PACKAGE_VENDOR "Kitware")
set(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/Copyright.txt") set(CPACK_PACKAGE_DESCRIPTION_FILE "${CPACK_RESOURCE_FILE_LICENSE}")
set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/Copyright.txt")
set(CPACK_PACKAGE_NAME "${CMAKE_PROJECT_NAME}") set(CPACK_PACKAGE_NAME "${CMAKE_PROJECT_NAME}")
set(CPACK_PACKAGE_VERSION "${CMake_VERSION}") set(CPACK_PACKAGE_VERSION "${CMake_VERSION}")
set(CPACK_PACKAGE_INSTALL_DIRECTORY "${CPACK_PACKAGE_NAME}") set(CPACK_PACKAGE_INSTALL_DIRECTORY "${CPACK_PACKAGE_NAME}")

View File

@ -386,6 +386,7 @@ endif()
# The main section of the CMakeLists file # The main section of the CMakeLists file
# #
#----------------------------------------------------------------------- #-----------------------------------------------------------------------
include(Source/CMakeCopyright.cmake)
include(Source/CMakeVersion.cmake) include(Source/CMakeVersion.cmake)
include(CTest) include(CTest)
@ -533,7 +534,9 @@ endif()
if(NOT CMake_TEST_EXTERNAL_CMAKE) if(NOT CMake_TEST_EXTERNAL_CMAKE)
# Install license file as it requires. # Install license file as it requires.
install(FILES Copyright.txt DESTINATION ${CMAKE_DOC_DIR}) install(FILES
"${CMake_LICENSE_FILE}"
DESTINATION ${CMAKE_DOC_DIR})
# Install script directories. # Install script directories.
install( install(

View File

@ -74,6 +74,6 @@ License
We do not require any formal copyright assignment or contributor license We do not require any formal copyright assignment or contributor license
agreement. Any contributions intentionally sent upstream are presumed agreement. Any contributions intentionally sent upstream are presumed
to be offered under terms of the OSI-approved BSD 3-clause License. to be offered under terms of the OSI-approved BSD 3-clause License.
See `Copyright.txt`_ for details. See `LICENSE.rst`_ for details.
.. _`Copyright.txt`: Copyright.txt .. _`LICENSE.rst`: LICENSE.rst

View File

@ -1,6 +1,4 @@
CMake - Cross Platform Makefile Generator
Copyright 2000-2025 Kitware, Inc. and Contributors Copyright 2000-2025 Kitware, Inc. and Contributors
All rights reserved.
Redistribution and use in source and binary forms, with or without Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions modification, are permitted provided that the following conditions
@ -29,9 +27,10 @@ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
------------------------------------------------------------------------------ Contributors
************
The following individuals and institutions are among the Contributors: The following individuals and institutions are among the contributors:
* Aaron C. Meadows <cmake@shadowguarddev.com> * Aaron C. Meadows <cmake@shadowguarddev.com>
* Adriaan de Groot <groot@kde.org> * Adriaan de Groot <groot@kde.org>
@ -114,23 +113,27 @@ The following individuals and institutions are among the Contributors:
See version control history for details of individual contributions. See version control history for details of individual contributions.
Copyright
=========
The above copyright and license notice applies to distributions of The above copyright and license notice applies to distributions of
CMake in source and binary form. Third-party software packages supplied CMake in source and binary form. Third-party software packages supplied
with CMake under compatible licenses provide their own copyright notices with CMake under compatible licenses provide their own copyright notices
documented in corresponding subdirectories or source files. documented in corresponding subdirectories or source files.
------------------------------------------------------------------------------ Sponsorship
===========
CMake was initially developed by Kitware with the following sponsorship: CMake was initially developed by Kitware with the following sponsorship:
* National Library of Medicine at the National Institutes of Health * National Library of Medicine at the National Institutes of Health
as part of the Insight Segmentation and Registration Toolkit (ITK). as part of the Insight Segmentation and Registration Toolkit (ITK).
* US National Labs (Los Alamos, Livermore, Sandia) ASC Parallel * US National Labs (Los Alamos, Livermore, Sandia) ASC Parallel
Visualization Initiative. Visualization Initiative.
* National Alliance for Medical Image Computing (NAMIC) is funded by the * National Alliance for Medical Image Computing (NAMIC) is funded by the
National Institutes of Health through the NIH Roadmap for Medical Research, National Institutes of Health through the NIH Roadmap for Medical Research,
Grant U54 EB005149. Grant U54 EB005149.
* Kitware, Inc. * Kitware, Inc.

View File

@ -22,9 +22,9 @@ License
======= =======
CMake is distributed under the OSI-approved BSD 3-clause License. CMake is distributed under the OSI-approved BSD 3-clause License.
See `Copyright.txt`_ for details. See `LICENSE.rst`_ for details.
.. _`Copyright.txt`: Copyright.txt .. _`LICENSE.rst`: LICENSE.rst
Building CMake Building CMake
============== ==============

View File

@ -0,0 +1,10 @@
# CMake license file and copyright line.
set(CMake_LICENSE_FILE "${CMake_SOURCE_DIR}/LICENSE.rst")
file(STRINGS "${CMake_LICENSE_FILE}" CMake_COPYRIGHT_LINE LIMIT_COUNT 1 REGEX "^Copyright ")
if(NOT CMake_COPYRIGHT_LINE MATCHES [[^Copyright 2000-2[0-9][0-9][0-9] Kitware, Inc\. and Contributors$]])
message(FATAL_ERROR
"The CMake license file:\n"
" ${CMake_LICENSE_FILE}\n"
"does not contain a copyright line matching the expected pattern."
)
endif()

View File

@ -12,6 +12,6 @@ if version_patch_line=$(grep -E '^set\(CMake_VERSION_PATCH [0-9]{8}\)' "$version
if [[ "$version_patch_year" =~ ^[0-9][0-9][0-9][0-9]$ ]] ; then if [[ "$version_patch_year" =~ ^[0-9][0-9][0-9][0-9]$ ]] ; then
sed -i -e ' sed -i -e '
s/\(^Copyright 2000-\)[0-9][0-9][0-9][0-9]\( .*\)/\1'"$version_patch_year"'\2/ s/\(^Copyright 2000-\)[0-9][0-9][0-9][0-9]\( .*\)/\1'"$version_patch_year"'\2/
' "${BASH_SOURCE%/*}/../Copyright.txt" ' "${BASH_SOURCE%/*}/../LICENSE.rst"
fi fi
fi fi

View File

@ -308,15 +308,12 @@ Checks: '-*,llvm-twine-local'
") ")
if(APPLE) if(APPLE)
file(STRINGS "${CMake_SOURCE_DIR}/Copyright.txt" copyright_line
LIMIT_COUNT 1 REGEX "^Copyright 2000-20[0-9][0-9] Kitware")
set_target_properties(cmake-gui PROPERTIES set_target_properties(cmake-gui PROPERTIES
OUTPUT_NAME CMake OUTPUT_NAME CMake
MACOSX_BUNDLE_INFO_PLIST "${CMAKE_CURRENT_SOURCE_DIR}/Info.plist.in" MACOSX_BUNDLE_INFO_PLIST "${CMAKE_CURRENT_SOURCE_DIR}/Info.plist.in"
MACOSX_BUNDLE_SHORT_VERSION_STRING "${CMAKE_BUNDLE_VERSION}" MACOSX_BUNDLE_SHORT_VERSION_STRING "${CMAKE_BUNDLE_VERSION}"
# TBD: MACOSX_BUNDLE_BUNDLE_VERSION "${CMAKE_BUNDLE_VERSION}" # TBD: MACOSX_BUNDLE_BUNDLE_VERSION "${CMAKE_BUNDLE_VERSION}"
MACOSX_BUNDLE_COPYRIGHT "${copyright_line}" MACOSX_BUNDLE_COPYRIGHT "${CMake_COPYRIGHT_LINE}"
MACOSX_BUNDLE_GUI_IDENTIFIER "org.cmake.cmake" MACOSX_BUNDLE_GUI_IDENTIFIER "org.cmake.cmake"
) )

View File

@ -1026,8 +1026,7 @@ void CMakeSetupDialog::doAbout()
"CMake suite maintained and supported by Kitware (kitware.com/cmake).\n" "CMake suite maintained and supported by Kitware (kitware.com/cmake).\n"
"Distributed under terms of the BSD 3-Clause License.\n" "Distributed under terms of the BSD 3-Clause License.\n"
"\n" "\n"
"CMake GUI maintained by csimsoft,\n" "CMake GUI built using Qt %2 (qt-project.org).\n"
"built using Qt %2 (qt-project.org).\n"
#ifdef USE_LGPL #ifdef USE_LGPL
"\n" "\n"
"The Qt Toolkit is Copyright (C) The Qt Company Ltd.\n" "The Qt Toolkit is Copyright (C) The Qt Company Ltd.\n"

View File

@ -1,21 +1,21 @@
if(CMAKE_VERSION MATCHES "\\.(20[0-9][0-9])[0-9][0-9][0-9][0-9](-|$)") if(CMAKE_VERSION MATCHES "\\.(20[0-9][0-9])[0-9][0-9][0-9][0-9](-|$)")
set(version_year "${CMAKE_MATCH_1}") set(version_year "${CMAKE_MATCH_1}")
set(copyright_line_regex "^Copyright 2000-(20[0-9][0-9]) Kitware") set(copyright_line_regex "^Copyright 2000-(20[0-9][0-9]) Kitware")
file(STRINGS "${CMAKE_CURRENT_LIST_DIR}/../Copyright.txt" copyright_line file(STRINGS "${CMAKE_CURRENT_LIST_DIR}/../LICENSE.rst" copyright_line
LIMIT_COUNT 1 REGEX "${copyright_line_regex}") LIMIT_COUNT 1 REGEX "${copyright_line_regex}")
if(copyright_line MATCHES "${copyright_line_regex}") if(copyright_line MATCHES "${copyright_line_regex}")
set(copyright_year "${CMAKE_MATCH_1}") set(copyright_year "${CMAKE_MATCH_1}")
if(copyright_year LESS version_year) if(copyright_year LESS version_year)
message(FATAL_ERROR "Copyright.txt contains\n" message(FATAL_ERROR "LICENSE.rst contains\n"
" ${copyright_line}\n" " ${copyright_line}\n"
"but the current version year is ${version_year}.") "but the current version year is ${version_year}.")
else() else()
message(STATUS "PASSED: Copyright.txt contains\n" message(STATUS "PASSED: LICENSE.rst contains\n"
" ${copyright_line}\n" " ${copyright_line}\n"
"and the current version year is ${version_year}.") "and the current version year is ${version_year}.")
endif() endif()
else() else()
message(FATAL_ERROR "Copyright.txt has no Copyright line of expected format!") message(FATAL_ERROR "LICENSE.rst has no Copyright line of expected format!")
endif() endif()
else() else()
message(STATUS "SKIPPED: CMAKE_VERSION does not know the year: ${CMAKE_VERSION}") message(STATUS "SKIPPED: CMAKE_VERSION does not know the year: ${CMAKE_VERSION}")

View File

@ -1,6 +1,6 @@
# Regex to match license notices at the top of module files. # Regex to match license notices at the top of module files.
set(notice_regex [[^# Distributed under the OSI-approved BSD 3-Clause License\. See accompanying set(notice_regex [[^# Distributed under the OSI-approved BSD 3-Clause License\. See accompanying
# file Copyright\.txt or https://cmake\.org/licensing for details\. # file LICENSE\.rst or https://cmake\.org/licensing for details\.
]]) ]])
string(REPLACE "\n" "\r?\n" notice_regex "${notice_regex}") string(REPLACE "\n" "\r?\n" notice_regex "${notice_regex}")

View File

@ -7,6 +7,7 @@ if(NOT CMake_SOURCE_DIR)
get_filename_component(tmp "${CMAKE_CURRENT_SOURCE_DIR}" PATH) get_filename_component(tmp "${CMAKE_CURRENT_SOURCE_DIR}" PATH)
get_filename_component(CMake_SOURCE_DIR "${tmp}" PATH) get_filename_component(CMake_SOURCE_DIR "${tmp}" PATH)
include(${CMake_SOURCE_DIR}/Modules/CTestUseLaunchers.cmake) include(${CMake_SOURCE_DIR}/Modules/CTestUseLaunchers.cmake)
include(${CMake_SOURCE_DIR}/Source/CMakeCopyright.cmake)
include(${CMake_SOURCE_DIR}/Source/CMakeVersion.cmake) include(${CMake_SOURCE_DIR}/Source/CMakeVersion.cmake)
include(${CMake_SOURCE_DIR}/Source/CMakeInstallDestinations.cmake) include(${CMake_SOURCE_DIR}/Source/CMakeInstallDestinations.cmake)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/CTestCustom.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/CTestCustom.cmake @ONLY) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/CTestCustom.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/CTestCustom.cmake @ONLY)
@ -50,10 +51,7 @@ elseif(NOT SPHINX_EXECUTABLE)
message(FATAL_ERROR "SPHINX_EXECUTABLE (sphinx-build) is not found!") message(FATAL_ERROR "SPHINX_EXECUTABLE (sphinx-build) is not found!")
endif() endif()
set(copyright_line_regex "^Copyright (2000-20[0-9][0-9] Kitware.*)") if(CMake_COPYRIGHT_LINE MATCHES "^Copyright (.*)$")
file(STRINGS "${CMake_SOURCE_DIR}/Copyright.txt" copyright_line
LIMIT_COUNT 1 REGEX "${copyright_line_regex}")
if(copyright_line MATCHES "${copyright_line_regex}")
set(conf_copyright "${CMAKE_MATCH_1}") set(conf_copyright "${CMAKE_MATCH_1}")
else() else()
set(conf_copyright "Kitware, Inc.") set(conf_copyright "Kitware, Inc.")

View File

@ -64,7 +64,7 @@ if test "$cmake_version_rc" != ""; then
cmake_version="${cmake_version}-rc${cmake_version_rc}" cmake_version="${cmake_version}-rc${cmake_version_rc}"
fi fi
cmake_copyright="`grep '^Copyright .* Kitware' "${cmake_source_dir}/Copyright.txt"`" cmake_copyright="`grep '^Copyright .* Kitware' "${cmake_source_dir}/LICENSE.rst"`"
cmake_bin_dir_keyword="OTHER" cmake_bin_dir_keyword="OTHER"
cmake_data_dir_keyword="OTHER" cmake_data_dir_keyword="OTHER"