summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.clang-format10
-rw-r--r--.gitlab-ci.yml30
-rw-r--r--.gitlab/ci/configure_fedora31_sphinx.cmake8
-rwxr-xr-x.gitlab/ci/docker/fedora31/install_deps.sh8
-rw-r--r--.gitlab/ci/gitlab_ci.cmake3
-rw-r--r--CMakeLists.txt11
-rw-r--r--CTestConfig.cmake2
-rw-r--r--CTestCustom.cmake.in2
-rw-r--r--Help/dev/source.rst15
-rw-r--r--Help/guide/user-interaction/index.rst5
-rw-r--r--Help/prop_tgt/INSTALL_RPATH.rst4
-rw-r--r--Modules/FindPython/Support.cmake113
-rw-r--r--Source/CMakeVersion.cmake2
-rw-r--r--Source/CPack/WiX/cmWIXPatchParser.cxx2
-rw-r--r--Source/CPack/cmCPackArchiveGenerator.cxx2
-rw-r--r--Source/CPack/cmCPackExternalGenerator.cxx6
-rw-r--r--Source/CTest/cmCTestBZR.cxx4
-rw-r--r--Source/CTest/cmCTestCurl.h2
-rw-r--r--Source/CTest/cmCTestMultiProcessHandler.cxx8
-rw-r--r--Source/CTest/cmCTestMultiProcessHandler.h3
-rw-r--r--Source/CTest/cmCTestResourceSpec.cxx6
-rw-r--r--Source/CTest/cmCTestSubmitHandler.cxx6
-rw-r--r--Source/CTest/cmProcess.cxx2
-rw-r--r--Source/CTest/cmProcess.h3
-rw-r--r--Source/cmAffinity.cxx2
-rw-r--r--Source/cmAlgorithms.h2
-rw-r--r--Source/cmArchiveWrite.cxx4
-rw-r--r--Source/cmCTest.cxx6
-rw-r--r--Source/cmConnection.cxx11
-rw-r--r--Source/cmConnection.h2
-rw-r--r--Source/cmCryptoHash.cxx6
-rw-r--r--Source/cmCurl.h2
-rw-r--r--Source/cmELF.cxx6
-rw-r--r--Source/cmExprParserHelper.h2
-rw-r--r--Source/cmFileAPI.h6
-rw-r--r--Source/cmFileAPICMakeFiles.cxx2
-rw-r--r--Source/cmFileAPICMakeFiles.h2
-rw-r--r--Source/cmFileAPICache.cxx2
-rw-r--r--Source/cmFileAPICache.h2
-rw-r--r--Source/cmFileAPICodemodel.cxx2
-rw-r--r--Source/cmFileAPICodemodel.h2
-rw-r--r--Source/cmFileCommand.cxx5
-rw-r--r--Source/cmFileMonitor.h2
-rw-r--r--Source/cmFindPackageCommand.h2
-rw-r--r--Source/cmGeneratedFileStream.cxx3
-rw-r--r--Source/cmGetPipes.cxx3
-rw-r--r--Source/cmGlobalGenerator.cxx4
-rw-r--r--Source/cmGlobalGenerator.h2
-rw-r--r--Source/cmGlobalNinjaGenerator.cxx8
-rw-r--r--Source/cmGlobalVisualStudio10Generator.cxx4
-rw-r--r--Source/cmJsonObjects.h2
-rw-r--r--Source/cmLocalGenerator.cxx4
-rw-r--r--Source/cmLocalGenerator.h2
-rw-r--r--Source/cmLocalVisualStudio10Generator.cxx2
-rw-r--r--Source/cmLocalVisualStudio7Generator.cxx3
-rw-r--r--Source/cmMakefile.cxx5
-rw-r--r--Source/cmMakefileProfilingData.cxx6
-rw-r--r--Source/cmMathCommand.cxx2
-rw-r--r--Source/cmNinjaTargetGenerator.cxx4
-rw-r--r--Source/cmNinjaTargetGenerator.h2
-rw-r--r--Source/cmPipeConnection.h2
-rw-r--r--Source/cmQtAutoGenInitializer.cxx6
-rw-r--r--Source/cmQtAutoGenerator.cxx4
-rw-r--r--Source/cmQtAutoGenerator.h2
-rw-r--r--Source/cmQtAutoMocUic.cxx4
-rw-r--r--Source/cmServer.cxx7
-rw-r--r--Source/cmServer.h4
-rw-r--r--Source/cmServerConnection.cxx2
-rw-r--r--Source/cmServerProtocol.cxx2
-rw-r--r--Source/cmServerProtocol.h2
-rw-r--r--Source/cmStandardLexer.h2
-rw-r--r--Source/cmSystemTools.cxx5
-rw-r--r--Source/cmUVHandlePtr.cxx2
-rw-r--r--Source/cmUVHandlePtr.h2
-rw-r--r--Source/cmUVProcessChain.cxx2
-rw-r--r--Source/cmUVProcessChain.h2
-rw-r--r--Source/cmUVSignalHackRAII.h2
-rw-r--r--Source/cmUVStreambuf.h2
-rw-r--r--Source/cmVSSetupHelper.h3
-rw-r--r--Source/cmVersion.h2
-rw-r--r--Source/cmWorkerPool.cxx2
-rw-r--r--Source/cmXMLParser.cxx4
-rw-r--r--Source/cmake.cxx2
-rw-r--r--Source/cmake.h2
-rw-r--r--Source/cmakemain.cxx6
-rw-r--r--Source/cmcmd.cxx3
-rw-r--r--Tests/CMakeLib/testUVProcessChain.cxx2
-rw-r--r--Tests/CMakeLib/testUVRAII.cxx2
-rw-r--r--Tests/CMakeLib/testUVStreambuf.cxx3
-rw-r--r--Tests/CMakeLists.txt5
-rw-r--r--Tests/CPackWiXGenerator/myotherapp.cpp2
-rw-r--r--Tests/FindPython/CMakeLists.txt93
-rw-r--r--Tests/FindPython/ExactVersion/CMakeLists.txt56
-rw-r--r--Tests/RunCMake/CommandLine/cmake_depends/test_UTF-16LE.hbin58 -> 59 bytes
-rw-r--r--Tests/VSWindowsFormsResx/WindowsFormsResx/MyForm.cpp2
-rw-r--r--Utilities/IWYU/mapping.imp59
-rw-r--r--Utilities/Release/.gitattributes1
-rw-r--r--Utilities/Release/README.rst46
-rw-r--r--Utilities/Release/create-cmake-release.cmake4
-rw-r--r--Utilities/Release/linux/x86_64/test/cache-ninja.txt4
-rw-r--r--Utilities/Release/win/x86/Dockerfile23
-rw-r--r--Utilities/Release/win/x86/base/Dockerfile30
-rwxr-xr-xUtilities/Release/win/x86/base/msvc-i386.bat1
-rwxr-xr-xUtilities/Release/win/x86/base/msvc-x86_64.bat1
-rwxr-xr-xUtilities/Release/win/x86/build.bat19
-rw-r--r--Utilities/Release/win/x86/cache-i386.txt45
-rw-r--r--Utilities/Release/win/x86/cache-x86_64.txt45
-rw-r--r--Utilities/Release/win/x86/deps/Dockerfile127
-rwxr-xr-xUtilities/Release/win/x86/deps/qt-build.bat47
-rw-r--r--Utilities/Release/win/x86/deps/qt-install.patch26
-rwxr-xr-xUtilities/Release/win/x86/pack.bat12
-rw-r--r--Utilities/Release/win/x86/test/Dockerfile37
-rwxr-xr-xUtilities/Release/win/x86/test/test-ninja.bat19
-rwxr-xr-xUtilities/Release/win/x86/test/test-nmake.bat19
-rw-r--r--Utilities/Release/win32_release.cmake53
-rw-r--r--Utilities/Release/win64_release.cmake53
-rw-r--r--Utilities/Sphinx/CMakeLists.txt2
-rw-r--r--Utilities/Sphinx/CTestConfig.cmake14
-rw-r--r--Utilities/cm3p/Setup.Configuration.h8
-rw-r--r--Utilities/cm3p/archive.h (renamed from Utilities/cm_libarchive.h)10
-rw-r--r--Utilities/cm3p/archive_entry.h14
-rw-r--r--Utilities/cm3p/bzlib.h (renamed from Utilities/cm_bzlib.h)8
-rw-r--r--Utilities/cm3p/curl/curl.h (renamed from Utilities/cm_curl.h)8
-rw-r--r--Utilities/cm3p/expat.h (renamed from Utilities/cm_expat.h)8
-rw-r--r--Utilities/cm3p/json/reader.h (renamed from Utilities/cm_jsoncpp_writer.h)8
-rw-r--r--Utilities/cm3p/json/value.h (renamed from Utilities/cm_jsoncpp_value.h)8
-rw-r--r--Utilities/cm3p/json/writer.h (renamed from Utilities/cm_jsoncpp_reader.h)8
-rw-r--r--Utilities/cm3p/kwiml/abi.h (renamed from Utilities/cm_kwiml.h)10
-rw-r--r--Utilities/cm3p/kwiml/int.h14
-rw-r--r--Utilities/cm3p/lzma.h (renamed from Utilities/cm_lzma.h)8
-rw-r--r--Utilities/cm3p/rhash.h (renamed from Utilities/cm_rhash.h)8
-rw-r--r--Utilities/cm3p/uv.h (renamed from Utilities/cm_uv.h)8
-rw-r--r--Utilities/cm3p/zlib.h (renamed from Utilities/cm_zlib.h)8
-rw-r--r--Utilities/cm3p/zstd.h (renamed from Utilities/cm_zstd.h)8
-rw-r--r--Utilities/cmexpat/lib/siphash.h2
-rw-r--r--Utilities/cmlibarchive/libarchive/archive_read_support_filter_bzip2.c2
-rw-r--r--Utilities/cmlibarchive/libarchive/archive_read_support_filter_gzip.c2
-rw-r--r--Utilities/cmlibarchive/libarchive/archive_read_support_filter_lzop.c2
-rw-r--r--Utilities/cmlibarchive/libarchive/archive_read_support_filter_xz.c2
-rw-r--r--Utilities/cmlibarchive/libarchive/archive_read_support_filter_zstd.c2
-rw-r--r--Utilities/cmlibarchive/libarchive/archive_read_support_format_7zip.c6
-rw-r--r--Utilities/cmlibarchive/libarchive/archive_read_support_format_cab.c2
-rw-r--r--Utilities/cmlibarchive/libarchive/archive_read_support_format_iso9660.c2
-rw-r--r--Utilities/cmlibarchive/libarchive/archive_read_support_format_rar.c2
-rw-r--r--Utilities/cmlibarchive/libarchive/archive_read_support_format_rar5.c2
-rw-r--r--Utilities/cmlibarchive/libarchive/archive_read_support_format_xar.c6
-rw-r--r--Utilities/cmlibarchive/libarchive/archive_read_support_format_zip.c2
-rw-r--r--Utilities/cmlibarchive/libarchive/archive_util.c6
-rw-r--r--Utilities/cmlibarchive/libarchive/archive_version_details.c8
-rw-r--r--Utilities/cmlibarchive/libarchive/archive_write_add_filter_bzip2.c2
-rw-r--r--Utilities/cmlibarchive/libarchive/archive_write_add_filter_gzip.c2
-rw-r--r--Utilities/cmlibarchive/libarchive/archive_write_add_filter_xz.c2
-rw-r--r--Utilities/cmlibarchive/libarchive/archive_write_add_filter_zstd.c2
-rw-r--r--Utilities/cmlibarchive/libarchive/archive_write_disk_posix.c2
-rw-r--r--Utilities/cmlibarchive/libarchive/archive_write_set_format_7zip.c6
-rw-r--r--Utilities/cmlibarchive/libarchive/archive_write_set_format_iso9660.c2
-rw-r--r--Utilities/cmlibarchive/libarchive/archive_write_set_format_xar.c6
-rw-r--r--Utilities/cmlibarchive/libarchive/archive_write_set_format_zip.c2
-rw-r--r--Utilities/cmlibrhash/librhash/byte_order.h2
-rw-r--r--Utilities/cmlibrhash/librhash/ustd.h2
-rw-r--r--Utilities/cmnghttp2/cmakeconfig.h.in3
-rw-r--r--Utilities/cmzlib/CMakeLists.txt5
-rw-r--r--Utilities/std/cm/bits/string_view.cxx2
-rw-r--r--Utilities/std/cm/shared_mutex2
-rwxr-xr-xbootstrap8
165 files changed, 1080 insertions, 475 deletions
diff --git a/.clang-format b/.clang-format
index 4bfce44..8c015ef 100644
--- a/.clang-format
+++ b/.clang-format
@@ -32,16 +32,18 @@ IncludeCategories:
Priority: 5
- Regex: '^(<|")Qt?[A-Z]'
Priority: 6
- - Regex: '^(<|")cmsys/'
+ - Regex: '^<cmtp/'
Priority: 7
- - Regex: '^(<|")cm_'
+ - Regex: '^(<|")cmsys/'
Priority: 8
- - Regex: '^(<|")cm[A-Z][^.]+\.h'
+ - Regex: '^(<|")cm_'
Priority: 9
+ - Regex: '^(<|")cm[A-Z][^.]+\.h'
+ Priority: 10
- Regex: '^<[^.]+\.h'
Priority: 4
- Regex: '^<'
Priority: 1
- Regex: '.*'
- Priority: 10
+ Priority: 11
...
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 9a91d20..0a55ca3 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -4,7 +4,7 @@
- tags@cmake/cmake
.fedora31: &fedora31
- image: "kitware/cmake:ci-fedora31-x86_64-2020-04-27"
+ image: "kitware/cmake:ci-fedora31-x86_64-2020-05-05"
variables:
GIT_CLONE_PATH: "$CI_BUILDS_DIR/gitlab-kitware-cmake ci"
@@ -29,6 +29,14 @@
CMAKE_CONFIGURATION: fedora31_tidy
CTEST_NO_WARNINGS_ALLOWED: 1
+.fedora31_sphinx: &fedora31_sphinx
+ extends: .fedora31
+
+ variables:
+ CMAKE_CONFIGURATION: fedora31_sphinx
+ CTEST_NO_WARNINGS_ALLOWED: 1
+ CTEST_SOURCE_SUBDIRECTORY: "Utilities/Sphinx"
+
before_script:
- .gitlab/ci/cmake.sh
- .gitlab/ci/ninja.sh
@@ -95,3 +103,23 @@ build:fedora31-tidy:
- "$LAUNCHER ctest -VV -S .gitlab/ci/ctest_build.cmake"
- sccache --show-stats
interruptible: true
+
+build:fedora31-sphinx:
+ <<:
+ - *fedora31_sphinx
+ stage: build
+ only: *only_settings
+ tags:
+ - build
+ - docker
+ - linux
+ - linux-3.17 # Needed to be able to load Fedora's Qt libraries.
+
+ script:
+ - .gitlab/ci/sccache.sh
+ - sccache --start-server
+ - sccache --show-stats
+ - "$LAUNCHER ctest -VV -S .gitlab/ci/ctest_configure.cmake"
+ - "$LAUNCHER ctest -VV -S .gitlab/ci/ctest_build.cmake"
+ - sccache --show-stats
+ interruptible: true
diff --git a/.gitlab/ci/configure_fedora31_sphinx.cmake b/.gitlab/ci/configure_fedora31_sphinx.cmake
new file mode 100644
index 0000000..dfc9b8c
--- /dev/null
+++ b/.gitlab/ci/configure_fedora31_sphinx.cmake
@@ -0,0 +1,8 @@
+set(SPHINX_INFO ON CACHE BOOL "")
+set(SPHINX_MAN ON CACHE BOOL "")
+set(SPHINX_HTML ON CACHE BOOL "")
+set(SPHINX_SINGLEHTML ON CACHE BOOL "")
+set(SPHINX_QTHELP ON CACHE BOOL "")
+set(SPHINX_TEXT ON CACHE BOOL "")
+
+include("${CMAKE_CURRENT_LIST_DIR}/configure_common.cmake")
diff --git a/.gitlab/ci/docker/fedora31/install_deps.sh b/.gitlab/ci/docker/fedora31/install_deps.sh
index 978fdbd..7f8da57 100755
--- a/.gitlab/ci/docker/fedora31/install_deps.sh
+++ b/.gitlab/ci/docker/fedora31/install_deps.sh
@@ -5,9 +5,15 @@ dnf install -y \
openssl-devel
# Install development tools.
-dnf install -y \
+dnf install --setopt=install_weak_deps=False -y \
clang-tools-extra \
gcc-c++ \
git-core
+# Install documentation tools.
+dnf install --setopt=install_weak_deps=False -y \
+ python3-sphinx \
+ texinfo \
+ qt5-qttools-devel
+
dnf clean all
diff --git a/.gitlab/ci/gitlab_ci.cmake b/.gitlab/ci/gitlab_ci.cmake
index 401cc40..b49f51d 100644
--- a/.gitlab/ci/gitlab_ci.cmake
+++ b/.gitlab/ci/gitlab_ci.cmake
@@ -5,6 +5,9 @@ endif ()
# Set up the source and build paths.
set(CTEST_SOURCE_DIRECTORY "$ENV{CI_PROJECT_DIR}")
+if (NOT "$ENV{CTEST_SOURCE_SUBDIRECTORY}" STREQUAL "")
+ string(APPEND CTEST_SOURCE_DIRECTORY "/$ENV{CTEST_SOURCE_SUBDIRECTORY}")
+endif ()
set(CTEST_BINARY_DIRECTORY "${CTEST_SOURCE_DIRECTORY}/build")
if ("$ENV{CMAKE_CONFIGURATION}" STREQUAL "")
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 32a483d..166b664 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -376,10 +376,13 @@ macro (CMAKE_BUILD_UTILITIES)
include_directories(SYSTEM "${CMake_SOURCE_DIR}/Utilities/std")
endif()
- include_directories(
- ${CMake_BINARY_DIR}/Utilities
- ${CMake_SOURCE_DIR}/Utilities
- )
+ include_directories("${CMake_BINARY_DIR}/Utilities")
+ if ((CMAKE_SYSTEM_NAME STREQUAL "AIX" OR CMAKE_SYSTEM_NAME STREQUAL "OS400") AND CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
+ # using -isystem option generate error "template with C linkage"
+ include_directories("${CMake_SOURCE_DIR}/Utilities")
+ else()
+ include_directories(SYSTEM "${CMake_SOURCE_DIR}/Utilities")
+ endif()
#---------------------------------------------------------------------
# Build CMake std library for CMake and CTest.
diff --git a/CTestConfig.cmake b/CTestConfig.cmake
index 020582e..9ec9e8f 100644
--- a/CTestConfig.cmake
+++ b/CTestConfig.cmake
@@ -1,6 +1,8 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
+# If changing this file, also update Utilities/Sphinx/CTestConfig.cmake
+
set(CTEST_PROJECT_NAME "CMake")
set(CTEST_NIGHTLY_START_TIME "1:00:00 UTC")
diff --git a/CTestCustom.cmake.in b/CTestCustom.cmake.in
index c3f3b7c..622f054 100644
--- a/CTestCustom.cmake.in
+++ b/CTestCustom.cmake.in
@@ -80,7 +80,7 @@ list(APPEND CTEST_CUSTOM_WARNING_EXCEPTION
"compilation completed with warnings" # PGI
"[0-9]+ Warning\\(s\\) detected" # SunPro
-# scanbuild exceptions
+ # scanbuild exceptions
"char_traits.h:.*: warning: Null pointer argument in call to string length function"
"stl_construct.h:.*: warning: Forming reference to null pointer"
".*stl_uninitialized.h:75:19: warning: Forming reference to null pointer.*"
diff --git a/Help/dev/source.rst b/Help/dev/source.rst
index 65a6adf..0ccb8f4 100644
--- a/Help/dev/source.rst
+++ b/Help/dev/source.rst
@@ -163,6 +163,18 @@ It is allowed to pass raw pointers between objects to enable objects sharing.
A raw pointer **must** not be deleted. Only the object(s) owning the smart
pointer are allowed to delete dynamically allocated memory.
+Third Parties
+=============
+
+To build CMake, some third parties are needed. Under ``Utilities``
+directory, are versions of these third parties which can be used as an
+alternate to the ones provided by the system.
+
+To enable the selection of the third parties between the system and CMake ones,
+in CMake sources, third parties headers must be prefixed by ``cm3p/``
+(for example: ``<cm3p/json/reader.h>``). These wrappers are located under
+``Utilities/cm3p`` directory.
+
Source Tree Layout
==================
@@ -208,6 +220,9 @@ The CMake source tree is organized as follows.
* ``Utilities/std/cmext``:
Extensions to the C++ STL.
+ * ``Utilities/cm3p``:
+ Public headers for third parties needed to build CMake.
+
* ``Utilities/Sphinx/``:
Sphinx configuration to build CMake user documentation.
diff --git a/Help/guide/user-interaction/index.rst b/Help/guide/user-interaction/index.rst
index 3a1038f..c724b6f 100644
--- a/Help/guide/user-interaction/index.rst
+++ b/Help/guide/user-interaction/index.rst
@@ -86,6 +86,7 @@ populated. It is always advised to use different
directories for the source and the build.
.. image:: /guide/user-interaction/GUI-Source-Binary.png
+ :alt: Choosing source and binary directories
Generating a Buildsystem
========================
@@ -246,16 +247,19 @@ The "Configure" button triggers a new dialog to
select the CMake generator to use.
.. image:: /guide/user-interaction/GUI-Configure-Dialog.png
+ :alt: Configuring a generator
All generators available on the command line are also
available in :manual:`cmake-gui(1)`.
.. image:: /guide/user-interaction/GUI-Choose-Generator.png
+ :alt: Choosing a generator
When choosing a Visual Studio generator, further options
are available to set an architecture to generate for.
.. image:: /manual/VS-Choose-Arch.png
+ :alt: Choosing an architecture for Visual Studio generators
.. _`Setting Build Variables`:
@@ -356,6 +360,7 @@ button. This triggers a new dialog to set the value of
the variable.
.. image:: /guide/user-interaction/GUI-Add-Entry.png
+ :alt: Editing a cache entry
The main view of the :manual:`cmake-gui(1)` user interface
can be used to edit existing variables.
diff --git a/Help/prop_tgt/INSTALL_RPATH.rst b/Help/prop_tgt/INSTALL_RPATH.rst
index 93b4488..4549b92 100644
--- a/Help/prop_tgt/INSTALL_RPATH.rst
+++ b/Help/prop_tgt/INSTALL_RPATH.rst
@@ -8,5 +8,9 @@ targets (for platforms that support it). This property is initialized
by the value of the variable :variable:`CMAKE_INSTALL_RPATH` if it is set when
a target is created.
+Because the rpath may contain ``${ORIGIN}``, which coincides with CMake syntax,
+the contents of ``INSTALL_RPATH`` are properly escaped in the
+``cmake_install.cmake`` script (see policy :policy:`CMP0095`.)
+
This property supports
:manual:`generator expressions <cmake-generator-expressions(7)>`.
diff --git a/Modules/FindPython/Support.cmake b/Modules/FindPython/Support.cmake
index 6aeb74a..d8ca011 100644
--- a/Modules/FindPython/Support.cmake
+++ b/Modules/FindPython/Support.cmake
@@ -607,36 +607,46 @@ function (_PYTHON_VALIDATE_INTERPRETER)
get_filename_component (python_name "${_${_PYTHON_PREFIX}_EXECUTABLE}" NAME)
- if (expected_version AND NOT python_name STREQUAL "python${expected_version}${abi}${CMAKE_EXECUTABLE_SUFFIX}")
- # executable found must have a specific version
- execute_process (COMMAND "${_${_PYTHON_PREFIX}_EXECUTABLE}" -c
- "import sys; sys.stdout.write('.'.join([str(x) for x in sys.version_info[:2]]))"
- RESULT_VARIABLE result
- OUTPUT_VARIABLE version
- ERROR_QUIET
- OUTPUT_STRIP_TRAILING_WHITESPACE)
- if (result)
- # interpreter is not usable
- set (_${_PYTHON_PREFIX}_Interpreter_REASON_FAILURE "Cannot use the interpreter \"${_${_PYTHON_PREFIX}_EXECUTABLE}\"" PARENT_SCOPE)
- set_property (CACHE _${_PYTHON_PREFIX}_EXECUTABLE PROPERTY VALUE "${_PYTHON_PREFIX}_EXECUTABLE-NOTFOUND")
- else()
- if (_PVI_EXACT AND NOT version VERSION_EQUAL expected_version)
- # interpreter has wrong version
- set (_${_PYTHON_PREFIX}_Interpreter_REASON_FAILURE "Wrong version for the interpreter \"${_${_PYTHON_PREFIX}_EXECUTABLE}\"" PARENT_SCOPE)
+ if (expected_version)
+ if (NOT python_name STREQUAL "python${expected_version}${abi}${CMAKE_EXECUTABLE_SUFFIX}")
+ # compute number of components for version
+ string (REGEX REPLACE "[^.]" "" dots "${expected_version}")
+ # add one dot because there is one dot less than there are components
+ string (LENGTH "${dots}." count)
+ if (count GREATER 3)
+ set (count 3)
+ endif()
+
+ # executable found must have a specific version
+ execute_process (COMMAND "${_${_PYTHON_PREFIX}_EXECUTABLE}" -c
+ "import sys; sys.stdout.write('.'.join([str(x) for x in sys.version_info[:${count}]]))"
+ RESULT_VARIABLE result
+ OUTPUT_VARIABLE version
+ ERROR_QUIET
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+ if (result)
+ # interpreter is not usable
+ set (_${_PYTHON_PREFIX}_Interpreter_REASON_FAILURE "Cannot use the interpreter \"${_${_PYTHON_PREFIX}_EXECUTABLE}\"" PARENT_SCOPE)
set_property (CACHE _${_PYTHON_PREFIX}_EXECUTABLE PROPERTY VALUE "${_PYTHON_PREFIX}_EXECUTABLE-NOTFOUND")
else()
- # check that version is OK
- string(REGEX REPLACE "^([0-9]+)\\..*$" "\\1" major_version "${version}")
- string(REGEX REPLACE "^([0-9]+)\\.?.*$" "\\1" expected_major_version "${expected_version}")
- if (NOT major_version VERSION_EQUAL expected_major_version
- OR NOT version VERSION_GREATER_EQUAL expected_version)
+ if (_PVI_EXACT AND NOT version VERSION_EQUAL expected_version)
+ # interpreter has wrong version
set (_${_PYTHON_PREFIX}_Interpreter_REASON_FAILURE "Wrong version for the interpreter \"${_${_PYTHON_PREFIX}_EXECUTABLE}\"" PARENT_SCOPE)
set_property (CACHE _${_PYTHON_PREFIX}_EXECUTABLE PROPERTY VALUE "${_PYTHON_PREFIX}_EXECUTABLE-NOTFOUND")
+ else()
+ # check that version is OK
+ string(REGEX REPLACE "^([0-9]+)\\.?.*$" "\\1" major_version "${version}")
+ string(REGEX REPLACE "^([0-9]+)\\.?.*$" "\\1" expected_major_version "${expected_version}")
+ if (NOT major_version VERSION_EQUAL expected_major_version
+ OR NOT version VERSION_GREATER_EQUAL expected_version)
+ set (_${_PYTHON_PREFIX}_Interpreter_REASON_FAILURE "Wrong version for the interpreter \"${_${_PYTHON_PREFIX}_EXECUTABLE}\"" PARENT_SCOPE)
+ set_property (CACHE _${_PYTHON_PREFIX}_EXECUTABLE PROPERTY VALUE "${_PYTHON_PREFIX}_EXECUTABLE-NOTFOUND")
+ endif()
endif()
endif()
- endif()
- if (NOT _${_PYTHON_PREFIX}_EXECUTABLE)
- return()
+ if (NOT _${_PYTHON_PREFIX}_EXECUTABLE)
+ return()
+ endif()
endif()
else()
if (NOT python_name STREQUAL "python${_${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR}${CMAKE_EXECUTABLE_SUFFIX}")
@@ -713,7 +723,14 @@ function (_PYTHON_VALIDATE_COMPILER)
# check only major version
file (WRITE "${working_dir}/version.py" "import sys; sys.stdout.write(str(sys.version_info[0]))")
else()
- file (WRITE "${working_dir}/version.py" "import sys; sys.stdout.write('.'.join([str(x) for x in sys.version_info[:2]]))\n")
+ # compute number of components for version
+ string (REGEX REPLACE "[^.]" "" dots "${expected_version}")
+ # add one dot because there is one dot less than there are components
+ string (LENGTH "${dots}." count)
+ if (count GREATER 3)
+ set (count 3)
+ endif()
+ file (WRITE "${working_dir}/version.py" "import sys; sys.stdout.write('.'.join([str(x) for x in sys.version_info[:${count}]]))\n")
endif()
execute_process (COMMAND "${_${_PYTHON_PREFIX}_COMPILER}" /target:exe /embed "${working_dir}/version.py"
WORKING_DIRECTORY "${working_dir}"
@@ -772,7 +789,9 @@ function (_PYTHON_VALIDATE_LIBRARY)
set_property (CACHE _${_PYTHON_PREFIX}_LIBRARY_RELEASE PROPERTY VALUE "${_PYTHON_PREFIX}_LIBRARY_RELEASE-NOTFOUND")
else()
if (expected_version)
- if ((_PVL_EXACT AND NOT lib_VERSION VERSION_EQUAL expected_version) OR (lib_VERSION VERSION_LESS expected_version))
+ # library have only major.minor information
+ string (REGEX MATCH "[0-9](\\.[0-9]+)?" version "${expected_version}")
+ if ((_PVL_EXACT AND NOT lib_VERSION VERSION_EQUAL version) OR (lib_VERSION VERSION_LESS version))
# library has wrong version
set (_${_PYTHON_PREFIX}_Development_REASON_FAILURE "Wrong version for the library \"${_${_PYTHON_PREFIX}_LIBRARY_RELEASE}\"" PARENT_SCOPE)
set_property (CACHE _${_PYTHON_PREFIX}_LIBRARY_RELEASE PROPERTY VALUE "${_PYTHON_PREFIX}_LIBRARY_RELEASE-NOTFOUND")
@@ -932,20 +951,20 @@ endif()
set (_${_PYTHON_PREFIX}_FIND_DEVELOPMENT_ARTIFACTS ${_${_PYTHON_PREFIX}_FIND_DEVELOPMENT_MODULE_ARTIFACTS} ${_${_PYTHON_PREFIX}_FIND_DEVELOPMENT_EMBED_ARTIFACTS})
list (REMOVE_DUPLICATES _${_PYTHON_PREFIX}_FIND_DEVELOPMENT_ARTIFACTS)
-unset (_${_PYTHON_PREFIX}_FIND_VERSIONS)
-
# Set versions to search
## default: search any version
set (_${_PYTHON_PREFIX}_FIND_VERSIONS ${_${_PYTHON_PREFIX}_VERSIONS})
+unset (_${_PYTHON_PREFIX}_FIND_VERSION_EXACT)
-if (${_PYTHON_PREFIX}_FIND_VERSION_COUNT GREATER "1")
+if (${_PYTHON_PREFIX}_FIND_VERSION_COUNT)
if (${_PYTHON_PREFIX}_FIND_VERSION_EXACT)
+ set (_${_PYTHON_PREFIX}_FIND_VERSION_EXACT "EXACT")
set (_${_PYTHON_PREFIX}_FIND_VERSIONS ${${_PYTHON_PREFIX}_FIND_VERSION_MAJOR}.${${_PYTHON_PREFIX}_FIND_VERSION_MINOR})
else()
unset (_${_PYTHON_PREFIX}_FIND_VERSIONS)
# add all compatible versions
foreach (_${_PYTHON_PREFIX}_VERSION IN LISTS _${_PYTHON_PREFIX}_VERSIONS)
- if (_${_PYTHON_PREFIX}_VERSION VERSION_GREATER_EQUAL ${_PYTHON_PREFIX}_FIND_VERSION)
+ if (_${_PYTHON_PREFIX}_VERSION VERSION_GREATER_EQUAL "${${_PYTHON_PREFIX}_FIND_VERSION_MAJOR}.${${_PYTHON_PREFIX}_FIND_VERSION_MINOR}")
list (APPEND _${_PYTHON_PREFIX}_FIND_VERSIONS ${_${_PYTHON_PREFIX}_VERSION})
endif()
endforeach()
@@ -1152,14 +1171,15 @@ function (_PYTHON_CHECK_DEVELOPMENT_SIGNATURE module)
endif()
string (MD5 signature "${signature}")
if (signature STREQUAL _${_PYTHON_PREFIX}_DEVELOPMENT_${id}_SIGNATURE)
- if (${_PYTHON_PREFIX}_FIND_VERSION_EXACT)
- set (exact EXACT)
- endif()
if ("LIBRARY" IN_LIST _${_PYTHON_PREFIX}_FIND_DEVELOPMENT_${id}_ARTIFACTS)
- _python_validate_library (${${_PYTHON_PREFIX}_FIND_VERSION} ${exact} CHECK_EXISTS)
+ _python_validate_library (${${_PYTHON_PREFIX}_FIND_VERSION}
+ ${_${_PYTHON_PREFIX}_FIND_VERSION_EXACT}
+ CHECK_EXISTS)
endif()
if ("INCLUDE_DIR" IN_LIST _${_PYTHON_PREFIX}_FIND_DEVELOPMENT_${id}_ARTIFACTS)
- _python_validate_include_dir (${${_PYTHON_PREFIX}_FIND_VERSION} ${exact} CHECK_EXISTS)
+ _python_validate_include_dir (${${_PYTHON_PREFIX}_FIND_VERSION}
+ ${_${_PYTHON_PREFIX}_FIND_VERSION_EXACT}
+ CHECK_EXISTS)
endif()
else()
if ("LIBRARY" IN_LIST _${_PYTHON_PREFIX}_FIND_DEVELOPMENT_${id}_ARTIFACTS)
@@ -1267,7 +1287,7 @@ if ("Interpreter" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS)
NO_SYSTEM_ENVIRONMENT_PATH
NO_CMAKE_SYSTEM_PATH)
- _python_validate_interpreter (${${_PYTHON_PREFIX}_FIND_VERSION})
+ _python_validate_interpreter (${${_PYTHON_PREFIX}_FIND_VERSION} ${_${_PYTHON_PREFIX}_FIND_VERSION_EXACT})
if (_${_PYTHON_PREFIX}_EXECUTABLE)
break()
endif()
@@ -1288,7 +1308,7 @@ if ("Interpreter" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS)
NO_CMAKE_ENVIRONMENT_PATH
NO_SYSTEM_ENVIRONMENT_PATH
NO_CMAKE_SYSTEM_PATH)
- _python_validate_interpreter (${${_PYTHON_PREFIX}_FIND_VERSION})
+ _python_validate_interpreter (${${_PYTHON_PREFIX}_FIND_VERSION} ${_${_PYTHON_PREFIX}_FIND_VERSION_EXACT})
if (_${_PYTHON_PREFIX}_EXECUTABLE)
break()
endif()
@@ -1303,7 +1323,7 @@ if ("Interpreter" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS)
PATH_SUFFIXES ${_${_PYTHON_PREFIX}_PATH_SUFFIXES}
NO_SYSTEM_ENVIRONMENT_PATH
NO_CMAKE_SYSTEM_PATH)
- _python_validate_interpreter (${${_PYTHON_PREFIX}_FIND_VERSION})
+ _python_validate_interpreter (${${_PYTHON_PREFIX}_FIND_VERSION} ${_${_PYTHON_PREFIX}_FIND_VERSION_EXACT})
if (_${_PYTHON_PREFIX}_EXECUTABLE)
break()
endif()
@@ -1317,7 +1337,7 @@ if ("Interpreter" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS)
PATH_SUFFIXES ${_${_PYTHON_PREFIX}_PATH_SUFFIXES}
NO_SYSTEM_ENVIRONMENT_PATH
NO_CMAKE_SYSTEM_PATH)
- _python_validate_interpreter (${${_PYTHON_PREFIX}_FIND_VERSION})
+ _python_validate_interpreter (${${_PYTHON_PREFIX}_FIND_VERSION} ${_${_PYTHON_PREFIX}_FIND_VERSION_EXACT})
if (_${_PYTHON_PREFIX}_EXECUTABLE)
break()
endif()
@@ -1326,7 +1346,7 @@ if ("Interpreter" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS)
NAMES ${_${_PYTHON_PREFIX}_NAMES}
NAMES_PER_DIR
PATH_SUFFIXES ${_${_PYTHON_PREFIX}_PATH_SUFFIXES})
- _python_validate_interpreter (${${_PYTHON_PREFIX}_FIND_VERSION})
+ _python_validate_interpreter (${${_PYTHON_PREFIX}_FIND_VERSION} ${_${_PYTHON_PREFIX}_FIND_VERSION_EXACT})
if (_${_PYTHON_PREFIX}_EXECUTABLE)
break()
endif()
@@ -1339,7 +1359,7 @@ if ("Interpreter" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS)
PATHS ${_${_PYTHON_PREFIX}_FRAMEWORK_PATHS}
PATH_SUFFIXES ${_${_PYTHON_PREFIX}_PATH_SUFFIXES}
NO_DEFAULT_PATH)
- _python_validate_interpreter (${${_PYTHON_PREFIX}_FIND_VERSION})
+ _python_validate_interpreter (${${_PYTHON_PREFIX}_FIND_VERSION} ${_${_PYTHON_PREFIX}_FIND_VERSION_EXACT})
if (_${_PYTHON_PREFIX}_EXECUTABLE)
break()
endif()
@@ -1352,7 +1372,7 @@ if ("Interpreter" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS)
PATHS ${_${_PYTHON_PREFIX}_REGISTRY_PATHS}
PATH_SUFFIXES ${_${_PYTHON_PREFIX}_PATH_SUFFIXES}
NO_DEFAULT_PATH)
- _python_validate_interpreter (${${_PYTHON_PREFIX}_FIND_VERSION})
+ _python_validate_interpreter (${${_PYTHON_PREFIX}_FIND_VERSION} ${_${_PYTHON_PREFIX}_FIND_VERSION_EXACT})
if (_${_PYTHON_PREFIX}_EXECUTABLE)
break()
endif()
@@ -1698,7 +1718,7 @@ if ("Compiler" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS)
PATH_SUFFIXES ${_${_PYTHON_PREFIX}_IRON_PYTHON_PATH_SUFFIXES}
NO_SYSTEM_ENVIRONMENT_PATH
NO_CMAKE_SYSTEM_PATH)
- _python_validate_compiler (${${_PYTHON_PREFIX}_FIND_VERSION})
+ _python_validate_compiler (${${_PYTHON_PREFIX}_FIND_VERSION} ${_${_PYTHON_PREFIX}_FIND_VERSION_EXACT})
if (_${_PYTHON_PREFIX}_COMPILER)
break()
endif()
@@ -1710,7 +1730,7 @@ if ("Compiler" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS)
PATH_SUFFIXES ${_${_PYTHON_PREFIX}_IRON_PYTHON_PATH_SUFFIXES}
NO_SYSTEM_ENVIRONMENT_PATH
NO_CMAKE_SYSTEM_PATH)
- _python_validate_compiler (${${_PYTHON_PREFIX}_FIND_VERSION})
+ _python_validate_compiler (${${_PYTHON_PREFIX}_FIND_VERSION} ${_${_PYTHON_PREFIX}_FIND_VERSION_EXACT})
if (_${_PYTHON_PREFIX}_COMPILER)
break()
endif()
@@ -2463,11 +2483,10 @@ if (("Development.Module" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS
# retrieve version from header file
_python_get_version (INCLUDE PREFIX _${_PYTHON_PREFIX}_INC_)
- if (_${_PYTHON_PREFIX}_LIBRARY_RELEASE AND
- NOT _${_PYTHON_PREFIX}_VERSION EQUAL "${_${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR}")
- # update versioning
+ if (_${_PYTHON_PREFIX}_LIBRARY_RELEASE)
if ("${_${_PYTHON_PREFIX}_INC_VERSION_MAJOR}.${_${_PYTHON_PREFIX}_INC_VERSION_MINOR}"
VERSION_EQUAL _${_PYTHON_PREFIX}_VERSION)
+ # update versioning
set (_${_PYTHON_PREFIX}_VERSION ${_${_PYTHON_PREFIX}_INC_VERSION})
set (_${_PYTHON_PREFIX}_VERSION_PATCH ${_${_PYTHON_PREFIX}_INC_VERSION_PATCH})
endif()
diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake
index e980fc7..81ceb4b 100644
--- a/Source/CMakeVersion.cmake
+++ b/Source/CMakeVersion.cmake
@@ -1,7 +1,7 @@
# CMake version number components.
set(CMake_VERSION_MAJOR 3)
set(CMake_VERSION_MINOR 17)
-set(CMake_VERSION_PATCH 20200507)
+set(CMake_VERSION_PATCH 20200510)
#set(CMake_VERSION_RC 0)
set(CMake_VERSION_IS_DIRTY 0)
diff --git a/Source/CPack/WiX/cmWIXPatchParser.cxx b/Source/CPack/WiX/cmWIXPatchParser.cxx
index 5588d2d..8b26c4e 100644
--- a/Source/CPack/WiX/cmWIXPatchParser.cxx
+++ b/Source/CPack/WiX/cmWIXPatchParser.cxx
@@ -6,7 +6,7 @@
#include <cm/memory>
-#include "cm_expat.h"
+#include <cm3p/expat.h>
#include "cmCPackGenerator.h"
diff --git a/Source/CPack/cmCPackArchiveGenerator.cxx b/Source/CPack/cmCPackArchiveGenerator.cxx
index aaa5318..967cc60 100644
--- a/Source/CPack/cmCPackArchiveGenerator.cxx
+++ b/Source/CPack/cmCPackArchiveGenerator.cxx
@@ -8,7 +8,7 @@
#include <utility>
#include <vector>
-#include "cm_libarchive.h"
+#include <cm3p/archive.h>
#include "cmCPackComponentGroup.h"
#include "cmCPackGenerator.h"
diff --git a/Source/CPack/cmCPackExternalGenerator.cxx b/Source/CPack/cmCPackExternalGenerator.cxx
index 142eb6f..11e1aec 100644
--- a/Source/CPack/cmCPackExternalGenerator.cxx
+++ b/Source/CPack/cmCPackExternalGenerator.cxx
@@ -8,10 +8,10 @@
#include <cm/memory>
-#include "cmsys/FStream.hxx"
+#include <cm3p/json/value.h>
+#include <cm3p/json/writer.h>
-#include "cm_jsoncpp_value.h"
-#include "cm_jsoncpp_writer.h"
+#include "cmsys/FStream.hxx"
#include "cmCPackComponentGroup.h"
#include "cmCPackLog.h"
diff --git a/Source/CTest/cmCTestBZR.cxx b/Source/CTest/cmCTestBZR.cxx
index c87fb83b..c533cd7 100644
--- a/Source/CTest/cmCTestBZR.cxx
+++ b/Source/CTest/cmCTestBZR.cxx
@@ -10,9 +10,9 @@
#include <cmext/algorithm>
-#include "cmsys/RegularExpression.hxx"
+#include <cm3p/expat.h>
-#include "cm_expat.h"
+#include "cmsys/RegularExpression.hxx"
#include "cmCTest.h"
#include "cmCTestVC.h"
diff --git a/Source/CTest/cmCTestCurl.h b/Source/CTest/cmCTestCurl.h
index 9c5ba66..b0d7f07 100644
--- a/Source/CTest/cmCTestCurl.h
+++ b/Source/CTest/cmCTestCurl.h
@@ -8,7 +8,7 @@
#include <string>
#include <vector>
-#include "cm_curl.h"
+#include <cm3p/curl/curl.h>
class cmCTest;
diff --git a/Source/CTest/cmCTestMultiProcessHandler.cxx b/Source/CTest/cmCTestMultiProcessHandler.cxx
index b7251d9..a08cb34 100644
--- a/Source/CTest/cmCTestMultiProcessHandler.cxx
+++ b/Source/CTest/cmCTestMultiProcessHandler.cxx
@@ -21,13 +21,13 @@
#include <cm/memory>
#include <cmext/algorithm>
+#include <cm3p/json/value.h>
+#include <cm3p/json/writer.h>
+#include <cm3p/uv.h>
+
#include "cmsys/FStream.hxx"
#include "cmsys/SystemInformation.hxx"
-#include "cm_jsoncpp_value.h"
-#include "cm_jsoncpp_writer.h"
-#include "cm_uv.h"
-
#include "cmAffinity.h"
#include "cmCTest.h"
#include "cmCTestBinPacker.h"
diff --git a/Source/CTest/cmCTestMultiProcessHandler.h b/Source/CTest/cmCTestMultiProcessHandler.h
index 6e999f9..e21b912 100644
--- a/Source/CTest/cmCTestMultiProcessHandler.h
+++ b/Source/CTest/cmCTestMultiProcessHandler.h
@@ -11,10 +11,9 @@
#include <string>
#include <vector>
+#include <cm3p/uv.h>
#include <stddef.h>
-#include "cm_uv.h"
-
#include "cmCTest.h"
#include "cmCTestResourceAllocator.h"
#include "cmCTestTestHandler.h"
diff --git a/Source/CTest/cmCTestResourceSpec.cxx b/Source/CTest/cmCTestResourceSpec.cxx
index 8f91efb..21c97de 100644
--- a/Source/CTest/cmCTestResourceSpec.cxx
+++ b/Source/CTest/cmCTestResourceSpec.cxx
@@ -7,12 +7,12 @@
#include <utility>
#include <vector>
+#include <cm3p/json/reader.h>
+#include <cm3p/json/value.h>
+
#include "cmsys/FStream.hxx"
#include "cmsys/RegularExpression.hxx"
-#include "cm_jsoncpp_reader.h"
-#include "cm_jsoncpp_value.h"
-
static const cmsys::RegularExpression IdentifierRegex{ "^[a-z_][a-z0-9_]*$" };
static const cmsys::RegularExpression IdRegex{ "^[a-z0-9_]+$" };
diff --git a/Source/CTest/cmCTestSubmitHandler.cxx b/Source/CTest/cmCTestSubmitHandler.cxx
index 811a7e8..2989025 100644
--- a/Source/CTest/cmCTestSubmitHandler.cxx
+++ b/Source/CTest/cmCTestSubmitHandler.cxx
@@ -9,9 +9,9 @@
#include <cmext/algorithm>
-#include "cm_curl.h"
-#include "cm_jsoncpp_reader.h"
-#include "cm_jsoncpp_value.h"
+#include <cm3p/curl/curl.h>
+#include <cm3p/json/reader.h>
+#include <cm3p/json/value.h>
#include "cmAlgorithms.h"
#include "cmCTest.h"
diff --git a/Source/CTest/cmProcess.cxx b/Source/CTest/cmProcess.cxx
index 2742fd7..a549117 100644
--- a/Source/CTest/cmProcess.cxx
+++ b/Source/CTest/cmProcess.cxx
@@ -17,7 +17,7 @@
#include "cmGetPipes.h"
#include "cmStringAlgorithms.h"
#if defined(_WIN32)
-# include "cm_kwiml.h"
+# include <cm3p/kwiml/int.h>
#endif
#define CM_PROCESS_BUF_SIZE 65536
diff --git a/Source/CTest/cmProcess.h b/Source/CTest/cmProcess.h
index 526c920..1e6578c 100644
--- a/Source/CTest/cmProcess.h
+++ b/Source/CTest/cmProcess.h
@@ -11,11 +11,10 @@
#include <utility>
#include <vector>
+#include <cm3p/uv.h>
#include <stddef.h>
#include <stdint.h>
-#include "cm_uv.h"
-
#include "cmDuration.h"
#include "cmProcessOutput.h"
#include "cmUVHandlePtr.h"
diff --git a/Source/cmAffinity.cxx b/Source/cmAffinity.cxx
index 8f9fe2a..35443e7 100644
--- a/Source/cmAffinity.cxx
+++ b/Source/cmAffinity.cxx
@@ -2,7 +2,7 @@
file Copyright.txt or https://cmake.org/licensing for details. */
#include "cmAffinity.h"
-#include "cm_uv.h"
+#include <cm3p/uv.h>
#ifndef CMAKE_USE_SYSTEM_LIBUV
# ifdef _WIN32
diff --git a/Source/cmAlgorithms.h b/Source/cmAlgorithms.h
index 8b0aa5e..c8e8dcb 100644
--- a/Source/cmAlgorithms.h
+++ b/Source/cmAlgorithms.h
@@ -15,8 +15,6 @@
#include <cmext/algorithm>
-#include "cm_kwiml.h"
-
#include "cmRange.h"
template <typename FwdIt>
diff --git a/Source/cmArchiveWrite.cxx b/Source/cmArchiveWrite.cxx
index 0f9b42c..78bb6e0 100644
--- a/Source/cmArchiveWrite.cxx
+++ b/Source/cmArchiveWrite.cxx
@@ -7,12 +7,14 @@
#include <iostream>
#include <sstream>
+#include <cm3p/archive.h>
+#include <cm3p/archive_entry.h>
+
#include "cmsys/Directory.hxx"
#include "cmsys/Encoding.hxx"
#include "cmsys/FStream.hxx"
#include "cm_get_date.h"
-#include "cm_libarchive.h"
#include "cmLocale.h"
#include "cmStringAlgorithms.h"
diff --git a/Source/cmCTest.cxx b/Source/cmCTest.cxx
index 2a0ddba1..9b023d9 100644
--- a/Source/cmCTest.cxx
+++ b/Source/cmCTest.cxx
@@ -21,6 +21,9 @@
#include <cmext/algorithm>
#include <cmext/string_view>
+#include <cm3p/curl/curl.h>
+#include <cm3p/zlib.h>
+
#include "cmsys/Base64.h"
#include "cmsys/Directory.hxx"
#include "cmsys/FStream.hxx"
@@ -28,9 +31,6 @@
#include "cmsys/Process.h"
#include "cmsys/RegularExpression.hxx"
#include "cmsys/SystemInformation.hxx"
-
-#include "cm_curl.h"
-#include "cm_zlib.h"
#if defined(_WIN32)
# include <windows.h> // IWYU pragma: keep
#else
diff --git a/Source/cmConnection.cxx b/Source/cmConnection.cxx
index 884e314..e4d0cf1 100644
--- a/Source/cmConnection.cxx
+++ b/Source/cmConnection.cxx
@@ -5,7 +5,7 @@
#include <cassert>
#include <cstring>
-#include "cm_uv.h"
+#include <cm3p/uv.h>
#include "cmServer.h"
@@ -20,8 +20,13 @@ void cmEventBasedConnection::on_alloc_buffer(uv_handle_t* handle,
uv_buf_t* buf)
{
(void)(handle);
+#ifndef __clang_analyzer__
char* rawBuffer = new char[suggested_size];
*buf = uv_buf_init(rawBuffer, static_cast<unsigned int>(suggested_size));
+#else
+ (void)(suggested_size);
+ (void)(buf);
+#endif /* __clang_analyzer__ */
}
void cmEventBasedConnection::on_read(uv_stream_t* stream, ssize_t nread,
@@ -76,6 +81,7 @@ void cmEventBasedConnection::WriteData(const std::string& _data)
assert(uv_thread_equal(&curr_thread_id, &this->Server->ServeThreadId));
#endif
+#ifndef __clang_analyzer__
auto data = _data;
assert(this->WriteStream.get());
if (BufferStrategy) {
@@ -90,6 +96,9 @@ void cmEventBasedConnection::WriteData(const std::string& _data)
memcpy(req->buf.base, data.c_str(), ds);
uv_write(reinterpret_cast<uv_write_t*>(req), this->WriteStream, &req->buf, 1,
on_write);
+#else
+ (void)(_data);
+#endif /* __clang_analyzer__ */
}
void cmEventBasedConnection::ReadData(const std::string& data)
diff --git a/Source/cmConnection.h b/Source/cmConnection.h
index 7bb2494..5335a7f 100644
--- a/Source/cmConnection.h
+++ b/Source/cmConnection.h
@@ -9,7 +9,7 @@
#include <memory>
#include <string>
-#include "cm_uv.h"
+#include <cm3p/uv.h>
#include "cmUVHandlePtr.h"
diff --git a/Source/cmCryptoHash.cxx b/Source/cmCryptoHash.cxx
index dc7d939..b1e63ba 100644
--- a/Source/cmCryptoHash.cxx
+++ b/Source/cmCryptoHash.cxx
@@ -4,10 +4,10 @@
#include <cm/memory>
-#include "cmsys/FStream.hxx"
+#include <cm3p/kwiml/int.h>
+#include <cm3p/rhash.h>
-#include "cm_kwiml.h"
-#include "cm_rhash.h"
+#include "cmsys/FStream.hxx"
static unsigned int const cmCryptoHashAlgoToId[] = {
/* clang-format needs this comment to break after the opening brace */
diff --git a/Source/cmCurl.h b/Source/cmCurl.h
index cb73ce6..7bd036e 100644
--- a/Source/cmCurl.h
+++ b/Source/cmCurl.h
@@ -7,7 +7,7 @@
#include <string>
-#include "cm_curl.h"
+#include <cm3p/curl/curl.h>
std::string cmCurlSetCAInfo(::CURL* curl, const char* cafile = nullptr);
std::string cmCurlSetNETRCOption(::CURL* curl, const std::string& netrc_level,
diff --git a/Source/cmELF.cxx b/Source/cmELF.cxx
index 202b205..a8d81f7 100644
--- a/Source/cmELF.cxx
+++ b/Source/cmELF.cxx
@@ -3,6 +3,7 @@
#include "cmELF.h"
#include <cstddef>
+#include <cstdint>
#include <map>
#include <memory>
#include <sstream>
@@ -12,14 +13,13 @@
#include <cm/memory>
#include <cmext/algorithm>
-#include "cmsys/FStream.hxx"
+#include <cm3p/kwiml/abi.h>
-#include "cm_kwiml.h"
+#include "cmsys/FStream.hxx"
// Include the ELF format information system header.
#if defined(__OpenBSD__)
# include <elf_abi.h>
-# include <stdint.h>
#elif defined(__HAIKU__)
# include <elf32.h>
# include <elf64.h>
diff --git a/Source/cmExprParserHelper.h b/Source/cmExprParserHelper.h
index eaf5dc7..717acdc 100644
--- a/Source/cmExprParserHelper.h
+++ b/Source/cmExprParserHelper.h
@@ -8,7 +8,7 @@
#include <string>
#include <vector>
-#include "cm_kwiml.h"
+#include <cm3p/kwiml/int.h>
class cmExprParserHelper
{
diff --git a/Source/cmFileAPI.h b/Source/cmFileAPI.h
index e183e0d..ae07612 100644
--- a/Source/cmFileAPI.h
+++ b/Source/cmFileAPI.h
@@ -11,9 +11,9 @@
#include <unordered_set>
#include <vector>
-#include "cm_jsoncpp_reader.h"
-#include "cm_jsoncpp_value.h"
-#include "cm_jsoncpp_writer.h"
+#include <cm3p/json/reader.h>
+#include <cm3p/json/value.h>
+#include <cm3p/json/writer.h>
class cmake;
diff --git a/Source/cmFileAPICMakeFiles.cxx b/Source/cmFileAPICMakeFiles.cxx
index 44ba96c..1e4f3b6 100644
--- a/Source/cmFileAPICMakeFiles.cxx
+++ b/Source/cmFileAPICMakeFiles.cxx
@@ -6,7 +6,7 @@
#include <string>
#include <vector>
-#include "cm_jsoncpp_value.h"
+#include <cm3p/json/value.h>
#include "cmFileAPI.h"
#include "cmGlobalGenerator.h"
diff --git a/Source/cmFileAPICMakeFiles.h b/Source/cmFileAPICMakeFiles.h
index a851c32..1ae1e4f 100644
--- a/Source/cmFileAPICMakeFiles.h
+++ b/Source/cmFileAPICMakeFiles.h
@@ -5,7 +5,7 @@
#include "cmConfigure.h" // IWYU pragma: keep
-#include "cm_jsoncpp_value.h"
+#include <cm3p/json/value.h>
class cmFileAPI;
diff --git a/Source/cmFileAPICache.cxx b/Source/cmFileAPICache.cxx
index 5d2ddf9..25e5916 100644
--- a/Source/cmFileAPICache.cxx
+++ b/Source/cmFileAPICache.cxx
@@ -7,7 +7,7 @@
#include <utility>
#include <vector>
-#include "cm_jsoncpp_value.h"
+#include <cm3p/json/value.h>
#include "cmFileAPI.h"
#include "cmState.h"
diff --git a/Source/cmFileAPICache.h b/Source/cmFileAPICache.h
index 09d9e1c..2f30c76 100644
--- a/Source/cmFileAPICache.h
+++ b/Source/cmFileAPICache.h
@@ -5,7 +5,7 @@
#include "cmConfigure.h" // IWYU pragma: keep
-#include "cm_jsoncpp_value.h"
+#include <cm3p/json/value.h>
class cmFileAPI;
diff --git a/Source/cmFileAPICodemodel.cxx b/Source/cmFileAPICodemodel.cxx
index f34d7d5..b983b21 100644
--- a/Source/cmFileAPICodemodel.cxx
+++ b/Source/cmFileAPICodemodel.cxx
@@ -17,7 +17,7 @@
#include <cmext/algorithm>
-#include "cm_jsoncpp_value.h"
+#include <cm3p/json/value.h>
#include "cmCryptoHash.h"
#include "cmFileAPI.h"
diff --git a/Source/cmFileAPICodemodel.h b/Source/cmFileAPICodemodel.h
index ffbd928..a6c6bdd 100644
--- a/Source/cmFileAPICodemodel.h
+++ b/Source/cmFileAPICodemodel.h
@@ -5,7 +5,7 @@
#include "cmConfigure.h" // IWYU pragma: keep
-#include "cm_jsoncpp_value.h"
+#include <cm3p/json/value.h>
class cmFileAPI;
diff --git a/Source/cmFileCommand.cxx b/Source/cmFileCommand.cxx
index 161bbe8..f3d49c3 100644
--- a/Source/cmFileCommand.cxx
+++ b/Source/cmFileCommand.cxx
@@ -19,11 +19,12 @@
#include <cmext/algorithm>
#include <cmext/string_view>
+#include <cm3p/kwiml/int.h>
+
#include "cmsys/FStream.hxx"
#include "cmsys/Glob.hxx"
#include "cmsys/RegularExpression.hxx"
-#include "cm_kwiml.h"
#include "cm_sys_stat.h"
#include "cmAlgorithms.h"
@@ -54,7 +55,7 @@
#include "cmake.h"
#if !defined(CMAKE_BOOTSTRAP)
-# include "cm_curl.h"
+# include <cm3p/curl/curl.h>
# include "cmCurl.h"
# include "cmFileLockResult.h"
diff --git a/Source/cmFileMonitor.h b/Source/cmFileMonitor.h
index b510a2c..fc75b0c 100644
--- a/Source/cmFileMonitor.h
+++ b/Source/cmFileMonitor.h
@@ -9,7 +9,7 @@
#include <string>
#include <vector>
-#include "cm_uv.h"
+#include <cm3p/uv.h>
class cmRootWatcher;
diff --git a/Source/cmFindPackageCommand.h b/Source/cmFindPackageCommand.h
index ae9ade7..7058a54 100644
--- a/Source/cmFindPackageCommand.h
+++ b/Source/cmFindPackageCommand.h
@@ -12,7 +12,7 @@
#include <string>
#include <vector>
-#include "cm_kwiml.h"
+#include <cm3p/kwiml/int.h>
#include "cmFindCommon.h"
#include "cmPolicies.h"
diff --git a/Source/cmGeneratedFileStream.cxx b/Source/cmGeneratedFileStream.cxx
index f76e205..9cee0e6 100644
--- a/Source/cmGeneratedFileStream.cxx
+++ b/Source/cmGeneratedFileStream.cxx
@@ -8,8 +8,9 @@
#include "cmSystemTools.h"
#if !defined(CMAKE_BOOTSTRAP)
+# include <cm3p/zlib.h>
+
# include "cm_codecvt.hxx"
-# include "cm_zlib.h"
#endif
cmGeneratedFileStream::cmGeneratedFileStream(Encoding encoding)
diff --git a/Source/cmGetPipes.cxx b/Source/cmGetPipes.cxx
index 4eda1c5..a5b6469 100644
--- a/Source/cmGetPipes.cxx
+++ b/Source/cmGetPipes.cxx
@@ -2,10 +2,9 @@
file Copyright.txt or https://cmake.org/licensing for details. */
#include "cmGetPipes.h"
+#include <cm3p/uv.h>
#include <fcntl.h>
-#include "cm_uv.h"
-
#if defined(_WIN32) && !defined(__CYGWIN__)
# include <io.h>
diff --git a/Source/cmGlobalGenerator.cxx b/Source/cmGlobalGenerator.cxx
index de6a649..6370ed2 100644
--- a/Source/cmGlobalGenerator.cxx
+++ b/Source/cmGlobalGenerator.cxx
@@ -52,8 +52,8 @@
#include "cmake.h"
#if !defined(CMAKE_BOOTSTRAP)
-# include "cm_jsoncpp_value.h"
-# include "cm_jsoncpp_writer.h"
+# include <cm3p/json/value.h>
+# include <cm3p/json/writer.h>
# include "cmCryptoHash.h"
# include "cmQtAutoGenGlobalInitializer.h"
diff --git a/Source/cmGlobalGenerator.h b/Source/cmGlobalGenerator.h
index a76ab3c..dcd5a66 100644
--- a/Source/cmGlobalGenerator.h
+++ b/Source/cmGlobalGenerator.h
@@ -28,7 +28,7 @@
#include "cmTargetDepend.h"
#if !defined(CMAKE_BOOTSTRAP)
-# include "cm_jsoncpp_value.h"
+# include <cm3p/json/value.h>
# include "cmFileLockPool.h"
#endif
diff --git a/Source/cmGlobalNinjaGenerator.cxx b/Source/cmGlobalNinjaGenerator.cxx
index 8ef19cc..843b0f4 100644
--- a/Source/cmGlobalNinjaGenerator.cxx
+++ b/Source/cmGlobalNinjaGenerator.cxx
@@ -12,11 +12,11 @@
#include <cmext/algorithm>
#include <cmext/memory>
-#include "cmsys/FStream.hxx"
+#include <cm3p/json/reader.h>
+#include <cm3p/json/value.h>
+#include <cm3p/json/writer.h>
-#include "cm_jsoncpp_reader.h"
-#include "cm_jsoncpp_value.h"
-#include "cm_jsoncpp_writer.h"
+#include "cmsys/FStream.hxx"
#include "cmDocumentationEntry.h"
#include "cmFortranParser.h"
diff --git a/Source/cmGlobalVisualStudio10Generator.cxx b/Source/cmGlobalVisualStudio10Generator.cxx
index 5166de6..5dac072 100644
--- a/Source/cmGlobalVisualStudio10Generator.cxx
+++ b/Source/cmGlobalVisualStudio10Generator.cxx
@@ -6,12 +6,12 @@
#include <cm/memory>
+#include <cm3p/json/reader.h>
+
#include "cmsys/FStream.hxx"
#include "cmsys/Glob.hxx"
#include "cmsys/RegularExpression.hxx"
-#include "cm_jsoncpp_reader.h"
-
#include "cmAlgorithms.h"
#include "cmDocumentationEntry.h"
#include "cmGeneratorTarget.h"
diff --git a/Source/cmJsonObjects.h b/Source/cmJsonObjects.h
index 64291cc..2fd4b26 100644
--- a/Source/cmJsonObjects.h
+++ b/Source/cmJsonObjects.h
@@ -8,7 +8,7 @@
#include <string>
#include <vector>
-#include "cm_jsoncpp_value.h"
+#include <cm3p/json/value.h>
class cmake;
class cmGlobalGenerator;
diff --git a/Source/cmLocalGenerator.cxx b/Source/cmLocalGenerator.cxx
index b862449..9aca775 100644
--- a/Source/cmLocalGenerator.cxx
+++ b/Source/cmLocalGenerator.cxx
@@ -2732,9 +2732,11 @@ void cmLocalGenerator::AddPchDependencies(cmGeneratorTarget* target)
std::string pchSourceObj =
reuseTarget->GetPchFileObject(config, lang, arch);
+ const std::string configUpper = cmSystemTools::UpperCase(config);
+
// Link to the pch object file
target->Target->AppendProperty(
- "LINK_FLAGS",
+ cmStrCat("LINK_FLAGS_", configUpper),
cmStrCat(" ",
this->ConvertToOutputFormat(pchSourceObj, SHELL)),
true);
diff --git a/Source/cmLocalGenerator.h b/Source/cmLocalGenerator.h
index 1492304..9beae61 100644
--- a/Source/cmLocalGenerator.h
+++ b/Source/cmLocalGenerator.h
@@ -13,7 +13,7 @@
#include <unordered_map>
#include <vector>
-#include "cm_kwiml.h"
+#include <cm3p/kwiml/int.h>
#include "cmCustomCommandTypes.h"
#include "cmListFileCache.h"
diff --git a/Source/cmLocalVisualStudio10Generator.cxx b/Source/cmLocalVisualStudio10Generator.cxx
index 02e2c6d..9076e26 100644
--- a/Source/cmLocalVisualStudio10Generator.cxx
+++ b/Source/cmLocalVisualStudio10Generator.cxx
@@ -4,7 +4,7 @@
#include <cmext/algorithm>
-#include "cm_expat.h"
+#include <cm3p/expat.h>
#include "cmAlgorithms.h"
#include "cmGeneratorTarget.h"
diff --git a/Source/cmLocalVisualStudio7Generator.cxx b/Source/cmLocalVisualStudio7Generator.cxx
index e18fac3..0b02724 100644
--- a/Source/cmLocalVisualStudio7Generator.cxx
+++ b/Source/cmLocalVisualStudio7Generator.cxx
@@ -7,10 +7,9 @@
#include <windows.h>
+#include <cm3p/expat.h>
#include <ctype.h> // for isspace
-#include "cm_expat.h"
-
#include "cmComputeLinkInformation.h"
#include "cmCustomCommand.h"
#include "cmCustomCommandGenerator.h"
diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx
index 6c46353..58883b5 100644
--- a/Source/cmMakefile.cxx
+++ b/Source/cmMakefile.cxx
@@ -20,11 +20,12 @@
#include <cmext/algorithm>
#include <cmext/string_view>
+#include <cm3p/json/value.h>
+#include <cm3p/json/writer.h>
+
#include "cmsys/FStream.hxx"
#include "cmsys/RegularExpression.hxx"
-#include "cm_jsoncpp_value.h"
-#include "cm_jsoncpp_writer.h"
#include "cm_sys_stat.h"
#include "cmCommandArgumentParserHelper.h"
diff --git a/Source/cmMakefileProfilingData.cxx b/Source/cmMakefileProfilingData.cxx
index adf4eee..e0150dc 100644
--- a/Source/cmMakefileProfilingData.cxx
+++ b/Source/cmMakefileProfilingData.cxx
@@ -6,12 +6,12 @@
#include <stdexcept>
#include <vector>
+#include <cm3p/json/value.h>
+#include <cm3p/json/writer.h>
+
#include "cmsys/FStream.hxx"
#include "cmsys/SystemInformation.hxx"
-#include "cm_jsoncpp_value.h"
-#include "cm_jsoncpp_writer.h"
-
#include "cmListFileCache.h"
#include "cmStringAlgorithms.h"
#include "cmSystemTools.h"
diff --git a/Source/cmMathCommand.cxx b/Source/cmMathCommand.cxx
index f11b906..56221bf 100644
--- a/Source/cmMathCommand.cxx
+++ b/Source/cmMathCommand.cxx
@@ -4,7 +4,7 @@
#include <cstdio>
-#include "cm_kwiml.h"
+#include <cm3p/kwiml/int.h>
#include "cmExecutionStatus.h"
#include "cmExprParserHelper.h"
diff --git a/Source/cmNinjaTargetGenerator.cxx b/Source/cmNinjaTargetGenerator.cxx
index 0606484..efd2fd5 100644
--- a/Source/cmNinjaTargetGenerator.cxx
+++ b/Source/cmNinjaTargetGenerator.cxx
@@ -14,8 +14,8 @@
#include <cm/memory>
#include <cmext/algorithm>
-#include "cm_jsoncpp_value.h"
-#include "cm_jsoncpp_writer.h"
+#include <cm3p/json/value.h>
+#include <cm3p/json/writer.h>
#include "cmComputeLinkInformation.h"
#include "cmCustomCommandGenerator.h"
diff --git a/Source/cmNinjaTargetGenerator.h b/Source/cmNinjaTargetGenerator.h
index 8678dc3..1ac5683 100644
--- a/Source/cmNinjaTargetGenerator.h
+++ b/Source/cmNinjaTargetGenerator.h
@@ -12,7 +12,7 @@
#include <utility>
#include <vector>
-#include "cm_jsoncpp_value.h"
+#include <cm3p/json/value.h>
#include "cmCommonTargetGenerator.h"
#include "cmGlobalNinjaGenerator.h"
diff --git a/Source/cmPipeConnection.h b/Source/cmPipeConnection.h
index 81f8a49..1215716 100644
--- a/Source/cmPipeConnection.h
+++ b/Source/cmPipeConnection.h
@@ -6,7 +6,7 @@
#include <string>
-#include "cm_uv.h"
+#include <cm3p/uv.h>
#include "cmConnection.h"
#include "cmUVHandlePtr.h"
diff --git a/Source/cmQtAutoGenInitializer.cxx b/Source/cmQtAutoGenInitializer.cxx
index 235ee38..003a300 100644
--- a/Source/cmQtAutoGenInitializer.cxx
+++ b/Source/cmQtAutoGenInitializer.cxx
@@ -18,10 +18,10 @@
#include <cm/memory>
#include <cmext/algorithm>
-#include "cmsys/SystemInformation.hxx"
+#include <cm3p/json/value.h>
+#include <cm3p/json/writer.h>
-#include "cm_jsoncpp_value.h"
-#include "cm_jsoncpp_writer.h"
+#include "cmsys/SystemInformation.hxx"
#include "cmCustomCommand.h"
#include "cmCustomCommandLines.h"
diff --git a/Source/cmQtAutoGenerator.cxx b/Source/cmQtAutoGenerator.cxx
index da96305..ee2bc09 100644
--- a/Source/cmQtAutoGenerator.cxx
+++ b/Source/cmQtAutoGenerator.cxx
@@ -2,9 +2,9 @@
file Copyright.txt or https://cmake.org/licensing for details. */
#include "cmQtAutoGenerator.h"
-#include "cmsys/FStream.hxx"
+#include <cm3p/json/reader.h>
-#include "cm_jsoncpp_reader.h"
+#include "cmsys/FStream.hxx"
#include "cmQtAutoGen.h"
#include "cmStringAlgorithms.h"
diff --git a/Source/cmQtAutoGenerator.h b/Source/cmQtAutoGenerator.h
index bbe6dd0..83fb3ed 100644
--- a/Source/cmQtAutoGenerator.h
+++ b/Source/cmQtAutoGenerator.h
@@ -13,7 +13,7 @@
#include <cm/string_view>
-#include "cm_jsoncpp_value.h"
+#include <cm3p/json/value.h>
#include "cmFileTime.h"
#include "cmQtAutoGen.h"
diff --git a/Source/cmQtAutoMocUic.cxx b/Source/cmQtAutoMocUic.cxx
index 36dd627..9adcabb 100644
--- a/Source/cmQtAutoMocUic.cxx
+++ b/Source/cmQtAutoMocUic.cxx
@@ -18,11 +18,11 @@
#include <cm/string_view>
#include <cmext/algorithm>
+#include <cm3p/json/value.h>
+
#include "cmsys/FStream.hxx"
#include "cmsys/RegularExpression.hxx"
-#include "cm_jsoncpp_value.h"
-
#include "cmCryptoHash.h"
#include "cmFileTime.h"
#include "cmGccDepfileReader.h"
diff --git a/Source/cmServer.cxx b/Source/cmServer.cxx
index 434fb68..7f97406 100644
--- a/Source/cmServer.cxx
+++ b/Source/cmServer.cxx
@@ -4,6 +4,7 @@
#include <algorithm>
#include <cassert>
+#include <csignal>
#include <cstdint>
#include <iostream>
#include <mutex>
@@ -12,10 +13,10 @@
#include <cm/memory>
#include <cm/shared_mutex>
-#include "cmsys/FStream.hxx"
+#include <cm3p/json/reader.h>
+#include <cm3p/json/writer.h>
-#include "cm_jsoncpp_reader.h"
-#include "cm_jsoncpp_writer.h"
+#include "cmsys/FStream.hxx"
#include "cmConnection.h"
#include "cmFileMonitor.h"
diff --git a/Source/cmServer.h b/Source/cmServer.h
index ec40738..9543329 100644
--- a/Source/cmServer.h
+++ b/Source/cmServer.h
@@ -10,8 +10,8 @@
#include <cm/shared_mutex>
-#include "cm_jsoncpp_value.h"
-#include "cm_uv.h"
+#include <cm3p/json/value.h>
+#include <cm3p/uv.h>
#include "cmUVHandlePtr.h"
diff --git a/Source/cmServerConnection.cxx b/Source/cmServerConnection.cxx
index 2791972..b4f41a0 100644
--- a/Source/cmServerConnection.cxx
+++ b/Source/cmServerConnection.cxx
@@ -4,7 +4,7 @@
#include "cmServerConnection.h"
-#include "cm_uv.h"
+#include <cm3p/uv.h>
#include "cmServer.h"
#include "cmServerDictionary.h"
diff --git a/Source/cmServerProtocol.cxx b/Source/cmServerProtocol.cxx
index f6154eb..6b32de3 100644
--- a/Source/cmServerProtocol.cxx
+++ b/Source/cmServerProtocol.cxx
@@ -12,7 +12,7 @@
#include <cm/memory>
#include <cmext/algorithm>
-#include "cm_uv.h"
+#include <cm3p/uv.h>
#include "cmExternalMakefileProjectGenerator.h"
#include "cmFileMonitor.h"
diff --git a/Source/cmServerProtocol.h b/Source/cmServerProtocol.h
index 8446c3e..c71b7bf 100644
--- a/Source/cmServerProtocol.h
+++ b/Source/cmServerProtocol.h
@@ -8,7 +8,7 @@
#include <string>
#include <utility>
-#include "cm_jsoncpp_value.h"
+#include <cm3p/json/value.h>
#include "cmake.h"
diff --git a/Source/cmStandardLexer.h b/Source/cmStandardLexer.h
index 55d23c1..cc67ac2 100644
--- a/Source/cmStandardLexer.h
+++ b/Source/cmStandardLexer.h
@@ -63,7 +63,7 @@
#define YY_NO_UNPUT 1
#define ECHO
-#include "cm_kwiml.h"
+#include <cm3p/kwiml/int.h>
typedef KWIML_INT_int8_t flex_int8_t;
typedef KWIML_INT_uint8_t flex_uint8_t;
typedef KWIML_INT_int16_t flex_int16_t;
diff --git a/Source/cmSystemTools.cxx b/Source/cmSystemTools.cxx
index 23b099a..be799b0 100644
--- a/Source/cmSystemTools.cxx
+++ b/Source/cmSystemTools.cxx
@@ -14,7 +14,7 @@
#include <cmext/algorithm>
-#include "cm_uv.h"
+#include <cm3p/uv.h>
#include "cmDuration.h"
#include "cmProcessOutput.h"
@@ -22,7 +22,8 @@
#include "cmStringAlgorithms.h"
#if !defined(CMAKE_BOOTSTRAP)
-# include "cm_libarchive.h"
+# include <cm3p/archive.h>
+# include <cm3p/archive_entry.h>
# include "cmArchiveWrite.h"
# include "cmLocale.h"
diff --git a/Source/cmUVHandlePtr.cxx b/Source/cmUVHandlePtr.cxx
index 23dabb7..df2f64e 100644
--- a/Source/cmUVHandlePtr.cxx
+++ b/Source/cmUVHandlePtr.cxx
@@ -7,7 +7,7 @@
#include <cstdlib>
#include <mutex>
-#include "cm_uv.h"
+#include <cm3p/uv.h>
namespace cm {
diff --git a/Source/cmUVHandlePtr.h b/Source/cmUVHandlePtr.h
index 3083b60..d9de7f3 100644
--- a/Source/cmUVHandlePtr.h
+++ b/Source/cmUVHandlePtr.h
@@ -8,7 +8,7 @@
#include <memory>
#include <type_traits>
-#include "cm_uv.h"
+#include <cm3p/uv.h>
#if defined(__SUNPRO_CC)
diff --git a/Source/cmUVProcessChain.cxx b/Source/cmUVProcessChain.cxx
index 543c330..6040fd8 100644
--- a/Source/cmUVProcessChain.cxx
+++ b/Source/cmUVProcessChain.cxx
@@ -9,7 +9,7 @@
#include <cm/memory>
-#include "cm_uv.h"
+#include <cm3p/uv.h>
#include "cmGetPipes.h"
#include "cmUVHandlePtr.h"
diff --git a/Source/cmUVProcessChain.h b/Source/cmUVProcessChain.h
index cd7397e..b5ccb19 100644
--- a/Source/cmUVProcessChain.h
+++ b/Source/cmUVProcessChain.h
@@ -11,7 +11,7 @@
#include <string>
#include <vector>
-#include "cm_uv.h"
+#include <cm3p/uv.h>
class cmUVProcessChain;
diff --git a/Source/cmUVSignalHackRAII.h b/Source/cmUVSignalHackRAII.h
index 63599db..60e4ca8 100644
--- a/Source/cmUVSignalHackRAII.h
+++ b/Source/cmUVSignalHackRAII.h
@@ -3,7 +3,7 @@
#pragma once
#include "cmConfigure.h" // IWYU pragma: keep
-#include "cm_uv.h"
+#include <cm3p/uv.h>
#if defined(CMAKE_USE_SYSTEM_LIBUV) && !defined(_WIN32) && \
UV_VERSION_MAJOR == 1 && UV_VERSION_MINOR < 19
diff --git a/Source/cmUVStreambuf.h b/Source/cmUVStreambuf.h
index 1c8a771..50faede 100644
--- a/Source/cmUVStreambuf.h
+++ b/Source/cmUVStreambuf.h
@@ -8,7 +8,7 @@
#include <streambuf>
#include <vector>
-#include "cm_uv.h"
+#include <cm3p/uv.h>
#include "cmUVHandlePtr.h"
diff --git a/Source/cmVSSetupHelper.h b/Source/cmVSSetupHelper.h
index 0980cef..a2fd3d5 100644
--- a/Source/cmVSSetupHelper.h
+++ b/Source/cmVSSetupHelper.h
@@ -8,13 +8,12 @@
#endif
// Published by Visual Studio Setup team
+#include <cm3p/Setup.Configuration.h>
#include <string>
#include <vector>
#include <windows.h>
-#include "cmvssetup/Setup.Configuration.h"
-
template <class T>
class SmartCOMPtr
{
diff --git a/Source/cmVersion.h b/Source/cmVersion.h
index bfd994d..932ef04 100644
--- a/Source/cmVersion.h
+++ b/Source/cmVersion.h
@@ -3,7 +3,7 @@
#ifndef cmVersion_h
#define cmVersion_h
-#include "cm_kwiml.h"
+#include <cm3p/kwiml/int.h>
/** \class cmVersion
* \brief Helper class for providing CMake and CTest version information.
diff --git a/Source/cmWorkerPool.cxx b/Source/cmWorkerPool.cxx
index aa0d6b3..9fec936 100644
--- a/Source/cmWorkerPool.cxx
+++ b/Source/cmWorkerPool.cxx
@@ -13,7 +13,7 @@
#include <cm/memory>
-#include "cm_uv.h"
+#include <cm3p/uv.h>
#include "cmRange.h"
#include "cmStringAlgorithms.h"
diff --git a/Source/cmXMLParser.cxx b/Source/cmXMLParser.cxx
index ad5c4ba..24da8c6 100644
--- a/Source/cmXMLParser.cxx
+++ b/Source/cmXMLParser.cxx
@@ -7,9 +7,9 @@
#include <iostream>
#include <sstream>
-#include "cmsys/FStream.hxx"
+#include <cm3p/expat.h>
-#include "cm_expat.h"
+#include "cmsys/FStream.hxx"
cmXMLParser::cmXMLParser()
{
diff --git a/Source/cmake.cxx b/Source/cmake.cxx
index b451d27..65d5f10 100644
--- a/Source/cmake.cxx
+++ b/Source/cmake.cxx
@@ -57,7 +57,7 @@
#if !defined(CMAKE_BOOTSTRAP)
# include <unordered_map>
-# include "cm_jsoncpp_writer.h"
+# include <cm3p/json/writer.h>
# include "cmFileAPI.h"
# include "cmGraphVizWriter.h"
diff --git a/Source/cmake.h b/Source/cmake.h
index cfcd264..cd152cb 100644
--- a/Source/cmake.h
+++ b/Source/cmake.h
@@ -27,7 +27,7 @@
#include "cmStateTypes.h"
#if !defined(CMAKE_BOOTSTRAP)
-# include "cm_jsoncpp_value.h"
+# include <cm3p/json/value.h>
#endif
class cmExternalMakefileProjectGeneratorFactory;
diff --git a/Source/cmakemain.cxx b/Source/cmakemain.cxx
index 2828116..b12990b 100644
--- a/Source/cmakemain.cxx
+++ b/Source/cmakemain.cxx
@@ -1,6 +1,8 @@
/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
file Copyright.txt or https://cmake.org/licensing for details. */
+#include "cmConfigure.h" // IWYU pragma: keep
+
#include <cassert>
#include <cctype>
#include <climits>
@@ -11,6 +13,8 @@
#include <cmext/algorithm>
+#include <cm3p/uv.h>
+
#include "cmDocumentationEntry.h" // IWYU pragma: keep
#include "cmGlobalGenerator.h"
#include "cmMakefile.h"
@@ -27,8 +31,6 @@
#endif
#include "cmsys/Encoding.hxx"
-
-#include "cm_uv.h"
#if defined(_WIN32) && !defined(CMAKE_BOOTSTRAP)
# include "cmsys/ConsoleBuf.hxx"
#endif
diff --git a/Source/cmcmd.cxx b/Source/cmcmd.cxx
index a8e07e4..de76d73 100644
--- a/Source/cmcmd.cxx
+++ b/Source/cmcmd.cxx
@@ -4,10 +4,9 @@
#include <cmext/algorithm>
+#include <cm3p/uv.h>
#include <fcntl.h>
-#include "cm_uv.h"
-
#include "cmDuration.h"
#include "cmGlobalGenerator.h"
#include "cmLocalGenerator.h"
diff --git a/Tests/CMakeLib/testUVProcessChain.cxx b/Tests/CMakeLib/testUVProcessChain.cxx
index 71a1764..61a77cf 100644
--- a/Tests/CMakeLib/testUVProcessChain.cxx
+++ b/Tests/CMakeLib/testUVProcessChain.cxx
@@ -8,7 +8,7 @@
#include <cm/memory>
-#include "cm_uv.h"
+#include <cm3p/uv.h>
#include "cmGetPipes.h"
#include "cmUVHandlePtr.h"
diff --git a/Tests/CMakeLib/testUVRAII.cxx b/Tests/CMakeLib/testUVRAII.cxx
index cb05ace..0607f44 100644
--- a/Tests/CMakeLib/testUVRAII.cxx
+++ b/Tests/CMakeLib/testUVRAII.cxx
@@ -3,7 +3,7 @@
#include <thread>
#include <utility>
-#include "cm_uv.h"
+#include <cm3p/uv.h>
#include "cmUVHandlePtr.h"
diff --git a/Tests/CMakeLib/testUVStreambuf.cxx b/Tests/CMakeLib/testUVStreambuf.cxx
index cd9c9d4..b86ed76 100644
--- a/Tests/CMakeLib/testUVStreambuf.cxx
+++ b/Tests/CMakeLib/testUVStreambuf.cxx
@@ -3,10 +3,9 @@
#include <string>
#include <vector>
+#include <cm3p/uv.h>
#include <stdint.h>
-#include "cm_uv.h"
-
#include "cmGetPipes.h"
#include "cmUVHandlePtr.h"
#include "cmUVStreambuf.h"
diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt
index 32e6582..0c8a639 100644
--- a/Tests/CMakeLists.txt
+++ b/Tests/CMakeLists.txt
@@ -790,13 +790,8 @@ ${CMake_SOURCE_DIR}/Utilities/Release/push.bash --dir dev -- '${CMake_BUILD_NIGH
endif()
endmacro()
if(CMake_BUILD_NIGHTLY_RELEASES)
- ADD_NIGHTLY_BUILD_TEST(CMakeNightlyWin32
- win32_release.cmake)
- ADD_NIGHTLY_BUILD_TEST(CMakeNightlyWin64
- win64_release.cmake)
ADD_NIGHTLY_BUILD_TEST(CMakeNightlyOSX
osx_release.cmake)
- set_property(TEST CMakeNightlyWin64 PROPERTY DEPENDS CMakeNightlyWin32)
endif()
# add tests with more complex invocations
diff --git a/Tests/CPackWiXGenerator/myotherapp.cpp b/Tests/CPackWiXGenerator/myotherapp.cpp
index 0eefc1c..5047a34 100644
--- a/Tests/CPackWiXGenerator/myotherapp.cpp
+++ b/Tests/CPackWiXGenerator/myotherapp.cpp
@@ -1,3 +1,3 @@
int main()
{
-} \ No newline at end of file
+}
diff --git a/Tests/FindPython/CMakeLists.txt b/Tests/FindPython/CMakeLists.txt
index 2cec030..fdfa36e 100644
--- a/Tests/FindPython/CMakeLists.txt
+++ b/Tests/FindPython/CMakeLists.txt
@@ -150,6 +150,99 @@ if(CMake_TEST_FindPython)
--test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
)
+ add_test(NAME FindPython.Python2.ExactVersion.LOCATION COMMAND
+ ${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
+ --build-and-test
+ "${CMake_SOURCE_DIR}/Tests/FindPython/ExactVersion"
+ "${CMake_BINARY_DIR}/Tests/FindPython/Python2.ExactVersion.LOCATION"
+ ${build_generator_args}
+ --build-project TestExactVersion
+ --build-options ${build_options} -DPython_MAJOR_VERSION=2
+ -DPython_REQUESTED_VERSION=2.1.2
+ -DPython2_FIND_STRATEGY=LOCATION
+ --test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
+ )
+ add_test(NAME FindPython.Python2.ExactVersion.VERSION COMMAND
+ ${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
+ --build-and-test
+ "${CMake_SOURCE_DIR}/Tests/FindPython/ExactVersion"
+ "${CMake_BINARY_DIR}/Tests/FindPython/Python2.ExactVersion.VERSION"
+ ${build_generator_args}
+ --build-project TestExactVersion
+ --build-options ${build_options} -DPython_MAJOR_VERSION=2
+ -DPython_REQUESTED_VERSION=2.1.2
+ -DPython2_FIND_STRATEGY=VERSION
+ --test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
+ )
+ add_test(NAME FindPython.Python3.ExactVersion.LOCATION COMMAND
+ ${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
+ --build-and-test
+ "${CMake_SOURCE_DIR}/Tests/FindPython/ExactVersion"
+ "${CMake_BINARY_DIR}/Tests/FindPython/Python3.ExactVersion.LOCATION"
+ ${build_generator_args}
+ --build-project TestExactVersion
+ --build-options ${build_options} -DPython_MAJOR_VERSION=3
+ -DPython_REQUESTED_VERSION=3.1.2
+ -DPython3_FIND_STRATEGY=LOCATION
+ --test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
+ )
+ add_test(NAME FindPython.Python3.ExactVersion.VERSION COMMAND
+ ${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
+ --build-and-test
+ "${CMake_SOURCE_DIR}/Tests/FindPython/ExactVersion"
+ "${CMake_BINARY_DIR}/Tests/FindPython/Python3.ExactVersion.VERSION"
+ ${build_generator_args}
+ --build-project TestExactVersion
+ --build-options ${build_options} -DPython_MAJOR_VERSION=3
+ -DPython_REQUESTED_VERSION=3.1.2
+ -DPython3_FIND_STRATEGY=VERSION
+ --test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
+ )
+ add_test(NAME FindPython.Python.V2.ExactVersion.LOCATION COMMAND
+ ${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
+ --build-and-test
+ "${CMake_SOURCE_DIR}/Tests/FindPython/ExactVersion"
+ "${CMake_BINARY_DIR}/Tests/FindPython/Python.V2.ExactVersion.LOCATION"
+ ${build_generator_args}
+ --build-project TestExactVersion
+ --build-options ${build_options} -DPython_REQUESTED_VERSION=2.1.2
+ -DPython_FIND_STRATEGY=LOCATION
+ --test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
+ )
+ add_test(NAME FindPython.Python.V2.ExactVersion.VERSION COMMAND
+ ${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
+ --build-and-test
+ "${CMake_SOURCE_DIR}/Tests/FindPython/ExactVersion"
+ "${CMake_BINARY_DIR}/Tests/FindPython/Python.V2.ExactVersion.VERSION"
+ ${build_generator_args}
+ --build-project TestExactVersion
+ --build-options ${build_options} -DPython_REQUESTED_VERSION=2.1.2
+ -DPython_FIND_STRATEGY=VERSION
+ --test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
+ )
+ add_test(NAME FindPython.Python.V3.ExactVersion.LOCATION COMMAND
+ ${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
+ --build-and-test
+ "${CMake_SOURCE_DIR}/Tests/FindPython/ExactVersion"
+ "${CMake_BINARY_DIR}/Tests/FindPython/Python.V3.ExactVersion.LOCATION"
+ ${build_generator_args}
+ --build-project TestExactVersion
+ --build-options ${build_options} -DPython_REQUESTED_VERSION=3.1.2
+ -DPython_FIND_STRATEGY=LOCATION
+ --test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
+ )
+ add_test(NAME FindPython.Python.V3.ExactVersion.VERSION COMMAND
+ ${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
+ --build-and-test
+ "${CMake_SOURCE_DIR}/Tests/FindPython/ExactVersion"
+ "${CMake_BINARY_DIR}/Tests/FindPython/Python.V3.ExactVersion.VERSION"
+ ${build_generator_args}
+ --build-project TestExactVersion
+ --build-options ${build_options} -DPython_REQUESTED_VERSION=3.1.2
+ -DPython_FIND_STRATEGY=VERSION
+ --test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
+ )
+
add_test(NAME FindPython.MultiplePackages COMMAND
${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
--build-and-test
diff --git a/Tests/FindPython/ExactVersion/CMakeLists.txt b/Tests/FindPython/ExactVersion/CMakeLists.txt
new file mode 100644
index 0000000..e09f73a
--- /dev/null
+++ b/Tests/FindPython/ExactVersion/CMakeLists.txt
@@ -0,0 +1,56 @@
+cmake_minimum_required(VERSION 3.1)
+
+project(TestExactVersion C)
+
+find_package(Python${Python_MAJOR_VERSION} ${Python_REQUESTED_VERSION} COMPONENTS Interpreter Development)
+if (NOT Python${Python_MAJOR_VERSION}_FOUND)
+ message (FATAL_ERROR "Fail to found Python ${Python_REQUESTED_VERSION}")
+endif()
+if (NOT Python${Python_MAJOR_VERSION}_Interpreter_FOUND)
+ message (FATAL_ERROR "Fail to found Python ${Python_REQUESTED_VERSION} Interpreter")
+endif()
+if (NOT Python${Python_MAJOR_VERSION}_Development_FOUND)
+ message (FATAL_ERROR "Fail to found Python ${Python_REQUESTED_VERSION} Development")
+endif()
+
+if(NOT TARGET Python${Python_MAJOR_VERSION}::Interpreter)
+ message(SEND_ERROR "Python${Python_MAJOR_VERSION}::Interpreter not found")
+endif()
+
+if(NOT TARGET Python${Python_MAJOR_VERSION}::Python)
+ message(SEND_ERROR "Python${Python_MAJOR_VERSION}::Python not found")
+endif()
+if(NOT TARGET Python${Python_MAJOR_VERSION}::Module)
+ message(SEND_ERROR "Python${Python_MAJOR_VERSION}::Module not found")
+endif()
+
+
+# reset artifacts and second search with exact version already founded
+unset (Python${Python_MAJOR_VERSION}_EXECUTABLE)
+unset (_Python${Python_MAJOR_VERSION}_EXECUTABLE CACHE)
+
+unset (_Python${Python_MAJOR_VERSION}_LIBRARY_RELEASE CACHE)
+unset (_Python${Python_MAJOR_VERSION}_INCLUDE_DIR CACHE)
+
+set (Python_REQUESTED_VERSION ${Python${Python_MAJOR_VERSION}_VERSION})
+find_package(Python${Python_MAJOR_VERSION} ${Python_REQUESTED_VERSION} EXACT COMPONENTS Interpreter Development)
+if (NOT Python${Python_MAJOR_VERSION}_FOUND)
+ message (FATAL_ERROR "Fail to found Python ${Python_REQUESTED_VERSION}")
+endif()
+if (NOT Python${Python_MAJOR_VERSION}_Interpreter_FOUND)
+ message (FATAL_ERROR "Fail to found Python ${Python_REQUESTED_VERSION} Interpreter")
+endif()
+if (NOT Python${Python_MAJOR_VERSION}_Development_FOUND)
+ message (FATAL_ERROR "Fail to found Python ${Python_REQUESTED_VERSION} Development")
+endif()
+
+if(NOT TARGET Python${Python_MAJOR_VERSION}::Interpreter)
+ message(SEND_ERROR "Python${Python_MAJOR_VERSION}::Interpreter not found")
+endif()
+
+if(NOT TARGET Python${Python_MAJOR_VERSION}::Python)
+ message(SEND_ERROR "Python${Python_MAJOR_VERSION}::Python not found")
+endif()
+if(NOT TARGET Python${Python_MAJOR_VERSION}::Module)
+ message(SEND_ERROR "Python${Python_MAJOR_VERSION}::Module not found")
+endif()
diff --git a/Tests/RunCMake/CommandLine/cmake_depends/test_UTF-16LE.h b/Tests/RunCMake/CommandLine/cmake_depends/test_UTF-16LE.h
index bf56ec6..2d39178 100644
--- a/Tests/RunCMake/CommandLine/cmake_depends/test_UTF-16LE.h
+++ b/Tests/RunCMake/CommandLine/cmake_depends/test_UTF-16LE.h
Binary files differ
diff --git a/Tests/VSWindowsFormsResx/WindowsFormsResx/MyForm.cpp b/Tests/VSWindowsFormsResx/WindowsFormsResx/MyForm.cpp
index 154e268..0c37370 100644
--- a/Tests/VSWindowsFormsResx/WindowsFormsResx/MyForm.cpp
+++ b/Tests/VSWindowsFormsResx/WindowsFormsResx/MyForm.cpp
@@ -1 +1 @@
-#include "MyForm.h" \ No newline at end of file
+#include "MyForm.h"
diff --git a/Utilities/IWYU/mapping.imp b/Utilities/IWYU/mapping.imp
index 87e8bad..66cb282 100644
--- a/Utilities/IWYU/mapping.imp
+++ b/Utilities/IWYU/mapping.imp
@@ -97,54 +97,15 @@
{ symbol: [ "std::enable_if<true, std::chrono::duration<long, std::ratio<60, 1> > >::type", private, "\"cmConfigure.h\"", public ] },
{ symbol: [ "std::enable_if<true, std::chrono::duration<long, std::ratio<1, 1000> > >::type", private, "\"cmConfigure.h\"", public ] },
- # KWIML
- { include: [ "<stdint.h>", public, "\"cm_kwiml.h\"", public ] },
- { include: [ "<inttypes.h>", public, "\"cm_kwiml.h\"", public ] },
-
- # Self-sufficient wrapper for <sys/stat.h>
- { symbol: [ "mode_t", private, "\"cm_sys_stat.h\"", public ] },
-
- # Wrappers for 3rd-party libraries used from the system.
- { include: [ "<archive.h>", private, "\"cm_libarchive.h\"", public ] },
- { include: [ "<archive_entry.h>", private, "\"cm_libarchive.h\"", public ] },
- { include: [ "@<curl/.+\\.h>", private, "\"cm_curl.h\"", public ] },
- { include: [ "<expat.h>", private, "\"cm_expat.h\"", public ] },
- { include: [ "<expat_external.h>", private, "\"cm_expat.h\"", public ] },
- { include: [ "<json/reader.h>", private, "\"cm_jsoncpp_reader.h\"", public ] },
- { include: [ "<json/value.h>", private, "\"cm_jsoncpp_value.h\"", public ] },
- { include: [ "<json/writer.h>", private, "\"cm_jsoncpp_writer.h\"", public ] },
- { include: [ "<rhash.h>", private, "\"cm_rhash.h\"", public ] },
- { include: [ "<uv.h>", private, "\"cm_uv.h\"", public ] },
- { include: [ "@<uv[/-].+\\.h>", private, "\"cm_uv.h\"", public ] },
- { include: [ "<kwiml/abi.h>", private, "\"cm_kwiml.h\"", public ] },
- { include: [ "<kwiml/int.h>", private, "\"cm_kwiml.h\"", public ] },
- { include: [ "<zconf.h>", private, "\"cm_zlib.h\"", public ] },
- { include: [ "<zlib.h>", private, "\"cm_zlib.h\"", public ] },
-
- # Wrappers for bundled 3rd-party libraries.
- { include: [ "\"cmlibarchive/libarchive/archive.h\"", private, "\"cm_libarchive.h\"", public ] },
- { include: [ "\"cmlibarchive/libarchive/archive_entry.h\"", private, "\"cm_libarchive.h\"", public ] },
- { include: [ "@\"cmcurl/include/curl/.+\\.h\"", private, "\"cm_curl.h\"", public ] },
- { include: [ "\"cmexpat/lib/expat.h\"", private, "\"cm_expat.h\"", public ] },
- { include: [ "\"cmexpat/lib/expat_external.h\"", private, "\"cm_expat.h\"", public ] },
- { include: [ "\"cmjsoncpp/include/json/reader.h\"", private, "\"cm_jsoncpp_reader.h\"", public ] },
- { include: [ "\"cmjsoncpp/include/json/value.h\"", private, "\"cm_jsoncpp_value.h\"", public ] },
- { include: [ "\"cmjsoncpp/include/json/writer.h\"", private, "\"cm_jsoncpp_writer.h\"", public ] },
- { include: [ "\"cmlibrhash/librhash/rhash.h\"", private, "\"cm_rhash.h\"", public ] },
- { include: [ "\"cmlibuv/include/uv.h\"", private, "\"cm_uv.h\"", public ] },
- { include: [ "@\"cmlibuv/include/uv/.+\\.h\"", private, "\"cm_uv.h\"", public ] },
- { include: [ "\"KWIML/include/kwiml/abi.h\"", private, "\"cm_kwiml.h\"", public ] },
- { include: [ "\"KWIML/include/kwiml/int.h\"", private, "\"cm_kwiml.h\"", public ] },
- { include: [ "\"cmzlib/cm_zlib_mangle.h\"", private, "\"cm_zlib.h\"", public ] },
- { include: [ "\"cmzlib/zconf.h\"", private, "\"cm_zlib.h\"", public ] },
- { include: [ "\"cmzlib/zlib.h\"", private, "\"cm_zlib.h\"", public ] },
-
- # System symbols used by libuv
- { symbol: [ "SIGHUP", private, "\"cm_uv.h\"", public ] },
- { symbol: [ "SIGINT", private, "\"cm_uv.h\"", public ] },
- { symbol: [ "ssize_t", private, "\"cm_uv.h\"", public ] },
-
- { symbol: [ "Json::ArrayIndex", private, "\"cm_jsoncpp_value.h\"", public ] },
+ # Wrappers for 3rd-party libraries
+ { include: [ "@<.*curl/curlver.h>", private, "<cm3p/curl/curl.h>", public ] },
+ { include: [ "@<.*json/forwards.h>", private, "<cm3p/json/value.h>", public ] },
+ { include: [ "@<.*uv/.+\\.h>", private, "<cm3p/uv.h>", public ] },
+ { include: [ "@<.*expat_external.h>", private, "<cm3p/expat.h>", public ] },
+ { include: [ "@<.*zconf.h>", private, "<cm3p/zlib.h>", public ] },
+ { include: [ "@<.*cm_zlib_mangle.h>", private, "<cm3p/zlib.h>", public ] },
+ # # System symbols used by libuv
+ { symbol: [ "ssize_t", private, "<cm3p/uv.h>", public ] },
{ symbol: [ "std::ifstream", private, "\"cmsys/FStream.hxx\"", public ] },
{ symbol: [ "std::ofstream", private, "\"cmsys/FStream.hxx\"", public ] },
@@ -156,8 +117,6 @@
{ include: [ "<fstream>", public, "\"cmsys/FStream.hxx\"", public ] },
# major and minor are used as macro arguments. Those are false matches.
- { symbol: [ "major", private, "\"cm_kwiml.h\"", public ] },
- { symbol: [ "minor", private, "\"cm_kwiml.h\"", public ] },
{ symbol: [ "major", private, "\"cmVersion.h\"", public ] },
{ symbol: [ "minor", private, "\"cmVersion.h\"", public ] },
diff --git a/Utilities/Release/.gitattributes b/Utilities/Release/.gitattributes
new file mode 100644
index 0000000..24e115f
--- /dev/null
+++ b/Utilities/Release/.gitattributes
@@ -0,0 +1 @@
+*.patch -whitespace
diff --git a/Utilities/Release/README.rst b/Utilities/Release/README.rst
index de294d1..9993afa 100644
--- a/Utilities/Release/README.rst
+++ b/Utilities/Release/README.rst
@@ -9,49 +9,57 @@ on ``cmake.org``. See also the `CMake Source Code Guide`_.
Docker
------
-The ``linux/<arch>/`` directories contain Docker specifications that anyone
-may use to produce Linux binaries for CMake:
+The ``<os>/<arch>/`` directories contain Docker specifications that anyone
+may use to produce binaries for CMake on the following platforms:
-* ``linux/<arch>/base/Dockerfile``:
+* ``linux/x86_64/``: Linux on ``x86_64`` architectures.
+* ``win/x86/``: Windows on ``x86_64`` and ``i386`` architectures.
+
+Each ``<os>/<arch>/`` directory contains the following:
+
+* ``<os>/<arch>/base/Dockerfile``:
Produces a base image with a build environment for portable CMake binaries.
This image is published in the `kitware/cmake Docker Hub Repository`_
- with tag ``build-linux-<arch>-base-<date>``.
+ with tag ``build-<os>-<arch>-base-<date>``.
-* ``linux/<arch>/deps/Dockerfile``:
+* ``<os>/<arch>/deps/Dockerfile``:
Produces an image with custom-built dependencies for portable CMake binaries.
This image is published in the `kitware/cmake Docker Hub Repository`_
- with tag ``build-linux-<arch>-deps-<date>``.
+ with tag ``build-<os>-<arch>-deps-<date>``.
-* ``linux/<arch>/Dockerfile``:
- Produce an image containing a portable CMake binary package for Linux.
+* ``<os>/<arch>/Dockerfile``:
+ Produce an image containing a portable CMake binary package.
Build this image using the CMake source directory as the build context.
- The resulting image will have an ``/out`` directory containing the package.
- For example:
+ The resulting image will have an ``/out`` (or ``c:/out``) directory
+ containing the package. For example, on Linux ``x86_64``:
.. code-block:: console
$ docker build --tag=cmake:build --network none \
- -f cmake-src/Utilities/Release/linux/$arch/Dockerfile cmake-src
+ -f cmake-src/Utilities/Release/linux/x86_64/Dockerfile cmake-src
$ docker container create --name cmake-build cmake:build
$ docker cp cmake-build:/out .
- $ ls out/cmake-*-Linux-$arch.*
+ $ ls out/cmake-*-Linux-x86_64.*
-* ``linux/<arch>/test/Dockerfile``:
+ On Windows, the ``win/x86`` specifications support both the ``x86_64``
+ and ``i386`` architectures selected via ``--build-arg ARCH=...``.
+
+* ``<os>/<arch>/test/Dockerfile``:
Produces a base image with a test environment for packaged CMake binaries.
- For example, build the test base image:
+ For example, on Linux ``x86_64``, one may build the test base image:
.. code-block:: console
$ docker build --tag=cmake:test-base \
- cmake-src/Utilities/Release/linux/$arch/test
+ cmake-src/Utilities/Release/linux/x86_64/test
Then create a local ``test/Dockerfile`` to prepare an image with both the
CMake source tree and the above-built package::
FROM cmake:test-base
COPY cmake-src /opt/cmake/src/cmake
- ADD out/cmake-<ver>-Linux-<arch>.tar.gz /opt/
- ENV PATH=/opt/cmake-<ver>-Linux-<arch>/bin:$PATH
+ ADD out/cmake-<ver>-Linux-x86_64.tar.gz /opt/
+ ENV PATH=/opt/cmake-<ver>-Linux-x86_64/bin:$PATH
Build the test image and run it to drive testing:
@@ -61,6 +69,10 @@ may use to produce Linux binaries for CMake:
$ docker run --network none cmake:test bash test-make.bash
$ docker run --network none cmake:test bash test-ninja.bash
+ On Windows, the test scripts are called ``test-nmake.bat`` and
+ ``test-ninja.bat``. In the ``x86`` architecture they accept one
+ argument specifying either ``x86_64`` or ``i386``.
+
.. _`kitware/cmake Docker Hub Repository`: https://hub.docker.com/r/kitware/cmake
Scripts for Kitware
diff --git a/Utilities/Release/create-cmake-release.cmake b/Utilities/Release/create-cmake-release.cmake
index 17a2151..88ac826 100644
--- a/Utilities/Release/create-cmake-release.cmake
+++ b/Utilities/Release/create-cmake-release.cmake
@@ -46,13 +46,9 @@ endfunction()
write_docs_shell_script("create-${CMAKE_CREATE_VERSION}-docs.sh")
write_rel_shell_script("create-${CMAKE_CREATE_VERSION}-macos.sh" osx_release ) # macOS x86_64
-write_rel_shell_script("create-${CMAKE_CREATE_VERSION}-win64.sh" win64_release ) # Windows x64
-write_rel_shell_script("create-${CMAKE_CREATE_VERSION}-win32.sh" win32_release ) # Windows x86
message("Build docs first and then build for each platform:
./create-${CMAKE_CREATE_VERSION}-docs.sh &&
./create-${CMAKE_CREATE_VERSION}-macos.sh &&
- ./create-${CMAKE_CREATE_VERSION}-win64.sh &&
- ./create-${CMAKE_CREATE_VERSION}-win32.sh &&
echo done
")
diff --git a/Utilities/Release/linux/x86_64/test/cache-ninja.txt b/Utilities/Release/linux/x86_64/test/cache-ninja.txt
deleted file mode 100644
index b00370e..0000000
--- a/Utilities/Release/linux/x86_64/test/cache-ninja.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-CMAKE_Fortran_COMPILER:STRING=
-CMake_TEST_IPO_WORKS_C:BOOL=ON
-CMake_TEST_IPO_WORKS_CXX:BOOL=ON
-CMake_TEST_Qt5:BOOL=ON
diff --git a/Utilities/Release/win/x86/Dockerfile b/Utilities/Release/win/x86/Dockerfile
new file mode 100644
index 0000000..a4f7445
--- /dev/null
+++ b/Utilities/Release/win/x86/Dockerfile
@@ -0,0 +1,23 @@
+# escape=`
+
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+# Produce an image containing a portable CMake binary package for Windows.
+# Build using the CMake source directory as the build context.
+# The resulting image will have a 'c:\out' directory containing the package.
+
+ARG FROM_IMAGE_NAME=kitware/cmake:build-win-x86-deps-2020-04-27
+ARG FROM_IMAGE_DIGEST=@sha256:04e229c0c0ba2247855d0e8c0fb87c1686f983adbafa4ce413e61b3905edb76b
+ARG FROM_IMAGE=$FROM_IMAGE_NAME$FROM_IMAGE_DIGEST
+
+FROM $FROM_IMAGE as build
+COPY . C:\cmake\src\cmake
+ARG ARCH="x86_64"
+ARG TEST="true"
+RUN \cmake\src\cmake\Utilities\Release\win\x86\build.bat %ARCH% %TEST%
+
+# Package in a separate stage so the builder can optionally skip it.
+FROM build as pack
+ARG PACK="ZIP WIX"
+RUN \cmake\src\cmake\Utilities\Release\win\x86\pack.bat %PACK%
diff --git a/Utilities/Release/win/x86/base/Dockerfile b/Utilities/Release/win/x86/base/Dockerfile
new file mode 100644
index 0000000..c2c00f8
--- /dev/null
+++ b/Utilities/Release/win/x86/base/Dockerfile
@@ -0,0 +1,30 @@
+# escape=`
+
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+# Produce a base image with a build environment for portable CMake binaries.
+# Build using the directory containing this file as its own build context.
+
+ARG FROM_IMAGE_NAME=mcr.microsoft.com/dotnet/framework/sdk:4.8-windowsservercore-ltsc2019
+ARG FROM_IMAGE_DIGEST=@sha256:a94289bfd61ba89cd162f7cf84afe0e307d4d2576b44b9bd277e7b3036ccfa6b
+ARG FROM_IMAGE=$FROM_IMAGE_NAME$FROM_IMAGE_DIGEST
+FROM $FROM_IMAGE
+
+# Use a traditional Windows shell.
+SHELL ["cmd", "/S", "/C"]
+
+# Install Visual Studio Build Tools for desktop development with C++.
+ADD https://aka.ms/vs/16/release/vs_buildtools.exe C:\TEMP\vs_buildtools.exe
+RUN C:\TEMP\vs_buildtools.exe --quiet --wait --norestart --nocache `
+ --installPath C:\BuildTools `
+ --add Microsoft.VisualStudio.Workload.VCTools `
+ --add Microsoft.VisualStudio.Component.VC.Tools.x86.x64 `
+ --add Microsoft.VisualStudio.Component.VC.CLI.Support `
+ --add Microsoft.VisualStudio.Component.VC.ATL `
+ --add Microsoft.VisualStudio.Component.Windows10SDK.18362 `
+ || IF "%ERRORLEVEL%"=="3010" EXIT 0
+RUN del C:\TEMP\vs_buildtools.exe
+
+# Add a toolchain environment loader for each architecture.
+COPY msvc-x86_64.bat msvc-i386.bat C:\
diff --git a/Utilities/Release/win/x86/base/msvc-i386.bat b/Utilities/Release/win/x86/base/msvc-i386.bat
new file mode 100755
index 0000000..a63bdd2
--- /dev/null
+++ b/Utilities/Release/win/x86/base/msvc-i386.bat
@@ -0,0 +1 @@
+@C:\BuildTools\VC\Auxiliary\Build\vcvarsall.bat x86
diff --git a/Utilities/Release/win/x86/base/msvc-x86_64.bat b/Utilities/Release/win/x86/base/msvc-x86_64.bat
new file mode 100755
index 0000000..cffe0e7
--- /dev/null
+++ b/Utilities/Release/win/x86/base/msvc-x86_64.bat
@@ -0,0 +1 @@
+@C:\BuildTools\VC\Auxiliary\Build\vcvarsall.bat x64
diff --git a/Utilities/Release/win/x86/build.bat b/Utilities/Release/win/x86/build.bat
new file mode 100755
index 0000000..2125572
--- /dev/null
+++ b/Utilities/Release/win/x86/build.bat
@@ -0,0 +1,19 @@
+@rem Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+@rem file Copyright.txt or https://cmake.org/licensing for details.
+
+set ARCH=%1
+set TEST=%2
+
+copy \msvc-%ARCH%.bat \msvc.bat
+call \msvc.bat && @echo on || exit /b
+set PATH=C:\ninja;%PATH%
+
+mkdir \cmake\src\cmake-build && ^
+cd \cmake\src\cmake-build && ^
+copy ..\cmake\Utilities\Release\win\x86\cache-%ARCH%.txt CMakeCache.txt && ^
+\cmake\cmake\bin\cmake ..\cmake -GNinja && ^
+ninja && (
+ if "%TEST%"=="true" (
+ bin\ctest --output-on-failure -j %NUMBER_OF_PROCESSORS% -R "^(CMake\.|CMakeLib\.|CMakeServerLib\.|RunCMake\.ctest_memcheck)"
+ )
+)
diff --git a/Utilities/Release/win/x86/cache-i386.txt b/Utilities/Release/win/x86/cache-i386.txt
new file mode 100644
index 0000000..3c0ecc7
--- /dev/null
+++ b/Utilities/Release/win/x86/cache-i386.txt
@@ -0,0 +1,45 @@
+CMAKE_BUILD_TYPE:STRING=Release
+
+# Use APIs from at most Windows 7
+CMAKE_C_FLAGS:STRING=-D_WIN32_WINNT=0x601 -DNTDDI_VERSION=0x06010000
+CMAKE_CXX_FLAGS:STRING=-GR -EHsc -D_WIN32_WINNT=0x601 -DNTDDI_VERSION=0x06010000
+CMAKE_EXE_LINKER_FLAGS:STRING=-machine:x86 -subsystem:console,6.01
+
+# Link C/C++ runtime library statically.
+CMAKE_MSVC_RUNTIME_LIBRARY:STRING=MultiThreaded$<$<CONFIG:Debug>:Debug>
+
+# No ssl support in curl: use native Windows APIs.
+CMAKE_USE_OPENSSL:BOOL=OFF
+
+# Enable cmake-gui with static qt plugins
+BUILD_QtDialog:BOOL=TRUE
+CMake_GUI_DISTRIBUTE_WITH_Qt_LGPL:STRING=3
+CMAKE_PREFIX_PATH:STRING=C:/qt-i386
+CMake_QT_STATIC_QWindowsIntegrationPlugin_LIBRARIES:STRING=c:/qt-i386/plugins/platforms/qwindows.lib;c:/qt-i386/plugins/styles/qwindowsvistastyle.lib;c:/qt-i386/lib/Qt5EventDispatcherSupport.lib;c:/qt-i386/lib/Qt5FontDatabaseSupport.lib;c:/qt-i386/lib/Qt5ThemeSupport.lib;c:/qt-i386/lib/qtfreetype.lib;c:/qt-i386/lib/qtlibpng.lib;imm32.lib;wtsapi32.lib
+
+# Build documentation.
+CMAKE_DOC_DIR:STRING=doc/cmake
+PYTHON_EXECUTABLE:FILEPATH=C:/python3/python.exe
+SPHINX_EXECUTABLE:FILEPATH=C:/python3/Scripts/sphinx-build.exe
+SPHINX_HTML:BOOL=ON
+SPHINX_MAN:BOOL=ON
+SPHINX_QTHELP:BOOL=ON
+QCOLLECTIONGENERATOR_EXECUTABLE:PATH=C:/qt-i386/bin/qhelpgenerator.exe
+
+# No bootstrap with MSVC tools.
+CMAKE_SKIP_BOOTSTRAP_TEST:STRING=TRUE
+
+# No MFC in base image.
+CTEST_RUN_MFC:BOOL=OFF
+
+# No Fortran compiler.
+CMAKE_Fortran_COMPILER:FILEPATH=FALSE
+
+# No Swift compiler.
+CMAKE_Swift_COMPILER:FILEPATH=FALSE
+
+# Skip Qt5 tests because our Qt is static.
+CMake_TEST_Qt5:BOOL=FALSE
+
+# CPack package file name component for this platform.
+CPACK_SYSTEM_NAME:STRING=win32-x86
diff --git a/Utilities/Release/win/x86/cache-x86_64.txt b/Utilities/Release/win/x86/cache-x86_64.txt
new file mode 100644
index 0000000..2ccf93b
--- /dev/null
+++ b/Utilities/Release/win/x86/cache-x86_64.txt
@@ -0,0 +1,45 @@
+CMAKE_BUILD_TYPE:STRING=Release
+
+# Use APIs from at most Windows 7
+CMAKE_C_FLAGS:STRING=-D_WIN32_WINNT=0x601 -DNTDDI_VERSION=0x06010000
+CMAKE_CXX_FLAGS:STRING=-GR -EHsc -D_WIN32_WINNT=0x601 -DNTDDI_VERSION=0x06010000
+CMAKE_EXE_LINKER_FLAGS:STRING=-machine:x64 -subsystem:console,6.01
+
+# Link C/C++ runtime library statically.
+CMAKE_MSVC_RUNTIME_LIBRARY:STRING=MultiThreaded$<$<CONFIG:Debug>:Debug>
+
+# No ssl support in curl: use native Windows APIs.
+CMAKE_USE_OPENSSL:BOOL=OFF
+
+# Enable cmake-gui with static qt plugins
+BUILD_QtDialog:BOOL=TRUE
+CMake_GUI_DISTRIBUTE_WITH_Qt_LGPL:STRING=3
+CMAKE_PREFIX_PATH:STRING=C:/qt-x86_64
+CMake_QT_STATIC_QWindowsIntegrationPlugin_LIBRARIES:STRING=c:/qt-x86_64/plugins/platforms/qwindows.lib;c:/qt-x86_64/plugins/styles/qwindowsvistastyle.lib;c:/qt-x86_64/lib/Qt5EventDispatcherSupport.lib;c:/qt-x86_64/lib/Qt5FontDatabaseSupport.lib;c:/qt-x86_64/lib/Qt5ThemeSupport.lib;c:/qt-x86_64/lib/qtfreetype.lib;c:/qt-x86_64/lib/qtlibpng.lib;imm32.lib;wtsapi32.lib
+
+# Build documentation.
+CMAKE_DOC_DIR:STRING=doc/cmake
+PYTHON_EXECUTABLE:FILEPATH=C:/python3/python.exe
+SPHINX_EXECUTABLE:FILEPATH=C:/python3/Scripts/sphinx-build.exe
+SPHINX_HTML:BOOL=ON
+SPHINX_MAN:BOOL=ON
+SPHINX_QTHELP:BOOL=ON
+QCOLLECTIONGENERATOR_EXECUTABLE:PATH=C:/qt-x86_64/bin/qhelpgenerator.exe
+
+# No bootstrap with MSVC tools.
+CMAKE_SKIP_BOOTSTRAP_TEST:STRING=TRUE
+
+# No MFC in base image.
+CTEST_RUN_MFC:BOOL=OFF
+
+# No Fortran compiler.
+CMAKE_Fortran_COMPILER:FILEPATH=FALSE
+
+# No Swift compiler.
+CMAKE_Swift_COMPILER:FILEPATH=FALSE
+
+# Skip Qt5 tests because our Qt is static.
+CMake_TEST_Qt5:BOOL=FALSE
+
+# CPack package file name component for this platform.
+CPACK_SYSTEM_NAME:STRING=win64-x64
diff --git a/Utilities/Release/win/x86/deps/Dockerfile b/Utilities/Release/win/x86/deps/Dockerfile
new file mode 100644
index 0000000..4b294c1
--- /dev/null
+++ b/Utilities/Release/win/x86/deps/Dockerfile
@@ -0,0 +1,127 @@
+# escape=`
+
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+# Produce an image with custom-built dependencies for portable CMake binaries.
+# Build using the directory containing this file as its own build context.
+
+ARG FROM_IMAGE_NAME=kitware/cmake:build-win-x86-base-2020-04-27
+ARG FROM_IMAGE_DIGEST=@sha256:c5a8948d636319cdac0180266996558bb6fb037125792b5b837f069d02e53d7c
+ARG FROM_IMAGE=$FROM_IMAGE_NAME$FROM_IMAGE_DIGEST
+
+# Qt Source
+FROM $FROM_IMAGE AS qt-src
+
+# JOM
+ADD http://download.qt-project.org/official_releases/jom/unstable-jom.zip C:\jom\jom.zip
+RUN cd \jom `
+ && powershell -Command " `
+ if ($(Get-FileHash jom.zip).Hash -eq '128fdd846fe24f8594eed37d1d8929a0ea78df563537c0c1b1861a635013fff8') {`
+ Expand-Archive -Path jom.zip -DestinationPath .`
+ } else {`
+ exit 1 `
+ }" `
+ && del jom.zip
+
+# XZ
+ADD https://tukaani.org/xz/xz-5.2.5-windows.zip C:\xz\xz.zip
+RUN cd \xz `
+ && powershell -Command " `
+ if ($(Get-FileHash xz.zip).Hash -eq 'd83b82ca75dfab39a13dda364367b34970c781a9df4d41264db922ac3a8f622d') {`
+ Expand-Archive -Path xz.zip -DestinationPath .`
+ } else {`
+ exit 1 `
+ }" `
+ && del xz.zip
+
+# Git
+ADD https://github.com/git-for-windows/git/releases/download/v2.26.2.windows.1/MinGit-2.26.2-busybox-64-bit.zip C:\git\git.zip
+RUN cd \git `
+ && powershell -Command " `
+ if ($(Get-FileHash git.zip).Hash -eq 'e834ea73fe093fb180dc45f67a1f2a7a566dab53d1d45bc3cd150106f5c40520') {`
+ Expand-Archive -Path git.zip -DestinationPath .`
+ } else {`
+ exit 1 `
+ }" `
+ && del git.zip
+
+# Qt Source
+ADD https://download.qt.io/official_releases/qt/5.12/5.12.1/single/qt-everywhere-src-5.12.1.tar.xz C:\qt-src\qt.tar.xz
+RUN cd \qt-src `
+ && powershell -Command " `
+ if ($(Get-FileHash qt.tar.xz).Hash -eq 'caffbd625c7bc10ff8c5c7a27dbc7d84fa4de146975c0e1ffe904b514ccd6da4') {`
+ \xz\bin_x86-64\xz -d qt.tar.xz `
+ } else {`
+ exit 1 `
+ }" `
+ && tar xvf qt.tar `
+ && del qt.tar `
+ && move qt-everywhere-src-5.12.1 qt
+COPY qt-build.bat qt-install.patch C:\qt-src\
+
+# Qt Build i386
+FROM qt-src as qt-i386
+RUN \qt-src\qt-build.bat i386
+
+# Qt Build x86_64
+FROM qt-src as qt-x86_64
+RUN \qt-src\qt-build.bat x86_64
+
+# Output Stage
+FROM $FROM_IMAGE
+
+# Qt
+COPY --from=qt-i386 C:\qt-i386 C:\qt-i386
+COPY --from=qt-x86_64 C:\qt-x86_64 C:\qt-x86_64
+
+# WIX
+ADD https://github.com/wixtoolset/wix3/releases/download/wix3112rtm/wix311-binaries.zip C:\wix\wix.zip
+RUN cd \wix `
+ && powershell -Command " `
+ if ($(Get-FileHash wix.zip).Hash -eq '2c1888d5d1dba377fc7fa14444cf556963747ff9a0a289a3599cf09da03b9e2e') {`
+ Expand-Archive -Path wix.zip -DestinationPath .`
+ } else {`
+ exit 1 `
+ }" `
+ && del wix.zip
+
+# Python and Sphinx
+ADD https://www.python.org/ftp/python/3.8.2/python-3.8.2-embed-amd64.zip C:\python3\python3.zip
+RUN cd \python3 `
+ && powershell -Command " `
+ if ($(Get-FileHash python3.zip).Hash -eq '2927a3a6d0fe1f6e047a86059220aeda374eed23113b9ef5355acb8452d56453') {`
+ Expand-Archive -Path python3.zip -DestinationPath .`
+ } else {`
+ exit 1 `
+ }" `
+ && del python3.zip `
+ && curl -O https://bootstrap.pypa.io/get-pip.py `
+ && python get-pip.py `
+ && del python38._pth `
+ && set "PY_LIBS=C:\python3\Lib;C:\Python3\Lib\site-packages" `
+ && set "PY_PIP=C:\python3\Scripts" `
+ && Scripts\pip install --no-warn-script-location sphinx==2.1.2
+
+# Ninja
+ADD https://github.com/ninja-build/ninja/releases/download/v1.10.0/ninja-win.zip C:\ninja\ninja.zip
+RUN cd \ninja `
+ && powershell -Command " `
+ if ($(Get-FileHash ninja.zip).Hash -eq '919fd158c16bf135e8a850bb4046ec1ce28a7439ee08b977cd0b7f6b3463d178') {`
+ Expand-Archive -Path ninja.zip -DestinationPath .`
+ } else {`
+ exit 1 `
+ }" `
+ && del ninja.zip
+
+# CMake
+ADD https://github.com/Kitware/CMake/releases/download/v3.17.1/cmake-3.17.1-win64-x64.zip C:\cmake\cmake.zip
+RUN cd \cmake `
+ && powershell -Command " `
+ if ($(Get-FileHash cmake.zip).Hash -eq 'a5af7a2fe73f34070456397e940042e4469f072126c82974f44333ac43d478b1') {`
+ Expand-Archive -Path cmake.zip -DestinationPath .`
+ } else {`
+ exit 1 `
+ }" `
+ && move cmake-*-win64-x64 cmake `
+ && del cmake.zip
diff --git a/Utilities/Release/win/x86/deps/qt-build.bat b/Utilities/Release/win/x86/deps/qt-build.bat
new file mode 100755
index 0000000..e8bfa81
--- /dev/null
+++ b/Utilities/Release/win/x86/deps/qt-build.bat
@@ -0,0 +1,47 @@
+set ARCH=%1
+call \msvc-%ARCH%.bat && @echo on || exit /b
+mkdir \qt-src\qt-build && ^
+cd \qt-src\qt-build && ^
+..\qt\configure.bat ^
+ -prefix C:/qt-%ARCH% ^
+ -static ^
+ -static-runtime ^
+ -release ^
+ -opensource -confirm-license ^
+ -platform win32-msvc ^
+ -mp ^
+ -gui ^
+ -widgets ^
+ -qt-pcre ^
+ -qt-zlib ^
+ -qt-libpng ^
+ -qt-libjpeg ^
+ -no-gif ^
+ -no-icu ^
+ -no-pch ^
+ -no-angle ^
+ -no-opengl ^
+ -no-dbus ^
+ -no-harfbuzz ^
+ -no-accessibility ^
+ -skip declarative ^
+ -skip multimedia ^
+ -skip qtcanvas3d ^
+ -skip qtconnectivity ^
+ -skip qtdeclarative ^
+ -skip qtlocation ^
+ -skip qtmultimedia ^
+ -skip qtsensors ^
+ -skip qtserialport ^
+ -skip qtsvg ^
+ -skip qtwayland ^
+ -skip qtwebchannel ^
+ -skip qtwebengine ^
+ -skip qtwebsockets ^
+ -skip qtxmlpatterns ^
+ -nomake examples -nomake tests ^
+ && ^
+\jom\jom.exe -J %NUMBER_OF_PROCESSORS% && ^
+\jom\jom.exe install && ^
+cd \qt-%ARCH% && ^
+\git\cmd\git apply \qt-src\qt-install.patch
diff --git a/Utilities/Release/win/x86/deps/qt-install.patch b/Utilities/Release/win/x86/deps/qt-install.patch
new file mode 100644
index 0000000..39a649e
--- /dev/null
+++ b/Utilities/Release/win/x86/deps/qt-install.patch
@@ -0,0 +1,26 @@
+diff --git a/lib/cmake/Qt5Core/Qt5CoreConfig.cmake b/lib/cmake/Qt5Core/Qt5CoreConfig.cmake
+index 04ec302..75d5596 100644
+--- a/lib/cmake/Qt5Core/Qt5CoreConfig.cmake
++++ b/lib/cmake/Qt5Core/Qt5CoreConfig.cmake
+@@ -118,7 +118,7 @@ if (NOT TARGET Qt5::Core)
+ list(REMOVE_DUPLICATES Qt5Core_COMPILE_DEFINITIONS)
+ list(REMOVE_DUPLICATES Qt5Core_EXECUTABLE_COMPILE_FLAGS)
+
+- set(_Qt5Core_LIB_DEPENDENCIES "")
++ set(_Qt5Core_LIB_DEPENDENCIES "${_qt5Core_install_prefix}/lib/qtpcre2.lib;netapi32.lib;version.lib")
+
+
+ add_library(Qt5::Core STATIC IMPORTED)
+diff --git a/lib/cmake/Qt5Widgets/Qt5WidgetsConfig.cmake b/lib/cmake/Qt5Widgets/Qt5WidgetsConfig.cmake
+index a07b953..2e07371 100644
+--- a/lib/cmake/Qt5Widgets/Qt5WidgetsConfig.cmake
++++ b/lib/cmake/Qt5Widgets/Qt5WidgetsConfig.cmake
+@@ -118,7 +118,7 @@ if (NOT TARGET Qt5::Widgets)
+ list(REMOVE_DUPLICATES Qt5Widgets_COMPILE_DEFINITIONS)
+ list(REMOVE_DUPLICATES Qt5Widgets_EXECUTABLE_COMPILE_FLAGS)
+
+- set(_Qt5Widgets_LIB_DEPENDENCIES "Qt5::Gui;Qt5::Core")
++ set(_Qt5Widgets_LIB_DEPENDENCIES "Qt5::Gui;Qt5::Core;dwmapi.lib;uxtheme.lib")
+
+
+ add_library(Qt5::Widgets STATIC IMPORTED)
diff --git a/Utilities/Release/win/x86/pack.bat b/Utilities/Release/win/x86/pack.bat
new file mode 100755
index 0000000..2d37eef
--- /dev/null
+++ b/Utilities/Release/win/x86/pack.bat
@@ -0,0 +1,12 @@
+@rem Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+@rem file Copyright.txt or https://cmake.org/licensing for details.
+
+call \msvc.bat && @echo on || exit /b
+set PATH=C:\wix;C:\ninja;%PATH%
+cd \cmake\src\cmake-build && (
+ for %%p in (%*) do (
+ bin\cpack -G %%p
+ )
+) && ^
+mkdir \out && ^
+move cmake-*-win* \out
diff --git a/Utilities/Release/win/x86/test/Dockerfile b/Utilities/Release/win/x86/test/Dockerfile
new file mode 100644
index 0000000..15bcd37
--- /dev/null
+++ b/Utilities/Release/win/x86/test/Dockerfile
@@ -0,0 +1,37 @@
+# escape=`
+
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+# Produce a base image with a test environment for packaged CMake binaries.
+# Build using the directory containing this file as its own build context.
+
+ARG FROM_IMAGE_NAME=kitware/cmake:build-win-x86-base-2020-04-27
+ARG FROM_IMAGE_DIGEST=@sha256:c5a8948d636319cdac0180266996558bb6fb037125792b5b837f069d02e53d7c
+ARG FROM_IMAGE=$FROM_IMAGE_NAME$FROM_IMAGE_DIGEST
+FROM $FROM_IMAGE
+
+# Python
+ADD https://www.python.org/ftp/python/3.8.2/python-3.8.2-embed-amd64.zip C:\python3\python3.zip
+RUN cd \python3 `
+ && powershell -Command " `
+ if ($(Get-FileHash python3.zip).Hash -eq '2927a3a6d0fe1f6e047a86059220aeda374eed23113b9ef5355acb8452d56453') {`
+ Expand-Archive -Path python3.zip -DestinationPath .`
+ } else {`
+ exit 1 `
+ }" `
+ && del python3.zip `
+ && del python38._pth
+
+# Ninja
+ADD https://github.com/ninja-build/ninja/releases/download/v1.10.0/ninja-win.zip C:\ninja\ninja.zip
+RUN cd \ninja `
+ && powershell -Command " `
+ if ($(Get-FileHash ninja.zip).Hash -eq '919fd158c16bf135e8a850bb4046ec1ce28a7439ee08b977cd0b7f6b3463d178') {`
+ Expand-Archive -Path ninja.zip -DestinationPath .`
+ } else {`
+ exit 1 `
+ }" `
+ && del ninja.zip
+
+COPY test-nmake.bat test-ninja.bat C:\
diff --git a/Utilities/Release/win/x86/test/test-ninja.bat b/Utilities/Release/win/x86/test/test-ninja.bat
new file mode 100755
index 0000000..b8347ef
--- /dev/null
+++ b/Utilities/Release/win/x86/test/test-ninja.bat
@@ -0,0 +1,19 @@
+@rem Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+@rem file Copyright.txt or https://cmake.org/licensing for details.
+
+set ARCH=%1
+call \msvc-%ARCH%.bat && @echo on || exit /b
+set "PATH=C:\cmake\cmake\bin;C:\ninja;C:\python3;%PATH%"
+mkdir \cmake\src\cmake-ninja && ^
+cd \cmake\src\cmake-ninja && ^
+> CMakeCache.txt (
+ @echo CMAKE_Fortran_COMPILER:STRING=
+ @echo CMAKE_Swift_COMPILER:STRING=
+ @echo CMake_TEST_IPO_WORKS_C:BOOL=ON
+ @echo CMake_TEST_IPO_WORKS_CXX:BOOL=ON
+ @echo CMake_TEST_NO_NETWORK:BOOL=ON
+ @echo CTEST_RUN_MFC:BOOL=OFF
+) && ^
+cmake ..\cmake -DCMake_TEST_HOST_CMAKE=1 -G "Ninja" && ^
+ninja && ^
+ctest --output-on-failure -j %NUMBER_OF_PROCESSORS%
diff --git a/Utilities/Release/win/x86/test/test-nmake.bat b/Utilities/Release/win/x86/test/test-nmake.bat
new file mode 100755
index 0000000..5008711
--- /dev/null
+++ b/Utilities/Release/win/x86/test/test-nmake.bat
@@ -0,0 +1,19 @@
+@rem Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+@rem file Copyright.txt or https://cmake.org/licensing for details.
+
+set ARCH=%1
+call \msvc-%ARCH%.bat && @echo on || exit /b
+set "PATH=C:\cmake\cmake\bin;C:\python3;%PATH%"
+mkdir \cmake\src\cmake-nmake && ^
+cd \cmake\src\cmake-nmake && ^
+> CMakeCache.txt (
+ @echo CMAKE_Fortran_COMPILER:STRING=
+ @echo CMAKE_Swift_COMPILER:STRING=
+ @echo CMake_TEST_IPO_WORKS_C:BOOL=ON
+ @echo CMake_TEST_IPO_WORKS_CXX:BOOL=ON
+ @echo CMake_TEST_NO_NETWORK:BOOL=ON
+ @echo CTEST_RUN_MFC:BOOL=OFF
+) && ^
+cmake ..\cmake -DCMake_TEST_HOST_CMAKE=1 -G "NMake Makefiles" && ^
+nmake && ^
+ctest --output-on-failure -j %NUMBER_OF_PROCESSORS%
diff --git a/Utilities/Release/win32_release.cmake b/Utilities/Release/win32_release.cmake
deleted file mode 100644
index 993db6e..0000000
--- a/Utilities/Release/win32_release.cmake
+++ /dev/null
@@ -1,53 +0,0 @@
-set(CMAKE_RELEASE_DIRECTORY "c:/msys64/home/dashboard/CMakeReleaseDirectory32")
-set(CONFIGURE_WITH_CMAKE TRUE)
-set(CMAKE_CONFIGURE_PATH "c:/Program\\ Files/CMake/bin/cmake.exe")
-set(PROCESSORS 16)
-set(HOST win32)
-set(RUN_LAUNCHER ~/rel/run)
-set(CPACK_BINARY_GENERATORS "WIX ZIP")
-set(CPACK_SOURCE_GENERATORS "")
-set(MAKE_PROGRAM "ninja")
-set(MAKE "${MAKE_PROGRAM} -j16")
-set(qt_prefix "c:/Qt/5.12.1/msvc2017-32-w7-mt")
-set(qt_win_libs
- ${qt_prefix}/plugins/platforms/qwindows.lib
- ${qt_prefix}/plugins/styles/qwindowsvistastyle.lib
- ${qt_prefix}/lib/Qt5EventDispatcherSupport.lib
- ${qt_prefix}/lib/Qt5FontDatabaseSupport.lib
- ${qt_prefix}/lib/Qt5ThemeSupport.lib
- ${qt_prefix}/lib/qtfreetype.lib
- ${qt_prefix}/lib/qtlibpng.lib
- imm32.lib
- wtsapi32.lib
- )
-set(INITIAL_CACHE "CMAKE_BUILD_TYPE:STRING=Release
-CMAKE_DOC_DIR:STRING=doc/cmake
-CMAKE_USE_OPENSSL:BOOL=OFF
-CMAKE_SKIP_BOOTSTRAP_TEST:STRING=TRUE
-CMAKE_Fortran_COMPILER:FILEPATH=FALSE
-CMAKE_GENERATOR:INTERNAL=Ninja
-BUILD_QtDialog:BOOL=TRUE
-CMake_GUI_DISTRIBUTE_WITH_Qt_LGPL:STRING=3
-CMAKE_MSVC_RUNTIME_LIBRARY:STRING=MultiThreaded$<$<CONFIG:Debug>:Debug>
-CMAKE_EXE_LINKER_FLAGS:STRING=-machine:x86 -subsystem:console,6.01
-CMake_QT_STATIC_QWindowsIntegrationPlugin_LIBRARIES:STRING=${qt_win_libs}
-CMAKE_PREFIX_PATH:STRING=${qt_prefix}
-CMake_TEST_Qt4:BOOL=OFF
-CMake_TEST_Qt5:BOOL=OFF
-PYTHON_EXECUTABLE:FILEPATH=C:/Python/3.8-64/python.exe
-")
-set(ppflags "-D_WIN32_WINNT=0x601 -DNTDDI_VERSION=0x06010000")
-set(CFLAGS "${ppflags}")
-set(CXXFLAGS "${ppflags}")
-set(ENV ". ~/rel/env32")
-get_filename_component(path "${CMAKE_CURRENT_LIST_FILE}" PATH)
-set(GIT_EXTRA "git config core.autocrlf true")
-if(CMAKE_CREATE_VERSION STREQUAL "nightly")
- # Some tests fail spuriously too often.
- set(EXTRA_CTEST_ARGS "-E 'ConsoleBuf|Module.ExternalData'")
- set(SIGN "")
-else()
- string(APPEND INITIAL_CACHE "CMake_INSTALL_SIGNTOOL:STRING=signtool\n")
- set(SIGN [[signtool sign -v -a -tr http://timestamp.digicert.com -fd sha256 -td sha256 -d "CMake Windows Installer" cmake-*.msi]])
-endif()
-include(${path}/release_cmake.cmake)
diff --git a/Utilities/Release/win64_release.cmake b/Utilities/Release/win64_release.cmake
deleted file mode 100644
index 3042889..0000000
--- a/Utilities/Release/win64_release.cmake
+++ /dev/null
@@ -1,53 +0,0 @@
-set(CMAKE_RELEASE_DIRECTORY "c:/msys64/home/dashboard/CMakeReleaseDirectory64")
-set(CONFIGURE_WITH_CMAKE TRUE)
-set(CMAKE_CONFIGURE_PATH "c:/Program\\ Files/CMake/bin/cmake.exe")
-set(PROCESSORS 16)
-set(HOST win64)
-set(RUN_LAUNCHER ~/rel/run)
-set(CPACK_BINARY_GENERATORS "WIX ZIP")
-set(CPACK_SOURCE_GENERATORS "")
-set(MAKE_PROGRAM "ninja")
-set(MAKE "${MAKE_PROGRAM} -j16")
-set(qt_prefix "c:/Qt/5.12.1/msvc2017-64-w7-mt")
-set(qt_win_libs
- ${qt_prefix}/plugins/platforms/qwindows.lib
- ${qt_prefix}/plugins/styles/qwindowsvistastyle.lib
- ${qt_prefix}/lib/Qt5EventDispatcherSupport.lib
- ${qt_prefix}/lib/Qt5FontDatabaseSupport.lib
- ${qt_prefix}/lib/Qt5ThemeSupport.lib
- ${qt_prefix}/lib/qtfreetype.lib
- ${qt_prefix}/lib/qtlibpng.lib
- imm32.lib
- wtsapi32.lib
- )
-set(INITIAL_CACHE "CMAKE_BUILD_TYPE:STRING=Release
-CMAKE_DOC_DIR:STRING=doc/cmake
-CMAKE_USE_OPENSSL:BOOL=OFF
-CMAKE_SKIP_BOOTSTRAP_TEST:STRING=TRUE
-CMAKE_Fortran_COMPILER:FILEPATH=FALSE
-CMAKE_GENERATOR:INTERNAL=Ninja
-BUILD_QtDialog:BOOL=TRUE
-CMake_GUI_DISTRIBUTE_WITH_Qt_LGPL:STRING=3
-CMAKE_MSVC_RUNTIME_LIBRARY:STRING=MultiThreaded$<$<CONFIG:Debug>:Debug>
-CMAKE_EXE_LINKER_FLAGS:STRING=-machine:x64 -subsystem:console,6.01
-CMake_QT_STATIC_QWindowsIntegrationPlugin_LIBRARIES:STRING=${qt_win_libs}
-CMAKE_PREFIX_PATH:STRING=${qt_prefix}
-CMake_TEST_Qt4:BOOL=OFF
-CMake_TEST_Qt5:BOOL=OFF
-PYTHON_EXECUTABLE:FILEPATH=C:/Python/3.8-64/python.exe
-")
-set(ppflags "-D_WIN32_WINNT=0x601 -DNTDDI_VERSION=0x06010000")
-set(CFLAGS "${ppflags}")
-set(CXXFLAGS "${ppflags}")
-set(ENV ". ~/rel/env64")
-get_filename_component(path "${CMAKE_CURRENT_LIST_FILE}" PATH)
-set(GIT_EXTRA "git config core.autocrlf true")
-if(CMAKE_CREATE_VERSION STREQUAL "nightly")
- # Some tests fail spuriously too often.
- set(EXTRA_CTEST_ARGS "-E 'ConsoleBuf|Module.ExternalData'")
- set(SIGN "")
-else()
- string(APPEND INITIAL_CACHE "CMake_INSTALL_SIGNTOOL:STRING=signtool\n")
- set(SIGN [[signtool sign -v -a -tr http://timestamp.digicert.com -fd sha256 -td sha256 -d "CMake Windows Installer" cmake-*.msi]])
-endif()
-include(${path}/release_cmake.cmake)
diff --git a/Utilities/Sphinx/CMakeLists.txt b/Utilities/Sphinx/CMakeLists.txt
index 17c5018..e5be43a 100644
--- a/Utilities/Sphinx/CMakeLists.txt
+++ b/Utilities/Sphinx/CMakeLists.txt
@@ -89,7 +89,7 @@ if(SPHINX_QTHELP)
find_package(PythonInterp REQUIRED)
find_program(QCOLLECTIONGENERATOR_EXECUTABLE
- NAMES qcollectiongenerator
+ NAMES qcollectiongenerator-qt5 qcollectiongenerator
DOC "qcollectiongenerator tool"
)
if (NOT QCOLLECTIONGENERATOR_EXECUTABLE)
diff --git a/Utilities/Sphinx/CTestConfig.cmake b/Utilities/Sphinx/CTestConfig.cmake
new file mode 100644
index 0000000..9607e38
--- /dev/null
+++ b/Utilities/Sphinx/CTestConfig.cmake
@@ -0,0 +1,14 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+# If changing this file, also update CTestConfig.cmake
+
+set(CTEST_PROJECT_NAME "CMake")
+set(CTEST_NIGHTLY_START_TIME "1:00:00 UTC")
+
+set(CTEST_DROP_METHOD "http")
+set(CTEST_DROP_SITE "open.cdash.org")
+set(CTEST_DROP_LOCATION "/submit.php?project=CMake")
+set(CTEST_DROP_SITE_CDASH TRUE)
+set(CTEST_CDASH_VERSION "1.6")
+set(CTEST_CDASH_QUERY_VERSION TRUE)
diff --git a/Utilities/cm3p/Setup.Configuration.h b/Utilities/cm3p/Setup.Configuration.h
new file mode 100644
index 0000000..a5cf058
--- /dev/null
+++ b/Utilities/cm3p/Setup.Configuration.h
@@ -0,0 +1,8 @@
+/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+ file Copyright.txt or https://cmake.org/licensing for details. */
+#ifndef cm3p_Setup_Configuration_h
+#define cm3p_Setup_Configuration_h
+
+#include <cmvssetup/Setup.Configuration.h> // IWYU pragma: export
+
+#endif
diff --git a/Utilities/cm_libarchive.h b/Utilities/cm3p/archive.h
index ea8e9db..956b3ab 100644
--- a/Utilities/cm_libarchive.h
+++ b/Utilities/cm3p/archive.h
@@ -1,16 +1,14 @@
/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
file Copyright.txt or https://cmake.org/licensing for details. */
-#ifndef cm_libarchive_h
-#define cm_libarchive_h
+#ifndef cm3p_archive_h
+#define cm3p_archive_h
/* Use the libarchive configured for CMake. */
#include "cmThirdParty.h"
#ifdef CMAKE_USE_SYSTEM_LIBARCHIVE
-# include <archive.h>
-# include <archive_entry.h>
+# include <archive.h> // IWYU pragma: export
#else
-# include <cmlibarchive/libarchive/archive.h>
-# include <cmlibarchive/libarchive/archive_entry.h>
+# include <cmlibarchive/libarchive/archive.h> // IWYU pragma: export
#endif
#endif
diff --git a/Utilities/cm3p/archive_entry.h b/Utilities/cm3p/archive_entry.h
new file mode 100644
index 0000000..230e87a
--- /dev/null
+++ b/Utilities/cm3p/archive_entry.h
@@ -0,0 +1,14 @@
+/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+ file Copyright.txt or https://cmake.org/licensing for details. */
+#ifndef cm3p_archive_entry_h
+#define cm3p_archive_entry_h
+
+/* Use the libarchive configured for CMake. */
+#include "cmThirdParty.h"
+#ifdef CMAKE_USE_SYSTEM_LIBARCHIVE
+# include <archive_entry.h> // IWYU pragma: export
+#else
+# include <cmlibarchive/libarchive/archive_entry.h> // IWYU pragma: export
+#endif
+
+#endif
diff --git a/Utilities/cm_bzlib.h b/Utilities/cm3p/bzlib.h
index 8669e9e..2a0f4dd 100644
--- a/Utilities/cm_bzlib.h
+++ b/Utilities/cm3p/bzlib.h
@@ -1,14 +1,14 @@
/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
file Copyright.txt or https://cmake.org/licensing for details. */
-#ifndef cm_bzlib_h
-#define cm_bzlib_h
+#ifndef cm3p_bzlib_h
+#define cm3p_bzlib_h
/* Use the bzip2 library configured for CMake. */
#include "cmThirdParty.h"
#ifdef CMAKE_USE_SYSTEM_BZIP2
-# include <bzlib.h>
+# include <bzlib.h> // IWYU pragma: export
#else
-# include <cmbzip2/bzlib.h>
+# include <cmbzip2/bzlib.h> // IWYU pragma: export
#endif
#endif
diff --git a/Utilities/cm_curl.h b/Utilities/cm3p/curl/curl.h
index 673f8ad..6e2b822 100644
--- a/Utilities/cm_curl.h
+++ b/Utilities/cm3p/curl/curl.h
@@ -1,14 +1,14 @@
/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
file Copyright.txt or https://cmake.org/licensing for details. */
-#ifndef cm_curl_h
-#define cm_curl_h
+#ifndef cm3p_curl_curl_h
+#define cm3p_curl_curl_h
/* Use the curl library configured for CMake. */
#include "cmThirdParty.h"
#ifdef CMAKE_USE_SYSTEM_CURL
-# include <curl/curl.h>
+# include <curl/curl.h> // IWYU pragma: export
#else
-# include <cmcurl/include/curl/curl.h>
+# include <cmcurl/include/curl/curl.h> // IWYU pragma: export
#endif
#endif
diff --git a/Utilities/cm_expat.h b/Utilities/cm3p/expat.h
index fc5b39a..32e6fd0 100644
--- a/Utilities/cm_expat.h
+++ b/Utilities/cm3p/expat.h
@@ -1,14 +1,14 @@
/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
file Copyright.txt or https://cmake.org/licensing for details. */
-#ifndef cm_expat_h
-#define cm_expat_h
+#ifndef cm3p_expat_h
+#define cm3p_expat_h
/* Use the expat library configured for CMake. */
#include "cmThirdParty.h"
#ifdef CMAKE_USE_SYSTEM_EXPAT
-# include <expat.h>
+# include <expat.h> // IWYU pragma: export
#else
-# include <cmexpat/lib/expat.h>
+# include <cmexpat/lib/expat.h> // IWYU pragma: export
#endif
#endif
diff --git a/Utilities/cm_jsoncpp_writer.h b/Utilities/cm3p/json/reader.h
index d9e5d82..0df09ee 100644
--- a/Utilities/cm_jsoncpp_writer.h
+++ b/Utilities/cm3p/json/reader.h
@@ -1,14 +1,14 @@
/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
file Copyright.txt or https://cmake.org/licensing for details. */
-#ifndef cm_jsoncpp_writer_h
-#define cm_jsoncpp_writer_h
+#ifndef cm3p_json_reader_h
+#define cm3p_json_reader_h
/* Use the jsoncpp library configured for CMake. */
#include "cmThirdParty.h"
#ifdef CMAKE_USE_SYSTEM_JSONCPP
-# include <json/writer.h>
+# include <json/reader.h> // IWYU pragma: export
#else
-# include <cmjsoncpp/include/json/writer.h>
+# include <cmjsoncpp/include/json/reader.h> // IWYU pragma: export
#endif
#endif
diff --git a/Utilities/cm_jsoncpp_value.h b/Utilities/cm3p/json/value.h
index 742d99a..f59bed6 100644
--- a/Utilities/cm_jsoncpp_value.h
+++ b/Utilities/cm3p/json/value.h
@@ -1,14 +1,14 @@
/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
file Copyright.txt or https://cmake.org/licensing for details. */
-#ifndef cm_jsoncpp_value_h
-#define cm_jsoncpp_value_h
+#ifndef cm3p_json_value_h
+#define cm3p_json_value_h
/* Use the jsoncpp library configured for CMake. */
#include "cmThirdParty.h"
#ifdef CMAKE_USE_SYSTEM_JSONCPP
-# include <json/value.h>
+# include <json/value.h> // IWYU pragma: export
#else
-# include <cmjsoncpp/include/json/value.h>
+# include <cmjsoncpp/include/json/value.h> // IWYU pragma: export
#endif
#endif
diff --git a/Utilities/cm_jsoncpp_reader.h b/Utilities/cm3p/json/writer.h
index 23af65c..7fcc3e2 100644
--- a/Utilities/cm_jsoncpp_reader.h
+++ b/Utilities/cm3p/json/writer.h
@@ -1,14 +1,14 @@
/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
file Copyright.txt or https://cmake.org/licensing for details. */
-#ifndef cm_jsoncpp_reader_h
-#define cm_jsoncpp_reader_h
+#ifndef cm3p_json_writer_h
+#define cm3p_json_writer_h
/* Use the jsoncpp library configured for CMake. */
#include "cmThirdParty.h"
#ifdef CMAKE_USE_SYSTEM_JSONCPP
-# include <json/reader.h>
+# include <json/writer.h> // IWYU pragma: export
#else
-# include <cmjsoncpp/include/json/reader.h>
+# include <cmjsoncpp/include/json/writer.h> // IWYU pragma: export
#endif
#endif
diff --git a/Utilities/cm_kwiml.h b/Utilities/cm3p/kwiml/abi.h
index 566f67e..6d0dedf 100644
--- a/Utilities/cm_kwiml.h
+++ b/Utilities/cm3p/kwiml/abi.h
@@ -1,16 +1,14 @@
/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
file Copyright.txt or https://cmake.org/licensing for details. */
-#ifndef cm_kwiml_h
-#define cm_kwiml_h
+#ifndef cm3p_kwiml_abi_h
+#define cm3p_kwiml_abi_h
/* Use the KWIML library configured for CMake. */
#include "cmThirdParty.h"
#ifdef CMAKE_USE_SYSTEM_KWIML
-# include <kwiml/abi.h>
-# include <kwiml/int.h>
+# include <kwiml/abi.h> // IWYU pragma: export
#else
-# include "KWIML/include/kwiml/abi.h"
-# include "KWIML/include/kwiml/int.h"
+# include <KWIML/include/kwiml/abi.h> // IWYU pragma: export
#endif
#endif
diff --git a/Utilities/cm3p/kwiml/int.h b/Utilities/cm3p/kwiml/int.h
new file mode 100644
index 0000000..4c7c23d
--- /dev/null
+++ b/Utilities/cm3p/kwiml/int.h
@@ -0,0 +1,14 @@
+/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+ file Copyright.txt or https://cmake.org/licensing for details. */
+#ifndef cm3p_kwiml_int_h
+#define cm3p_kwiml_int_h
+
+/* Use the KWIML library configured for CMake. */
+#include "cmThirdParty.h"
+#ifdef CMAKE_USE_SYSTEM_KWIML
+# include <kwiml/int.h> // IWYU pragma: export
+#else
+# include <KWIML/include/kwiml/int.h> // IWYU pragma: export
+#endif
+
+#endif
diff --git a/Utilities/cm_lzma.h b/Utilities/cm3p/lzma.h
index 0526036..abfacf3 100644
--- a/Utilities/cm_lzma.h
+++ b/Utilities/cm3p/lzma.h
@@ -1,14 +1,14 @@
/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
file Copyright.txt or https://cmake.org/licensing for details. */
-#ifndef cm_lzma_h
-#define cm_lzma_h
+#ifndef cm3p_lzma_h
+#define cm3p_lzma_h
/* Use the liblzma configured for CMake. */
#include "cmThirdParty.h"
#ifdef CMAKE_USE_SYSTEM_LIBLZMA
-# include <lzma.h>
+# include <lzma.h> // IWYU pragma: export
#else
-# include <cmliblzma/liblzma/api/lzma.h>
+# include <cmliblzma/liblzma/api/lzma.h> // IWYU pragma: export
#endif
#endif
diff --git a/Utilities/cm_rhash.h b/Utilities/cm3p/rhash.h
index 03d9871..9d5e411 100644
--- a/Utilities/cm_rhash.h
+++ b/Utilities/cm3p/rhash.h
@@ -1,14 +1,14 @@
/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
file Copyright.txt or https://cmake.org/licensing for details. */
-#ifndef cm_rhash_h
-#define cm_rhash_h
+#ifndef cm3p_rhash_h
+#define cm3p_rhash_h
/* Use the LibRHash library configured for CMake. */
#include "cmThirdParty.h"
#ifdef CMAKE_USE_SYSTEM_LIBRHASH
-# include <rhash.h>
+# include <rhash.h> // IWYU pragma: export
#else
-# include <cmlibrhash/librhash/rhash.h>
+# include <cmlibrhash/librhash/rhash.h> // IWYU pragma: export
#endif
#endif
diff --git a/Utilities/cm_uv.h b/Utilities/cm3p/uv.h
index 448f30d..307a09f 100644
--- a/Utilities/cm_uv.h
+++ b/Utilities/cm3p/uv.h
@@ -1,14 +1,14 @@
/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
file Copyright.txt or https://cmake.org/licensing for details. */
-#ifndef cm_uv_h
-#define cm_uv_h
+#ifndef cm3p_uv_h
+#define cm3p_uv_h
/* Use the libuv library configured for CMake. */
#include "cmThirdParty.h"
#ifdef CMAKE_USE_SYSTEM_LIBUV
-# include <uv.h>
+# include <uv.h> // IWYU pragma: export
#else
-# include <cmlibuv/include/uv.h>
+# include <cmlibuv/include/uv.h> // IWYU pragma: export
#endif
#endif
diff --git a/Utilities/cm_zlib.h b/Utilities/cm3p/zlib.h
index 2314183..fe7baee 100644
--- a/Utilities/cm_zlib.h
+++ b/Utilities/cm3p/zlib.h
@@ -1,14 +1,14 @@
/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
file Copyright.txt or https://cmake.org/licensing for details. */
-#ifndef cm_zlib_h
-#define cm_zlib_h
+#ifndef cm3p_zlib_h
+#define cm3p_zlib_h
/* Use the zlib library configured for CMake. */
#include "cmThirdParty.h"
#ifdef CMAKE_USE_SYSTEM_ZLIB
-# include <zlib.h>
+# include <zlib.h> // IWYU pragma: export
#else
-# include <cmzlib/zlib.h>
+# include <cmzlib/zlib.h> // IWYU pragma: export
#endif
#endif
diff --git a/Utilities/cm_zstd.h b/Utilities/cm3p/zstd.h
index 4bda996..07cc3e4 100644
--- a/Utilities/cm_zstd.h
+++ b/Utilities/cm3p/zstd.h
@@ -1,14 +1,14 @@
/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
file Copyright.txt or https://cmake.org/licensing for details. */
-#ifndef cm_zstd_h
-#define cm_zstd_h
+#ifndef cm3p_zstd_h
+#define cm3p_zstd_h
/* Use the libzstd configured for CMake. */
#include "cmThirdParty.h"
#ifdef CMAKE_USE_SYSTEM_ZSTD
-# include <zstd.h>
+# include <zstd.h> // IWYU pragma: export
#else
-# include <cmzstd/lib/zstd.h>
+# include <cmzstd/lib/zstd.h> // IWYU pragma: export
#endif
#endif
diff --git a/Utilities/cmexpat/lib/siphash.h b/Utilities/cmexpat/lib/siphash.h
index 95f78f8..a335ec0 100644
--- a/Utilities/cmexpat/lib/siphash.h
+++ b/Utilities/cmexpat/lib/siphash.h
@@ -97,7 +97,7 @@
#include <stddef.h> /* size_t */
-#include <cm_kwiml.h>
+#include <cm3p/kwiml/int.h>
#ifndef KWIML_INT_HAVE_UINT64_T
# define uint64_t KWIML_INT_uint64_t
diff --git a/Utilities/cmlibarchive/libarchive/archive_read_support_filter_bzip2.c b/Utilities/cmlibarchive/libarchive/archive_read_support_filter_bzip2.c
index 2b1a5e2..5333d47 100644
--- a/Utilities/cmlibarchive/libarchive/archive_read_support_filter_bzip2.c
+++ b/Utilities/cmlibarchive/libarchive/archive_read_support_filter_bzip2.c
@@ -41,7 +41,7 @@ __FBSDID("$FreeBSD$");
#include <unistd.h>
#endif
#ifdef HAVE_BZLIB_H
-#include <cm_bzlib.h>
+#include <cm3p/bzlib.h>
#endif
#include "archive.h"
diff --git a/Utilities/cmlibarchive/libarchive/archive_read_support_filter_gzip.c b/Utilities/cmlibarchive/libarchive/archive_read_support_filter_gzip.c
index 95cfd54..ac0b694 100644
--- a/Utilities/cmlibarchive/libarchive/archive_read_support_filter_gzip.c
+++ b/Utilities/cmlibarchive/libarchive/archive_read_support_filter_gzip.c
@@ -44,7 +44,7 @@ __FBSDID("$FreeBSD$");
#include <unistd.h>
#endif
#ifdef HAVE_ZLIB_H
-#include <cm_zlib.h>
+#include <cm3p/zlib.h>
#endif
#include "archive.h"
diff --git a/Utilities/cmlibarchive/libarchive/archive_read_support_filter_lzop.c b/Utilities/cmlibarchive/libarchive/archive_read_support_filter_lzop.c
index 4356b82..05f740b 100644
--- a/Utilities/cmlibarchive/libarchive/archive_read_support_filter_lzop.c
+++ b/Utilities/cmlibarchive/libarchive/archive_read_support_filter_lzop.c
@@ -50,7 +50,7 @@ __FBSDID("$FreeBSD$");
#include <lzo/lzo1x.h>
#endif
#ifdef HAVE_ZLIB_H
-#include <cm_zlib.h> /* for crc32 and adler32 */
+#include <cm3p/zlib.h> /* for crc32 and adler32 */
#endif
#include "archive.h"
diff --git a/Utilities/cmlibarchive/libarchive/archive_read_support_filter_xz.c b/Utilities/cmlibarchive/libarchive/archive_read_support_filter_xz.c
index a188186..3223b38 100644
--- a/Utilities/cmlibarchive/libarchive/archive_read_support_filter_xz.c
+++ b/Utilities/cmlibarchive/libarchive/archive_read_support_filter_xz.c
@@ -42,7 +42,7 @@ __FBSDID("$FreeBSD$");
#include <unistd.h>
#endif
#if HAVE_LZMA_H
-#include <cm_lzma.h>
+#include <cm3p/lzma.h>
#endif
#include "archive.h"
diff --git a/Utilities/cmlibarchive/libarchive/archive_read_support_filter_zstd.c b/Utilities/cmlibarchive/libarchive/archive_read_support_filter_zstd.c
index 4513706..e1ec60e 100644
--- a/Utilities/cmlibarchive/libarchive/archive_read_support_filter_zstd.c
+++ b/Utilities/cmlibarchive/libarchive/archive_read_support_filter_zstd.c
@@ -45,7 +45,7 @@ __FBSDID("$FreeBSD$");
#include <unistd.h>
#endif
#if HAVE_ZSTD_H
-#include <cm_zstd.h>
+#include <cm3p/zstd.h>
#endif
#include "archive.h"
diff --git a/Utilities/cmlibarchive/libarchive/archive_read_support_format_7zip.c b/Utilities/cmlibarchive/libarchive/archive_read_support_format_7zip.c
index c9f3527..456b2f8 100644
--- a/Utilities/cmlibarchive/libarchive/archive_read_support_format_7zip.c
+++ b/Utilities/cmlibarchive/libarchive/archive_read_support_format_7zip.c
@@ -33,13 +33,13 @@ __FBSDID("$FreeBSD$");
#include <stdlib.h>
#endif
#ifdef HAVE_BZLIB_H
-#include <cm_bzlib.h>
+#include <cm3p/bzlib.h>
#endif
#ifdef HAVE_LZMA_H
-#include <cm_lzma.h>
+#include <cm3p/lzma.h>
#endif
#ifdef HAVE_ZLIB_H
-#include <cm_zlib.h>
+#include <cm3p/zlib.h>
#endif
#include "archive.h"
diff --git a/Utilities/cmlibarchive/libarchive/archive_read_support_format_cab.c b/Utilities/cmlibarchive/libarchive/archive_read_support_format_cab.c
index c789d13..58644ba 100644
--- a/Utilities/cmlibarchive/libarchive/archive_read_support_format_cab.c
+++ b/Utilities/cmlibarchive/libarchive/archive_read_support_format_cab.c
@@ -38,7 +38,7 @@
#include <string.h>
#endif
#ifdef HAVE_ZLIB_H
-#include <cm_zlib.h>
+#include <cm3p/zlib.h>
#endif
#include "archive.h"
diff --git a/Utilities/cmlibarchive/libarchive/archive_read_support_format_iso9660.c b/Utilities/cmlibarchive/libarchive/archive_read_support_format_iso9660.c
index cf1419a..9121166 100644
--- a/Utilities/cmlibarchive/libarchive/archive_read_support_format_iso9660.c
+++ b/Utilities/cmlibarchive/libarchive/archive_read_support_format_iso9660.c
@@ -41,7 +41,7 @@ __FBSDID("$FreeBSD: head/lib/libarchive/archive_read_support_format_iso9660.c 20
#endif
#include <time.h>
#ifdef HAVE_ZLIB_H
-#include <cm_zlib.h>
+#include <cm3p/zlib.h>
#endif
#include "archive.h"
diff --git a/Utilities/cmlibarchive/libarchive/archive_read_support_format_rar.c b/Utilities/cmlibarchive/libarchive/archive_read_support_format_rar.c
index 1261191..61f2330 100644
--- a/Utilities/cmlibarchive/libarchive/archive_read_support_format_rar.c
+++ b/Utilities/cmlibarchive/libarchive/archive_read_support_format_rar.c
@@ -32,7 +32,7 @@
#include <time.h>
#include <limits.h>
#ifdef HAVE_ZLIB_H
-#include <cm_zlib.h> /* crc32 */
+#include <cm3p/zlib.h> /* crc32 */
#endif
#include "archive.h"
diff --git a/Utilities/cmlibarchive/libarchive/archive_read_support_format_rar5.c b/Utilities/cmlibarchive/libarchive/archive_read_support_format_rar5.c
index ec40cce..d3a1c1b 100644
--- a/Utilities/cmlibarchive/libarchive/archive_read_support_format_rar5.c
+++ b/Utilities/cmlibarchive/libarchive/archive_read_support_format_rar5.c
@@ -31,7 +31,7 @@
#endif
#include <time.h>
#ifdef HAVE_ZLIB_H
-#include <cm_zlib.h> /* crc32 */
+#include <cm3p/zlib.h> /* crc32 */
#endif
#ifdef HAVE_LIMITS_H
#include <limits.h>
diff --git a/Utilities/cmlibarchive/libarchive/archive_read_support_format_xar.c b/Utilities/cmlibarchive/libarchive/archive_read_support_format_xar.c
index 2bc5c7b..9489e51 100644
--- a/Utilities/cmlibarchive/libarchive/archive_read_support_format_xar.c
+++ b/Utilities/cmlibarchive/libarchive/archive_read_support_format_xar.c
@@ -39,13 +39,13 @@ __FBSDID("$FreeBSD$");
#include <expat.h>
#endif
#ifdef HAVE_BZLIB_H
-#include <cm_bzlib.h>
+#include <cm3p/bzlib.h>
#endif
#if HAVE_LZMA_H
-#include <cm_lzma.h>
+#include <cm3p/lzma.h>
#endif
#ifdef HAVE_ZLIB_H
-#include <cm_zlib.h>
+#include <cm3p/zlib.h>
#endif
#include "archive.h"
diff --git a/Utilities/cmlibarchive/libarchive/archive_read_support_format_zip.c b/Utilities/cmlibarchive/libarchive/archive_read_support_format_zip.c
index 36831f7..4d71f98 100644
--- a/Utilities/cmlibarchive/libarchive/archive_read_support_format_zip.c
+++ b/Utilities/cmlibarchive/libarchive/archive_read_support_format_zip.c
@@ -50,7 +50,7 @@ __FBSDID("$FreeBSD: head/lib/libarchive/archive_read_support_format_zip.c 201102
#include <stdlib.h>
#endif
#ifdef HAVE_ZLIB_H
-#include <cm_zlib.h>
+#include <cm3p/zlib.h>
#endif
#ifdef HAVE_BZLIB_H
#include <bzlib.h>
diff --git a/Utilities/cmlibarchive/libarchive/archive_util.c b/Utilities/cmlibarchive/libarchive/archive_util.c
index e4cb051..10dca73 100644
--- a/Utilities/cmlibarchive/libarchive/archive_util.c
+++ b/Utilities/cmlibarchive/libarchive/archive_util.c
@@ -46,13 +46,13 @@ __FBSDID("$FreeBSD: head/lib/libarchive/archive_util.c 201098 2009-12-28 02:58:1
#include <wincrypt.h>
#endif
#ifdef HAVE_ZLIB_H
-#include <cm_zlib.h>
+#include <cm3p/zlib.h>
#endif
#ifdef HAVE_LZMA_H
-#include <cm_lzma.h>
+#include <cm3p/lzma.h>
#endif
#ifdef HAVE_BZLIB_H
-#include <cm_bzlib.h>
+#include <cm3p/bzlib.h>
#endif
#ifdef HAVE_LZ4_H
#include <lz4.h>
diff --git a/Utilities/cmlibarchive/libarchive/archive_version_details.c b/Utilities/cmlibarchive/libarchive/archive_version_details.c
index b9af6d7..5f5a5b7 100644
--- a/Utilities/cmlibarchive/libarchive/archive_version_details.c
+++ b/Utilities/cmlibarchive/libarchive/archive_version_details.c
@@ -34,19 +34,19 @@ __FBSDID("$FreeBSD: head/lib/libarchive/archive_util.c 201098 2009-12-28 02:58:1
#include <string.h>
#endif
#ifdef HAVE_ZLIB_H
-#include <cm_zlib.h>
+#include <cm3p/zlib.h>
#endif
#ifdef HAVE_LZMA_H
-#include <cm_lzma.h>
+#include <cm3p/lzma.h>
#endif
#ifdef HAVE_BZLIB_H
-#include <cm_bzlib.h>
+#include <cm3p/bzlib.h>
#endif
#ifdef HAVE_LZ4_H
#include <lz4.h>
#endif
#ifdef HAVE_ZSTD_H
-#include <cm_zstd.h>
+#include <cm3p/zstd.h>
#endif
#include "archive.h"
diff --git a/Utilities/cmlibarchive/libarchive/archive_write_add_filter_bzip2.c b/Utilities/cmlibarchive/libarchive/archive_write_add_filter_bzip2.c
index 535ef17..0637e96 100644
--- a/Utilities/cmlibarchive/libarchive/archive_write_add_filter_bzip2.c
+++ b/Utilities/cmlibarchive/libarchive/archive_write_add_filter_bzip2.c
@@ -39,7 +39,7 @@ __FBSDID("$FreeBSD: head/lib/libarchive/archive_write_set_compression_bzip2.c 20
#include <string.h>
#endif
#ifdef HAVE_BZLIB_H
-#include <cm_bzlib.h>
+#include <cm3p/bzlib.h>
#endif
#include "archive.h"
diff --git a/Utilities/cmlibarchive/libarchive/archive_write_add_filter_gzip.c b/Utilities/cmlibarchive/libarchive/archive_write_add_filter_gzip.c
index 8d6838b..3e26605 100644
--- a/Utilities/cmlibarchive/libarchive/archive_write_add_filter_gzip.c
+++ b/Utilities/cmlibarchive/libarchive/archive_write_add_filter_gzip.c
@@ -38,7 +38,7 @@ __FBSDID("$FreeBSD: head/lib/libarchive/archive_write_set_compression_gzip.c 201
#endif
#include <time.h>
#ifdef HAVE_ZLIB_H
-#include <cm_zlib.h>
+#include <cm3p/zlib.h>
#endif
#include "archive.h"
diff --git a/Utilities/cmlibarchive/libarchive/archive_write_add_filter_xz.c b/Utilities/cmlibarchive/libarchive/archive_write_add_filter_xz.c
index 2ad4bcb..d567ac9 100644
--- a/Utilities/cmlibarchive/libarchive/archive_write_add_filter_xz.c
+++ b/Utilities/cmlibarchive/libarchive/archive_write_add_filter_xz.c
@@ -39,7 +39,7 @@ __FBSDID("$FreeBSD: head/lib/libarchive/archive_write_set_compression_xz.c 20110
#endif
#include <time.h>
#ifdef HAVE_LZMA_H
-#include <cm_lzma.h>
+#include <cm3p/lzma.h>
#endif
#include "archive.h"
diff --git a/Utilities/cmlibarchive/libarchive/archive_write_add_filter_zstd.c b/Utilities/cmlibarchive/libarchive/archive_write_add_filter_zstd.c
index d0d78a0..f67b025 100644
--- a/Utilities/cmlibarchive/libarchive/archive_write_add_filter_zstd.c
+++ b/Utilities/cmlibarchive/libarchive/archive_write_add_filter_zstd.c
@@ -38,7 +38,7 @@ __FBSDID("$FreeBSD$");
#include <string.h>
#endif
#ifdef HAVE_ZSTD_H
-#include <cm_zstd.h>
+#include <cm3p/zstd.h>
#endif
#include "archive.h"
diff --git a/Utilities/cmlibarchive/libarchive/archive_write_disk_posix.c b/Utilities/cmlibarchive/libarchive/archive_write_disk_posix.c
index 1f7e673..c4be9b0 100644
--- a/Utilities/cmlibarchive/libarchive/archive_write_disk_posix.c
+++ b/Utilities/cmlibarchive/libarchive/archive_write_disk_posix.c
@@ -131,7 +131,7 @@ __FBSDID("$FreeBSD$");
#endif
#ifdef HAVE_ZLIB_H
-#include <cm_zlib.h>
+#include <cm3p/zlib.h>
#endif
/* TODO: Support Mac OS 'quarantine' feature. This is really just a
diff --git a/Utilities/cmlibarchive/libarchive/archive_write_set_format_7zip.c b/Utilities/cmlibarchive/libarchive/archive_write_set_format_7zip.c
index ce96f2f..69af814 100644
--- a/Utilities/cmlibarchive/libarchive/archive_write_set_format_7zip.c
+++ b/Utilities/cmlibarchive/libarchive/archive_write_set_format_7zip.c
@@ -31,13 +31,13 @@ __FBSDID("$FreeBSD$");
#endif
#include <stdlib.h>
#ifdef HAVE_BZLIB_H
-#include <cm_bzlib.h>
+#include <cm3p/bzlib.h>
#endif
#if HAVE_LZMA_H
-#include <cm_lzma.h>
+#include <cm3p/lzma.h>
#endif
#ifdef HAVE_ZLIB_H
-#include <cm_zlib.h>
+#include <cm3p/zlib.h>
#endif
#include "archive.h"
diff --git a/Utilities/cmlibarchive/libarchive/archive_write_set_format_iso9660.c b/Utilities/cmlibarchive/libarchive/archive_write_set_format_iso9660.c
index 564d4d7..5db414f 100644
--- a/Utilities/cmlibarchive/libarchive/archive_write_set_format_iso9660.c
+++ b/Utilities/cmlibarchive/libarchive/archive_write_set_format_iso9660.c
@@ -47,7 +47,7 @@
#include <unistd.h>
#endif
#ifdef HAVE_ZLIB_H
-#include <cm_zlib.h>
+#include <cm3p/zlib.h>
#endif
#include "archive.h"
diff --git a/Utilities/cmlibarchive/libarchive/archive_write_set_format_xar.c b/Utilities/cmlibarchive/libarchive/archive_write_set_format_xar.c
index 358f61f..3b0ffb3 100644
--- a/Utilities/cmlibarchive/libarchive/archive_write_set_format_xar.c
+++ b/Utilities/cmlibarchive/libarchive/archive_write_set_format_xar.c
@@ -37,13 +37,13 @@ __FBSDID("$FreeBSD$");
#include <libxml/xmlwriter.h>
#endif
#ifdef HAVE_BZLIB_H
-#include <cm_bzlib.h>
+#include <cm3p/bzlib.h>
#endif
#if HAVE_LZMA_H
-#include <cm_lzma.h>
+#include <cm3p/lzma.h>
#endif
#ifdef HAVE_ZLIB_H
-#include <cm_zlib.h>
+#include <cm3p/zlib.h>
#endif
#include "archive.h"
diff --git a/Utilities/cmlibarchive/libarchive/archive_write_set_format_zip.c b/Utilities/cmlibarchive/libarchive/archive_write_set_format_zip.c
index 1ede5ee..b0cd215 100644
--- a/Utilities/cmlibarchive/libarchive/archive_write_set_format_zip.c
+++ b/Utilities/cmlibarchive/libarchive/archive_write_set_format_zip.c
@@ -45,7 +45,7 @@ __FBSDID("$FreeBSD: head/lib/libarchive/archive_write_set_format_zip.c 201168 20
#include <string.h>
#endif
#ifdef HAVE_ZLIB_H
-#include <cm_zlib.h>
+#include <cm3p/zlib.h>
#endif
#include "archive.h"
diff --git a/Utilities/cmlibrhash/librhash/byte_order.h b/Utilities/cmlibrhash/librhash/byte_order.h
index a58174b..cfb9e25 100644
--- a/Utilities/cmlibrhash/librhash/byte_order.h
+++ b/Utilities/cmlibrhash/librhash/byte_order.h
@@ -39,7 +39,7 @@ extern "C" {
# endif
#endif
-#include <cm_kwiml.h>
+#include <cm3p/kwiml/abi.h>
#if KWIML_ABI_ENDIAN_ID == KWIML_ABI_ENDIAN_ID_LITTLE
# define CPU_LITTLE_ENDIAN
# define IS_BIG_ENDIAN 0
diff --git a/Utilities/cmlibrhash/librhash/ustd.h b/Utilities/cmlibrhash/librhash/ustd.h
index 917fb6b..756ce0b 100644
--- a/Utilities/cmlibrhash/librhash/ustd.h
+++ b/Utilities/cmlibrhash/librhash/ustd.h
@@ -9,7 +9,7 @@
# pragma warning(push,1)
#endif
-#include <cm_kwiml.h>
+#include <cm3p/kwiml/int.h>
#ifndef KWIML_INT_HAVE_INT64_T
# define int64_t KWIML_INT_int64_t
diff --git a/Utilities/cmnghttp2/cmakeconfig.h.in b/Utilities/cmnghttp2/cmakeconfig.h.in
index d6693ee..60698fb 100644
--- a/Utilities/cmnghttp2/cmakeconfig.h.in
+++ b/Utilities/cmnghttp2/cmakeconfig.h.in
@@ -2,7 +2,8 @@
# pragma warning(push,1)
#endif
-#include <cm_kwiml.h>
+#include <cm3p/kwiml/abi.h>
+#include <cm3p/kwiml/int.h>
/* Define to `int' if <sys/types.h> does not define. */
#cmakedefine ssize_t @ssize_t@
diff --git a/Utilities/cmzlib/CMakeLists.txt b/Utilities/cmzlib/CMakeLists.txt
index 888c3ff..0584c55 100644
--- a/Utilities/cmzlib/CMakeLists.txt
+++ b/Utilities/cmzlib/CMakeLists.txt
@@ -38,11 +38,6 @@ CONFIGURE_FILE(${CMZLIB_SOURCE_DIR}/.NoDartCoverage
CONFIGURE_FILE(${CMZLIB_SOURCE_DIR}/zlibDllConfig.h.in
${CMZLIB_BINARY_DIR}/zlibDllConfig.h)
-FOREACH(name zlib zconf cm_zlib_mangle)
- CONFIGURE_FILE(${CMZLIB_SOURCE_DIR}/${name}.h
- ${CMZLIB_BINARY_DIR}/${name}.h COPYONLY)
-ENDFOREACH(name)
-
ADD_LIBRARY(cmzlib ${ZLIB_SRCS})
diff --git a/Utilities/std/cm/bits/string_view.cxx b/Utilities/std/cm/bits/string_view.cxx
index e345fd3..5381fe6 100644
--- a/Utilities/std/cm/bits/string_view.cxx
+++ b/Utilities/std/cm/bits/string_view.cxx
@@ -9,7 +9,7 @@
# include <ostream>
# include <stdexcept>
-# include "cm_kwiml.h"
+# include <cm3p/kwiml/int.h>
namespace cm {
diff --git a/Utilities/std/cm/shared_mutex b/Utilities/std/cm/shared_mutex
index 2ac9447..ec63a7b 100644
--- a/Utilities/std/cm/shared_mutex
+++ b/Utilities/std/cm/shared_mutex
@@ -17,7 +17,7 @@
# include <shared_mutex> // IWYU pragma: export
#endif
#if !defined(CMake_HAVE_CXX_SHARED_MUTEX)
-# include "cm_uv.h"
+# include <cm3p/uv.h>
#endif
namespace cm {
diff --git a/bootstrap b/bootstrap
index d46d45d..cb1fd03 100755
--- a/bootstrap
+++ b/bootstrap
@@ -247,8 +247,12 @@ CMAKE_PROBLEMATIC_FILES="\
*/CMakeCXXCompiler.cmake \
Source/cmConfigure.h \
Source/CTest/Curl/config.h \
- Utilities/cmexpat/expatConfig.h \
- Utilities/cmexpat/expatDllConfig.h \
+ Utilities/cmThirdParty.h \
+ Utilities/cmcurl/lib/curl_config.h \
+ Utilities/cmlibarchive/config.h \
+ Utilities/cmliblzma/config.h \
+ Utilities/cmnghttp2/config.h \
+ Utilities/cmzlib/zlibDllConfig.h \
"
CMAKE_UNUSED_SOURCES="\