summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJinWang An <jinwang.an@samsung.com>2023-02-10 15:21:34 +0900
committerJinWang An <jinwang.an@samsung.com>2023-02-10 15:21:34 +0900
commit093a937511a119ac536f3941a1c08a7ab347a13d (patch)
tree573148ad987ff58c9b6f2ecbb4634dc1b893adfe
parent0bfd73ca0dc3c0b9440dbfbbb1258c1b89b00b07 (diff)
downloadcmake-093a937511a119ac536f3941a1c08a7ab347a13d.tar.gz
cmake-093a937511a119ac536f3941a1c08a7ab347a13d.tar.bz2
cmake-093a937511a119ac536f3941a1c08a7ab347a13d.zip
Imported Upstream version 3.25.2upstream/3.25.2upstream
-rw-r--r--Help/command/add_subdirectory.rst27
-rw-r--r--Help/command/string.rst22
-rw-r--r--Help/manual/cmake-buildsystem.7.rst18
-rw-r--r--Help/prop_dir/SYSTEM.rst4
-rw-r--r--Help/prop_tgt/EXPORT_NO_SYSTEM.rst6
-rw-r--r--Help/prop_tgt/IMPORTED_NO_SYSTEM.rst28
-rw-r--r--Help/prop_tgt/INTERFACE_SYSTEM_INCLUDE_DIRECTORIES.rst14
-rw-r--r--Help/prop_tgt/NO_SYSTEM_FROM_IMPORTED.rst26
-rw-r--r--Help/prop_tgt/SYSTEM.rst16
-rw-r--r--Help/release/3.25.rst17
-rw-r--r--Help/variable/CMAKE_LANG_COMPILER_ID.rst5
-rw-r--r--Modules/CMakeASM_MASMInformation.cmake4
-rw-r--r--Modules/CMakeDetermineCXXCompiler.cmake8
-rw-r--r--Modules/CMakeParseImplicitIncludeInfo.cmake5
-rw-r--r--Modules/CheckSymbolExists.cmake2
-rw-r--r--Modules/Compiler/IntelLLVM-CXX.cmake4
-rw-r--r--Modules/Compiler/NVIDIA-CUDA.cmake12
-rw-r--r--Modules/FetchContent.cmake20
-rw-r--r--Modules/FindBoost.cmake5
-rw-r--r--Modules/FindCUDAToolkit.cmake2
-rw-r--r--Source/CMakeVersion.cmake4
-rw-r--r--Source/CursesDialog/form/form.h3
-rw-r--r--Source/cmComputeLinkInformation.cxx2
-rw-r--r--Source/cmGlobalGenerator.h2
-rw-r--r--Source/cmTryRunCommand.cxx14
-rw-r--r--Source/cmVisualStudio10TargetGenerator.cxx4
-rw-r--r--Tests/CTestUpdateGIT.cmake.in2
-rw-r--r--Tests/RunCMake/ParseImplicitData/hand-C-relative.input4
-rw-r--r--Tests/RunCMake/ParseImplicitData/hand-CXX-relative.input4
-rw-r--r--Tests/RunCMake/try_run/CrossCompile.cmake8
-rw-r--r--Tests/RunCMake/try_run/old_and_new_signature_tests.cmake2
-rw-r--r--Tests/VSMASM/CMakeLists.txt2
-rwxr-xr-xUtilities/Release/win/sign-package.ps12
-rw-r--r--Utilities/cmzlib/cm_zlib_mangle.h3
34 files changed, 188 insertions, 113 deletions
diff --git a/Help/command/add_subdirectory.rst b/Help/command/add_subdirectory.rst
index 13cae1000..ae063e6d6 100644
--- a/Help/command/add_subdirectory.rst
+++ b/Help/command/add_subdirectory.rst
@@ -7,16 +7,16 @@ Add a subdirectory to the build.
add_subdirectory(source_dir [binary_dir] [EXCLUDE_FROM_ALL] [SYSTEM])
-Adds a subdirectory to the build. The source_dir specifies the
-directory in which the source CMakeLists.txt and code files are
-located. If it is a relative path it will be evaluated with respect
+Adds a subdirectory to the build. The ``source_dir`` specifies the
+directory in which the source ``CMakeLists.txt`` and code files are
+located. If it is a relative path, it will be evaluated with respect
to the current directory (the typical usage), but it may also be an
absolute path. The ``binary_dir`` specifies the directory in which to
-place the output files. If it is a relative path it will be evaluated
+place the output files. If it is a relative path, it will be evaluated
with respect to the current output directory, but it may also be an
absolute path. If ``binary_dir`` is not specified, the value of
``source_dir``, before expanding any relative path, will be used (the
-typical usage). The CMakeLists.txt file in the specified source
+typical usage). The ``CMakeLists.txt`` file in the specified source
directory will be processed immediately by CMake before processing in
the current input file continues beyond this command.
@@ -28,15 +28,14 @@ meant for use when the subdirectory contains a separate part of the
project that is useful but not necessary, such as a set of examples.
Typically the subdirectory should contain its own :command:`project`
command invocation so that a full build system will be generated in the
-subdirectory (such as a VS IDE solution file). Note that inter-target
-dependencies supersede this exclusion. If a target built by the
-parent project depends on a target in the subdirectory, the dependee
+subdirectory (such as a Visual Studio IDE solution file). Note that
+inter-target dependencies supersede this exclusion. If a target built by
+the parent project depends on a target in the subdirectory, the dependee
target will be included in the parent project build system to satisfy
the dependency.
-If the ``SYSTEM`` argument is provided, the :prop_dir:`SYSTEM` directory
-property of the subdirectory will be set to true. This property is
-used to initialize the :prop_tgt:`SYSTEM` property of each target
-created in that subdirectory. The include directories of targets with
-:prop_tgt:`SYSTEM` set to true will be treated as ``SYSTEM`` when
-compiling consumers.
+.. versionadded:: 3.25
+ If the ``SYSTEM`` argument is provided, the :prop_dir:`SYSTEM` directory
+ property of the subdirectory will be set to true. This property is
+ used to initialize the :prop_tgt:`SYSTEM` property of each non-imported
+ target created in that subdirectory.
diff --git a/Help/command/string.rst b/Help/command/string.rst
index 86cbd2ece..86136a6ed 100644
--- a/Help/command/string.rst
+++ b/Help/command/string.rst
@@ -45,16 +45,16 @@ Synopsis
`JSON`_
string(JSON <out-var> [ERROR_VARIABLE <error-var>]
- {`GET`_ | `TYPE`_ | :ref:`LENGTH <JSONLENGTH>` | `REMOVE`_}
+ {:ref:`GET <JSON_GET>` | :ref:`TYPE <JSON_TYPE>` | :ref:`LENGTH <JSON_LENGTH>` | :ref:`REMOVE <JSON_REMOVE>`}
<json-string> <member|index> [<member|index> ...])
string(JSON <out-var> [ERROR_VARIABLE <error-var>]
- `MEMBER`_ <json-string>
+ :ref:`MEMBER <JSON_MEMBER>` <json-string>
[<member|index> ...] <index>)
string(JSON <out-var> [ERROR_VARIABLE <error-var>]
- `SET`_ <json-string>
+ :ref:`SET <JSON_SET>` <json-string>
<member|index> [<member|index> ...] <value>)
string(JSON <out-var> [ERROR_VARIABLE <error-var>]
- `EQUAL`_ <json-string1> <json-string2>)
+ :ref:`EQUAL <JSON_EQUAL>` <json-string1> <json-string2>)
Search and Replace
^^^^^^^^^^^^^^^^^^
@@ -575,7 +575,7 @@ Functionality for querying a JSON string.
option is not present, a fatal error message is generated. If no error
occurs, the ``<error-variable>`` will be set to ``NOTFOUND``.
-.. _GET:
+.. _JSON_GET:
.. code-block:: cmake
string(JSON <out-var> [ERROR_VARIABLE <error-variable>]
@@ -588,7 +588,7 @@ Boolean elements will be returned as ``ON`` or ``OFF``.
Null elements will be returned as an empty string.
Number and string types will be returned as strings.
-.. _TYPE:
+.. _JSON_TYPE:
.. code-block:: cmake
string(JSON <out-var> [ERROR_VARIABLE <error-variable>]
@@ -599,7 +599,7 @@ given by the list of ``<member|index>`` arguments. The ``<out-var>``
will be set to one of ``NULL``, ``NUMBER``, ``STRING``, ``BOOLEAN``,
``ARRAY``, or ``OBJECT``.
-.. _MEMBER:
+.. _JSON_MEMBER:
.. code-block:: cmake
string(JSON <out-var> [ERROR_VARIABLE <error-var>]
@@ -610,7 +610,7 @@ Get the name of the ``<index>``-th member in ``<json-string>`` at the location
given by the list of ``<member|index>`` arguments.
Requires an element of object type.
-.. _JSONLENGTH:
+.. _JSON_LENGTH:
.. code-block:: cmake
string(JSON <out-var> [ERROR_VARIABLE <error-variable>]
@@ -620,7 +620,7 @@ Get the length of an element in ``<json-string>`` at the location
given by the list of ``<member|index>`` arguments.
Requires an element of array or object type.
-.. _REMOVE:
+.. _JSON_REMOVE:
.. code-block:: cmake
string(JSON <out-var> [ERROR_VARIABLE <error-variable>]
@@ -630,7 +630,7 @@ Remove an element from ``<json-string>`` at the location
given by the list of ``<member|index>`` arguments. The JSON string
without the removed element will be stored in ``<out-var>``.
-.. _SET:
+.. _JSON_SET:
.. code-block:: cmake
string(JSON <out-var> [ERROR_VARIABLE <error-variable>]
@@ -640,7 +640,7 @@ Set an element in ``<json-string>`` at the location
given by the list of ``<member|index>`` arguments to ``<value>``.
The contents of ``<value>`` should be valid JSON.
-.. _EQUAL:
+.. _JSON_EQUAL:
.. code-block:: cmake
string(JSON <out-var> [ERROR_VARIABLE <error-var>]
diff --git a/Help/manual/cmake-buildsystem.7.rst b/Help/manual/cmake-buildsystem.7.rst
index b14160c3c..3c09e869e 100644
--- a/Help/manual/cmake-buildsystem.7.rst
+++ b/Help/manual/cmake-buildsystem.7.rst
@@ -672,14 +672,14 @@ This is equivalent to appending ``${CMAKE_INSTALL_PREFIX}/include`` to the
When the :prop_tgt:`INTERFACE_INCLUDE_DIRECTORIES` of an
:ref:`imported target <Imported targets>` is consumed, the entries in the
-property are treated as ``SYSTEM`` include directories, as if they were
-listed in the :prop_tgt:`INTERFACE_SYSTEM_INCLUDE_DIRECTORIES` of the
-dependency. This can result in omission of compiler warnings for headers
-found in those directories. This behavior for :ref:`imported targets` may
-be controlled by setting the :prop_tgt:`NO_SYSTEM_FROM_IMPORTED` target
-property on the *consumers* of imported targets, or by setting the
-:prop_tgt:`IMPORTED_NO_SYSTEM` target property on the imported targets
-themselves.
+property may be treated as system include directories. The effects of that
+are toolchain-dependent, but one common effect is to omit compiler warnings
+for headers found in those directories. The :prop_tgt:`SYSTEM` property of
+the installed target determines this behavior (see the
+:prop_tgt:`EXPORT_NO_SYSTEM` property for how to modify the installed value
+for a target). It is also possible to change how consumers interpret the
+system behavior of consumed imported targets by setting the
+:prop_tgt:`NO_SYSTEM_FROM_IMPORTED` target property on the *consumer*.
If a binary target is linked transitively to a macOS :prop_tgt:`FRAMEWORK`, the
``Headers`` directory of the framework is also treated as a usage requirement.
@@ -1049,7 +1049,7 @@ them to a header set using the :command:`target_sources` command:
add_library(Eigen INTERFACE)
- target_sources(Eigen INTERFACE
+ target_sources(Eigen PUBLIC
FILE_SET HEADERS
BASE_DIRS src
FILES src/eigen.h src/vector.h src/matrix.h
diff --git a/Help/prop_dir/SYSTEM.rst b/Help/prop_dir/SYSTEM.rst
index 4f923b797..ad4ace179 100644
--- a/Help/prop_dir/SYSTEM.rst
+++ b/Help/prop_dir/SYSTEM.rst
@@ -4,7 +4,7 @@ SYSTEM
.. versionadded:: 3.25
This directory property is used to initialize the :prop_tgt:`SYSTEM`
-target property for targets created in that directory. It is set to
-true by :command:`add_subdirectory` and
+target property for non-imported targets created in that directory.
+It is set to true by :command:`add_subdirectory` and
:command:`FetchContent_Declare` when the ``SYSTEM`` option is given
as an argument to those commands.
diff --git a/Help/prop_tgt/EXPORT_NO_SYSTEM.rst b/Help/prop_tgt/EXPORT_NO_SYSTEM.rst
index 61f0a8da1..f86abd3c6 100644
--- a/Help/prop_tgt/EXPORT_NO_SYSTEM.rst
+++ b/Help/prop_tgt/EXPORT_NO_SYSTEM.rst
@@ -3,8 +3,10 @@ EXPORT_NO_SYSTEM
.. versionadded:: 3.25
-Specifies that :command:`install(EXPORT)` and :command:`export` commands will
-generate an imported target with :prop_tgt:`SYSTEM` property `OFF`.
+This property affects the behavior of the :command:`install(EXPORT)` and
+:command:`export` commands when they install or export the target respectively.
+When ``EXPORT_NO_SYSTEM`` is set to true, those commands generate an imported
+target with :prop_tgt:`SYSTEM` property set to false.
See the :prop_tgt:`NO_SYSTEM_FROM_IMPORTED` target property to set this
behavior on the target *consuming* the include directories rather than the
diff --git a/Help/prop_tgt/IMPORTED_NO_SYSTEM.rst b/Help/prop_tgt/IMPORTED_NO_SYSTEM.rst
index 913d9f2f9..c8ec8b5c4 100644
--- a/Help/prop_tgt/IMPORTED_NO_SYSTEM.rst
+++ b/Help/prop_tgt/IMPORTED_NO_SYSTEM.rst
@@ -5,27 +5,31 @@ IMPORTED_NO_SYSTEM
.. deprecated:: 3.25
- ``IMPORTED_NO_SYSTEM`` is deprecated. Set :prop_tgt:`SYSTEM` to `OFF`
- instead if you don't want target's include directories to be ``SYSTEM``
- when compiling consumers. Set :prop_tgt:`EXPORT_NO_SYSTEM` to `ON` instead
- if you don't want the include directories of the imported target generated
- by :command:`install(EXPORT)` and :command:`export` commands to be
- ``SYSTEM`` when compiling consumers.
+ ``IMPORTED_NO_SYSTEM`` is deprecated. Please use the following alternatives
+ instead:
-Specifies that an :ref:`Imported Target <Imported Targets>` is not
-a ``SYSTEM`` library. This has the following effects:
+ * Set :prop_tgt:`SYSTEM` to false if you don't want a target's include
+ directories to be treated as system directories when compiling consumers.
+ * Set :prop_tgt:`EXPORT_NO_SYSTEM` to true if you don't want the include
+ directories of the imported target generated by :command:`install(EXPORT)`
+ and :command:`export` commands to be treated as system directories when
+ compiling consumers.
+
+Setting ``IMPORTED_NO_SYSTEM`` to true on an
+:ref:`imported target <Imported Targets>` specifies that it is not a
+system target. This has the following effects:
* Entries of :prop_tgt:`INTERFACE_INCLUDE_DIRECTORIES` are not treated
- as ``SYSTEM`` include directories when compiling consumers (regardless of
+ as system include directories when compiling consumers (regardless of
the value of the consumed target's :prop_tgt:`SYSTEM` property), as they
would be by default. Entries of
:prop_tgt:`INTERFACE_SYSTEM_INCLUDE_DIRECTORIES` are not affected,
- and will always be treated as ``SYSTEM`` include directories.
+ and will always be treated as system include directories.
This property can also be enabled on a non-imported target. Doing so does
not affect the build system, but does tell the :command:`install(EXPORT)` and
:command:`export` commands to enable it on the imported targets they generate.
See the :prop_tgt:`NO_SYSTEM_FROM_IMPORTED` target property to set this
-behavior on the target consuming the include directories rather than
-providing them.
+behavior on the target *consuming* the include directories rather than
+the one *providing* them.
diff --git a/Help/prop_tgt/INTERFACE_SYSTEM_INCLUDE_DIRECTORIES.rst b/Help/prop_tgt/INTERFACE_SYSTEM_INCLUDE_DIRECTORIES.rst
index b37bb0cc3..2ded46f15 100644
--- a/Help/prop_tgt/INTERFACE_SYSTEM_INCLUDE_DIRECTORIES.rst
+++ b/Help/prop_tgt/INTERFACE_SYSTEM_INCLUDE_DIRECTORIES.rst
@@ -8,17 +8,17 @@ which contain system headers, and therefore should not result in
compiler warnings. Additionally, system include directories are searched
after normal include directories regardless of the order specified.
-The :command:`target_include_directories(SYSTEM)` command signature
-populates this property with values given to the ``PUBLIC`` and
-``INTERFACE`` keywords.
+When the :command:`target_include_directories` command is given the
+``SYSTEM`` keyword, it populates this property with values provided after the
+``PUBLIC`` and ``INTERFACE`` keywords.
Projects may also get and set the property directly, but must be aware that
adding directories to this property does not make those directories used
during compilation. Adding directories to this property marks directories
-as ``SYSTEM`` which otherwise would be used in a non-``SYSTEM`` manner. This
-can appear similar to 'duplication', so prefer the
-high-level :command:`target_include_directories(SYSTEM)` command and avoid
-setting the property by low-level means.
+as system directories which otherwise would be used in a non-system manner.
+This can appear similar to duplication, so prefer the high-level
+:command:`target_include_directories` command with the ``SYSTEM`` keyword
+and avoid setting the property directly.
When target dependencies are specified using :command:`target_link_libraries`,
CMake will read this property from all target dependencies to mark the
diff --git a/Help/prop_tgt/NO_SYSTEM_FROM_IMPORTED.rst b/Help/prop_tgt/NO_SYSTEM_FROM_IMPORTED.rst
index 39a13eec1..a4c9b9fdd 100644
--- a/Help/prop_tgt/NO_SYSTEM_FROM_IMPORTED.rst
+++ b/Help/prop_tgt/NO_SYSTEM_FROM_IMPORTED.rst
@@ -2,19 +2,27 @@ NO_SYSTEM_FROM_IMPORTED
-----------------------
Do not treat include directories from the interfaces of consumed
-:ref:`imported targets` as ``SYSTEM``.
+:ref:`imported targets` as system directories.
The contents of the :prop_tgt:`INTERFACE_INCLUDE_DIRECTORIES` target property
-of imported targets are treated as ``SYSTEM`` includes by default. If this
-property is enabled on a target, compilation of sources in that target will
-not treat the contents of the ``INTERFACE_INCLUDE_DIRECTORIES`` of consumed
-imported targets as system includes. Either way, entries of
-:prop_tgt:`INTERFACE_SYSTEM_INCLUDE_DIRECTORIES` are not affected,
-and will always be treated as ``SYSTEM`` include directories.
+are treated as system includes when the consumed target's :prop_tgt:`SYSTEM`
+property is set to true. By default, :prop_tgt:`SYSTEM` is true for imported
+targets and false for other target types. If the ``NO_SYSTEM_FROM_IMPORTED``
+property is set to true on a *consuming* target, compilation of sources in that
+consuming target will not treat the contents of the
+:prop_tgt:`INTERFACE_INCLUDE_DIRECTORIES` of consumed imported targets as
+system includes, even if that imported target's :prop_tgt:`SYSTEM` property
+is false.
+
+Directories listed in the :prop_tgt:`INTERFACE_SYSTEM_INCLUDE_DIRECTORIES`
+property of consumed targets are not affected by ``NO_SYSTEM_FROM_IMPORTED``.
+Those directories will always be treated as system include directories by
+consumers.
This property is initialized by the value of the
:variable:`CMAKE_NO_SYSTEM_FROM_IMPORTED` variable if it is set when a target
is created.
-See the :prop_tgt:`IMPORTED_NO_SYSTEM` target property to set this behavior
-on the target providing the include directories rather than consuming them.
+See the :prop_tgt:`EXPORT_NO_SYSTEM` target property to set this behavior
+on the target providing the include directories rather than the target
+consuming them.
diff --git a/Help/prop_tgt/SYSTEM.rst b/Help/prop_tgt/SYSTEM.rst
index a26773802..c7ae27e81 100644
--- a/Help/prop_tgt/SYSTEM.rst
+++ b/Help/prop_tgt/SYSTEM.rst
@@ -3,20 +3,20 @@ SYSTEM
.. versionadded:: 3.25
-Specifies that a target is a ``SYSTEM`` library. This has the following
+Specifies that a target is a system target. This has the following
effects:
* Entries of :prop_tgt:`INTERFACE_INCLUDE_DIRECTORIES` are treated as
- ``SYSTEM`` include directories when compiling consumers.
+ system include directories when compiling consumers.
Entries of :prop_tgt:`INTERFACE_SYSTEM_INCLUDE_DIRECTORIES` are not
- affected, and will always be treated as ``SYSTEM`` include directories.
+ affected, and will always be treated as system include directories.
For imported targets, this property defaults to true, which means
that their :prop_tgt:`INTERFACE_INCLUDE_DIRECTORIES` are treated
-as ``SYSTEM`` by default. If their ``SYSTEM`` property is false,
+as system directories by default. If their ``SYSTEM`` property is false,
then their :prop_tgt:`INTERFACE_INCLUDE_DIRECTORIES` will not be
-treated as ``SYSTEM``, regardless of the value of the
-:prop_tgt:`IMPORTED_NO_SYSTEM` property.
+treated as system. Use the :prop_tgt:`EXPORT_NO_SYSTEM` property to change
+how a target's ``SYSTEM`` property is set when it is installed.
-This target property is initialized from the :prop_dir:`SYSTEM`
-directory property when the target is created.
+For non-imported targets, this target property is initialized from
+the :prop_dir:`SYSTEM` directory property when the target is created.
diff --git a/Help/release/3.25.rst b/Help/release/3.25.rst
index fdf8a9465..2d04741aa 100644
--- a/Help/release/3.25.rst
+++ b/Help/release/3.25.rst
@@ -159,9 +159,10 @@ Properties
Modules
-------
-* The :module:`FetchContent` module :command:`FetchContent_Declare`
- command gained a ``SYSTEM`` option to enable the :prop_dir:`SYSTEM`
- directory property in the subdirectory.
+* The :module:`FetchContent` module's :command:`FetchContent_Declare`
+ command gained a ``SYSTEM`` option which sets the :prop_dir:`SYSTEM`
+ directory property on subdirectories created by
+ :command:`FetchContent_MakeAvailable`.
* The :module:`FindCUDAToolkit` module now provides a target for
:ref:`nvtx3 <cuda_toolkit_nvtx3>` for CUDA 10.0+, which supersedes
@@ -246,3 +247,13 @@ Changes made since CMake 3.25.0 include the following.
command no longer accepts ``.a`` file names. This behavior was added
in CMake 3.25.0, but has been reverted due finding GNU-ABI libraries
in cases we did not previously.
+
+3.25.2
+------
+
+* CUDA language level 20 (corresponding to C++20) is now supported with
+ NVCC 12.0 and above.
+
+* On Windows, the ``icpx`` compiler now provided by Intel oneAPI 2023.0
+ and above is no longer selected because its GNU-like command-line is
+ not yet supported by CMake.
diff --git a/Help/variable/CMAKE_LANG_COMPILER_ID.rst b/Help/variable/CMAKE_LANG_COMPILER_ID.rst
index e311d1bdd..3b27fc3a6 100644
--- a/Help/variable/CMAKE_LANG_COMPILER_ID.rst
+++ b/Help/variable/CMAKE_LANG_COMPILER_ID.rst
@@ -28,8 +28,8 @@ Value Name
``GHS`` `Green Hills Software`_
``HP`` Hewlett-Packard Compiler
``IAR`` IAR Systems
-``Intel`` Intel Compiler
-``IntelLLVM`` Intel LLVM-Based Compiler
+``Intel`` Intel Classic Compiler
+``IntelLLVM`` `Intel LLVM-Based Compiler`_
``LCC`` MCST Elbrus C/C++/Fortran Compiler
``MSVC`` `Microsoft Visual Studio`_
``NVHPC`` `NVIDIA HPC Compiler`_
@@ -58,6 +58,7 @@ languages.
.. _G95 Fortran: https://g95.sourceforge.net
.. _GNU Compiler Collection: https://gcc.gnu.org
.. _Green Hills Software: https://www.ghs.com/products/compiler.html
+.. _Intel LLVM-Based Compiler: https://www.intel.com/content/www/us/en/developer/tools/oneapi/overview.html
.. _Microsoft Visual Studio: https://visualstudio.microsoft.com
.. _NVIDIA HPC Compiler: https://developer.nvidia.com/hpc-compilers
.. _NVIDIA CUDA Compiler: https://developer.nvidia.com/cuda-llvm-compiler
diff --git a/Modules/CMakeASM_MASMInformation.cmake b/Modules/CMakeASM_MASMInformation.cmake
index 656b75e7d..11b83662e 100644
--- a/Modules/CMakeASM_MASMInformation.cmake
+++ b/Modules/CMakeASM_MASMInformation.cmake
@@ -16,5 +16,9 @@ set(CMAKE_ASM${ASM_DIALECT}_COMPILE_OPTIONS_MSVC_RUNTIME_LIBRARY_MultiThreadedDL
set(CMAKE_ASM${ASM_DIALECT}_COMPILE_OPTIONS_MSVC_RUNTIME_LIBRARY_MultiThreadedDebug "")
set(CMAKE_ASM${ASM_DIALECT}_COMPILE_OPTIONS_MSVC_RUNTIME_LIBRARY_MultiThreadedDebugDLL "")
+set(CMAKE_ASM${ASM_DIALECT}_COMPILE_OPTIONS_MSVC_DEBUG_INFORMATION_FORMAT_Embedded "-Zi")
+set(CMAKE_ASM${ASM_DIALECT}_COMPILE_OPTIONS_MSVC_DEBUG_INFORMATION_FORMAT_ProgramDatabase "")
+set(CMAKE_ASM${ASM_DIALECT}_COMPILE_OPTIONS_MSVC_DEBUG_INFORMATION_FORMAT_EditAndContinue "")
+
include(CMakeASMInformation)
set(ASM_DIALECT)
diff --git a/Modules/CMakeDetermineCXXCompiler.cmake b/Modules/CMakeDetermineCXXCompiler.cmake
index fd3d028be..c4ddf75e3 100644
--- a/Modules/CMakeDetermineCXXCompiler.cmake
+++ b/Modules/CMakeDetermineCXXCompiler.cmake
@@ -58,7 +58,13 @@ else()
# finally list compilers to try
if(NOT CMAKE_CXX_COMPILER_INIT)
- set(CMAKE_CXX_COMPILER_LIST CC ${_CMAKE_TOOLCHAIN_PREFIX}c++ ${_CMAKE_TOOLCHAIN_PREFIX}g++ aCC cl bcc xlC icpx icx clang++)
+ set(CMAKE_CXX_COMPILER_LIST CC ${_CMAKE_TOOLCHAIN_PREFIX}c++ ${_CMAKE_TOOLCHAIN_PREFIX}g++ aCC cl bcc xlC)
+ if(NOT CMAKE_HOST_WIN32)
+ # FIXME(#24314): Add support for the GNU-like icpx compiler driver
+ # on Windows, first introduced by Intel oneAPI 2023.0.
+ list(APPEND CMAKE_CXX_COMPILER_LIST icpx)
+ endif()
+ list(APPEND CMAKE_CXX_COMPILER_LIST icx clang++)
endif()
_cmake_find_compiler(CXX)
diff --git a/Modules/CMakeParseImplicitIncludeInfo.cmake b/Modules/CMakeParseImplicitIncludeInfo.cmake
index 5c0eda270..1ebd887bc 100644
--- a/Modules/CMakeParseImplicitIncludeInfo.cmake
+++ b/Modules/CMakeParseImplicitIncludeInfo.cmake
@@ -233,8 +233,9 @@ function(cmake_parse_implicit_include_info text lang dir_var log_var state_var)
get_filename_component(dir "${d}" ABSOLUTE)
list(APPEND implicit_dirs "${dir}")
string(APPEND log " collapse include dir [${d}] ==> [${dir}]\n")
- elseif("${d}" MATCHES [[^\.\.[\/]\.\.[\/](.*)$]])
- # This relative path is deep enough to get out of the CMakeFiles/CMakeTmp
+ elseif("${d}" MATCHES [[^\.\.[\/]\.\.[\/]\.\.[\/](.*)$]])
+ # This relative path is deep enough to get out of the
+ # CMakeFiles/CMakeScratch/<unique>
# directory where the ABI check is done. Assume that the compiler has
# computed this path adaptively based on the current working directory
# such that the effective result is absolute.
diff --git a/Modules/CheckSymbolExists.cmake b/Modules/CheckSymbolExists.cmake
index 0d44d5655..722d50fa1 100644
--- a/Modules/CheckSymbolExists.cmake
+++ b/Modules/CheckSymbolExists.cmake
@@ -136,7 +136,7 @@ int main(int argc, char** argv)
${_CSE_CHECK_NON_MACRO}")
endif()
string(APPEND _CSE_SOURCE "
-}")
+}\n")
unset(_CSE_CHECK_NON_MACRO)
if(NOT CMAKE_REQUIRED_QUIET)
diff --git a/Modules/Compiler/IntelLLVM-CXX.cmake b/Modules/Compiler/IntelLLVM-CXX.cmake
index cae1f1199..4d3f5a1fe 100644
--- a/Modules/Compiler/IntelLLVM-CXX.cmake
+++ b/Modules/Compiler/IntelLLVM-CXX.cmake
@@ -50,8 +50,8 @@ else()
set(CMAKE_CXX98_STANDARD_COMPILE_OPTION "")
set(CMAKE_CXX98_EXTENSION_COMPILE_OPTION "")
- set(CMAKE_CXX11_STANDARD_COMPILE_OPTION "-Qstd=c++11")
- set(CMAKE_CXX11_EXTENSION_COMPILE_OPTION "-Qstd=c++11")
+ set(CMAKE_CXX11_STANDARD_COMPILE_OPTION "")
+ set(CMAKE_CXX11_EXTENSION_COMPILE_OPTION "")
set(CMAKE_CXX14_STANDARD_COMPILE_OPTION "-Qstd=c++14")
set(CMAKE_CXX14_EXTENSION_COMPILE_OPTION "-Qstd=c++14")
diff --git a/Modules/Compiler/NVIDIA-CUDA.cmake b/Modules/Compiler/NVIDIA-CUDA.cmake
index c8dcd2a19..670e0ca0e 100644
--- a/Modules/Compiler/NVIDIA-CUDA.cmake
+++ b/Modules/Compiler/NVIDIA-CUDA.cmake
@@ -119,6 +119,13 @@ if("x${CMAKE_CUDA_SIMULATE_ID}" STREQUAL "xMSVC")
endif()
endif()
+ if (NOT CMAKE_CUDA_COMPILER_VERSION VERSION_LESS 12.0)
+ if(CMAKE_CUDA_SIMULATE_VERSION VERSION_GREATER_EQUAL 19.11.25505)
+ set(CMAKE_CUDA20_STANDARD_COMPILE_OPTION "-std=c++20")
+ set(CMAKE_CUDA20_EXTENSION_COMPILE_OPTION "-std=c++20")
+ endif()
+ endif()
+
else()
set(CMAKE_CUDA03_STANDARD_COMPILE_OPTION "")
set(CMAKE_CUDA03_EXTENSION_COMPILE_OPTION "")
@@ -138,6 +145,11 @@ else()
set(CMAKE_CUDA17_EXTENSION_COMPILE_OPTION "-std=c++17")
endif()
+ if (NOT CMAKE_CUDA_COMPILER_VERSION VERSION_LESS 12.0)
+ set(CMAKE_CUDA20_STANDARD_COMPILE_OPTION "-std=c++20")
+ set(CMAKE_CUDA20_EXTENSION_COMPILE_OPTION "-std=c++20")
+ endif()
+
endif()
if (CMAKE_CUDA_COMPILER_VERSION VERSION_GREATER_EQUAL "9.0")
diff --git a/Modules/FetchContent.cmake b/Modules/FetchContent.cmake
index ac3918cf8..047603cbd 100644
--- a/Modules/FetchContent.cmake
+++ b/Modules/FetchContent.cmake
@@ -233,12 +233,12 @@ Commands
.. versionadded:: 3.25
``SYSTEM``
- If the ``SYSTEM`` argument is provided, targets created by
- the dependency will have their :prop_tgt:`SYSTEM` property
- set to true when populated by :command:`FetchContent_MakeAvailable`.
- The entries in their :prop_tgt:`INTERFACE_INCLUDE_DIRECTORIES`
- will be treated as ``SYSTEM`` include directories when
- compiling consumers.
+ If the ``SYSTEM`` argument is provided, the :prop_dir:`SYSTEM` directory
+ property of a subdirectory added by
+ :command:`FetchContent_MakeAvailable` will be set to true. This will
+ affect non-imported targets created as part of that command.
+ See the :prop_tgt:`SYSTEM` target property documentation for a more
+ detailed discussion of the effects.
.. command:: FetchContent_MakeAvailable
@@ -353,6 +353,11 @@ Commands
adding a project that contains a ``CMakeLists.txt`` file in its top
directory.
+ .. versionadded:: 3.25
+ If the ``SYSTEM`` keyword was included in the call to
+ :command:`FetchContent_Declare`, the ``SYSTEM`` keyword will be
+ added to the :command:`add_subdirectory` command as well.
+
Projects should aim to declare the details of all dependencies they might
use before they call ``FetchContent_MakeAvailable()`` for any of them.
This ensures that if any of the dependencies are also sub-dependencies of
@@ -1427,6 +1432,9 @@ function(__FetchContent_directPopulate contentName)
set(options
QUIET
+ # SYSTEM has no meaning for ExternalProject, it is only used by us in
+ # FetchContent_MakeAvailable(). We need to parse and discard it here.
+ SYSTEM
)
set(oneValueArgs
SUBBUILD_DIR
diff --git a/Modules/FindBoost.cmake b/Modules/FindBoost.cmake
index 0cea239ac..72a9a4c19 100644
--- a/Modules/FindBoost.cmake
+++ b/Modules/FindBoost.cmake
@@ -1380,7 +1380,7 @@ function(_Boost_COMPONENT_DEPENDENCIES component _ret)
set(_Boost_TIMER_DEPENDENCIES chrono)
set(_Boost_WAVE_DEPENDENCIES filesystem serialization thread chrono atomic)
set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
- if(Boost_VERSION_STRING VERSION_GREATER_EQUAL 1.81.0 AND NOT Boost_NO_WARN_NEW_VERSIONS)
+ if(Boost_VERSION_STRING VERSION_GREATER_EQUAL 1.82.0 AND NOT Boost_NO_WARN_NEW_VERSIONS)
message(WARNING "New Boost version may have incorrect or missing dependencies and imported targets")
endif()
endif()
@@ -1466,6 +1466,7 @@ function(_Boost_COMPONENT_HEADERS component _hdrs)
set(_Boost_TIMER_HEADERS "boost/timer.hpp")
set(_Boost_TYPE_ERASURE_HEADERS "boost/type_erasure/config.hpp")
set(_Boost_UNIT_TEST_FRAMEWORK_HEADERS "boost/test/framework.hpp")
+ set(_Boost_URL_HEADERS "boost/url.hpp")
set(_Boost_WAVE_HEADERS "boost/wave.hpp")
set(_Boost_WSERIALIZATION_HEADERS "boost/archive/text_wiarchive.hpp")
set(_Boost_BZIP2_HEADERS "boost/iostreams/filter/bzip2.hpp")
@@ -1653,7 +1654,7 @@ else()
# _Boost_COMPONENT_HEADERS. See the instructions at the top of
# _Boost_COMPONENT_DEPENDENCIES.
set(_Boost_KNOWN_VERSIONS ${Boost_ADDITIONAL_VERSIONS}
- "1.80.0" "1.80" "1.79.0" "1.79"
+ "1.81.0" "1.81" "1.80.0" "1.80" "1.79.0" "1.79"
"1.78.0" "1.78" "1.77.0" "1.77" "1.76.0" "1.76" "1.75.0" "1.75" "1.74.0" "1.74"
"1.73.0" "1.73" "1.72.0" "1.72" "1.71.0" "1.71" "1.70.0" "1.70" "1.69.0" "1.69"
"1.68.0" "1.68" "1.67.0" "1.67" "1.66.0" "1.66" "1.65.1" "1.65.0" "1.65"
diff --git a/Modules/FindCUDAToolkit.cmake b/Modules/FindCUDAToolkit.cmake
index f06f0e885..8adb3bfd5 100644
--- a/Modules/FindCUDAToolkit.cmake
+++ b/Modules/FindCUDAToolkit.cmake
@@ -1084,7 +1084,7 @@ if(CUDAToolkit_FOUND)
if(CUDAToolkit_VERSION VERSION_GREATER_EQUAL 10.0)
# nvToolsExt is deprecated since nvtx3 introduction.
# Warn only if the project requires a sufficiently new CMake to make migration possible.
- if(CMAKE_MINIMUM_REQUIRED_VERSION VERSION_GREATER_EQUAL 3.25)
+ if(TARGET CUDA::nvToolsExt AND CMAKE_MINIMUM_REQUIRED_VERSION VERSION_GREATER_EQUAL 3.25)
set_property(TARGET CUDA::nvToolsExt PROPERTY DEPRECATION "nvToolsExt has been superseded by nvtx3 since CUDA 10.0 and CMake 3.25. Use CUDA::nvtx3 and include <nvtx3/nvToolsExt.h> instead.")
endif()
diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake
index c399308b8..d87d820f2 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 25)
-set(CMake_VERSION_PATCH 1)
+set(CMake_VERSION_PATCH 2)
#set(CMake_VERSION_RC 0)
set(CMake_VERSION_IS_DIRTY 0)
@@ -21,7 +21,7 @@ endif()
if(NOT CMake_VERSION_NO_GIT)
# If this source was exported by 'git archive', use its commit info.
- set(git_info [==[5676593be9 CMake 3.25.1]==])
+ set(git_info [==[e2be23a2b3 CMake 3.25.2]==])
# Otherwise, try to identify the current development source version.
if(NOT git_info MATCHES "^([0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]?[0-9a-f]?)[0-9a-f]* "
diff --git a/Source/CursesDialog/form/form.h b/Source/CursesDialog/form/form.h
index 39ed75a7c..b590c9785 100644
--- a/Source/CursesDialog/form/form.h
+++ b/Source/CursesDialog/form/form.h
@@ -54,6 +54,9 @@
# if defined(__hpux) && !defined(HAVE__XOPEN_SOURCE_EXTENDED)
# undef _XOPEN_SOURCE_EXTENDED
# endif
+ /* Some curses/term headers define lower-case macros that
+ conflict with our source code. Undefine them. */
+# undef newline
# endif
#include <eti.h>
diff --git a/Source/cmComputeLinkInformation.cxx b/Source/cmComputeLinkInformation.cxx
index 044f69f00..6cfdf62e7 100644
--- a/Source/cmComputeLinkInformation.cxx
+++ b/Source/cmComputeLinkInformation.cxx
@@ -368,7 +368,7 @@ cmComputeLinkInformation::cmComputeLinkInformation(
LibraryFeatureDescriptor{ "__CMAKE_LINK_EXECUTABLE",
cmStrCat(this->LoaderFlag, "<LIBRARY>") });
}
- // To link framewortk using a full path
+ // To link framework using a full path
this->LibraryFeatureDescriptors.emplace(
"__CMAKE_LINK_FRAMEWORK",
LibraryFeatureDescriptor{ "__CMAKE_LINK_FRAMEWORK", "<LIBRARY>" });
diff --git a/Source/cmGlobalGenerator.h b/Source/cmGlobalGenerator.h
index 89b2ea8d7..076b041ea 100644
--- a/Source/cmGlobalGenerator.h
+++ b/Source/cmGlobalGenerator.h
@@ -369,7 +369,7 @@ public:
that is a framework. */
bool NameResolvesToFramework(const std::string& libname) const;
/** Split a framework path to the directory and name of the framework as well
- * as optiona; suffix.
+ * as optional suffix.
* Returns std::nullopt if the path does not match with framework format
* when extendedFormat is true, required format is relaxed (i.e. extension
* `.framework' is optional). Used when FRAMEWORK link feature is
diff --git a/Source/cmTryRunCommand.cxx b/Source/cmTryRunCommand.cxx
index 1e81195b8..8d62cb155 100644
--- a/Source/cmTryRunCommand.cxx
+++ b/Source/cmTryRunCommand.cxx
@@ -40,7 +40,7 @@ public:
std::string* runOutputStdOutContents,
std::string* runOutputStdErrContents);
void DoNotRunExecutable(const std::string& runArgs,
- const std::string& srcFile,
+ cm::optional<std::string> const& srcFile,
std::string const& compileResultVariable,
std::string* runOutputContents,
std::string* runOutputStdOutContents,
@@ -128,7 +128,7 @@ bool TryRunCommandImpl::TryRunCode(std::vector<std::string> const& argv)
if (this->Makefile->IsOn("CMAKE_CROSSCOMPILING") &&
!this->Makefile->IsDefinitionSet("CMAKE_CROSSCOMPILING_EMULATOR")) {
this->DoNotRunExecutable(
- runArgs, *arguments.SourceDirectoryOrFile,
+ runArgs, arguments.SourceDirectoryOrFile,
*arguments.CompileResultVariable,
captureRunOutput ? &runOutputContents : nullptr,
captureRunOutputStdOutErr && arguments.RunOutputStdOutVariable
@@ -238,7 +238,7 @@ void TryRunCommandImpl::RunExecutable(const std::string& runArgs,
the executable would have produced.
*/
void TryRunCommandImpl::DoNotRunExecutable(
- const std::string& runArgs, const std::string& srcFile,
+ const std::string& runArgs, cm::optional<std::string> const& srcFile,
std::string const& compileResultVariable, std::string* out,
std::string* stdOut, std::string* stdErr)
{
@@ -421,9 +421,11 @@ void TryRunCommandImpl::DoNotRunExecutable(
comment += "The ";
comment += compileResultVariable;
- comment += " variable holds the build result for this try_run().\n\n"
- "Source file : ";
- comment += srcFile + "\n";
+ comment += " variable holds the build result for this try_run().\n\n";
+ if (srcFile) {
+ comment += "Source file : ";
+ comment += *srcFile + "\n";
+ }
comment += "Executable : ";
comment += copyDest + "\n";
comment += "Run arguments : ";
diff --git a/Source/cmVisualStudio10TargetGenerator.cxx b/Source/cmVisualStudio10TargetGenerator.cxx
index 4cfb561b5..8882c45f5 100644
--- a/Source/cmVisualStudio10TargetGenerator.cxx
+++ b/Source/cmVisualStudio10TargetGenerator.cxx
@@ -3769,6 +3769,10 @@ bool cmVisualStudio10TargetGenerator::ComputeMasmOptions(
this->LocalGenerator, Options::MasmCompiler, gg->GetMasmFlagTable());
Options& masmOptions = *pOptions;
+ // MSBuild enables debug information by default.
+ // Disable it explicitly unless a flag parsed below re-enables it.
+ masmOptions.AddFlag("GenerateDebugInformation", "false");
+
std::string flags;
this->LocalGenerator->AddLanguageFlags(flags, this->GeneratorTarget,
cmBuildStep::Compile, "ASM_MASM",
diff --git a/Tests/CTestUpdateGIT.cmake.in b/Tests/CTestUpdateGIT.cmake.in
index a3ef4ebdb..7fddaa303 100644
--- a/Tests/CTestUpdateGIT.cmake.in
+++ b/Tests/CTestUpdateGIT.cmake.in
@@ -34,7 +34,7 @@ endif()
# Adapt to the system default branch name.
execute_process(
- COMMAND ${GIT} config --get init.defaultBranch
+ COMMAND ${GIT} --git-dir= config --get init.defaultBranch
RESULT_VARIABLE defaultBranchFailed
OUTPUT_VARIABLE defaultBranch
ERROR_VARIABLE defaultBranchError
diff --git a/Tests/RunCMake/ParseImplicitData/hand-C-relative.input b/Tests/RunCMake/ParseImplicitData/hand-C-relative.input
index 52ac9df09..dd0c10b35 100644
--- a/Tests/RunCMake/ParseImplicitData/hand-C-relative.input
+++ b/Tests/RunCMake/ParseImplicitData/hand-C-relative.input
@@ -16,8 +16,8 @@ This is a hand-written test case.
#include "..." search starts here:
#include <...> search starts here:
/usr/local/include
- ../../../adaptive/relative/include
+ ../../../../adaptive/relative/include
/usr/include
End of search list.
-/usr/bin/ld -L/usr/lib64 -L../../../adaptive/relative/lib
+/usr/bin/ld -L/usr/lib64 -L../../../../adaptive/relative/lib
diff --git a/Tests/RunCMake/ParseImplicitData/hand-CXX-relative.input b/Tests/RunCMake/ParseImplicitData/hand-CXX-relative.input
index 0b223a130..568933ad2 100644
--- a/Tests/RunCMake/ParseImplicitData/hand-CXX-relative.input
+++ b/Tests/RunCMake/ParseImplicitData/hand-CXX-relative.input
@@ -16,8 +16,8 @@ This is a hand-written test case.
#include "..." search starts here:
#include <...> search starts here:
/usr/local/include
- ../../../adaptive/relative/include
+ ../../../../adaptive/relative/include
/usr/include
End of search list.
-/usr/bin/ld -L/usr/lib64 -L../../../adaptive/relative/lib
+/usr/bin/ld -L/usr/lib64 -L../../../../adaptive/relative/lib
diff --git a/Tests/RunCMake/try_run/CrossCompile.cmake b/Tests/RunCMake/try_run/CrossCompile.cmake
new file mode 100644
index 000000000..4993768b7
--- /dev/null
+++ b/Tests/RunCMake/try_run/CrossCompile.cmake
@@ -0,0 +1,8 @@
+include(${CMAKE_CURRENT_SOURCE_DIR}/${try_compile_DEFS})
+
+# Pretend we are cross-compiling to take that try_run code path.
+set(CMAKE_CROSSCOMPILING 1)
+set(RUN_RESULT 0)
+try_run(RUN_RESULT COMPILE_RESULT ${try_compile_bindir_or_SOURCES}
+ ${CMAKE_CURRENT_SOURCE_DIR}/src.c)
+unset(CMAKE_CROSSCOMPILING)
diff --git a/Tests/RunCMake/try_run/old_and_new_signature_tests.cmake b/Tests/RunCMake/try_run/old_and_new_signature_tests.cmake
index e1c1784b7..2b51eb24b 100644
--- a/Tests/RunCMake/try_run/old_and_new_signature_tests.cmake
+++ b/Tests/RunCMake/try_run/old_and_new_signature_tests.cmake
@@ -11,6 +11,8 @@ run_cmake(BadLinkLibraries)
run_cmake(BinDirEmpty)
run_cmake(BinDirRelative)
+run_cmake(CrossCompile)
+
run_cmake(WorkingDirArg)
run_cmake(NoCompileOutputVariable)
diff --git a/Tests/VSMASM/CMakeLists.txt b/Tests/VSMASM/CMakeLists.txt
index 2923e1527..603a43bc8 100644
--- a/Tests/VSMASM/CMakeLists.txt
+++ b/Tests/VSMASM/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 2.8.12)
+cmake_minimum_required(VERSION 3.25) # Enable CMP0141
project(VSMASM C ASM_MASM)
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
add_definitions(-DTESTx64)
diff --git a/Utilities/Release/win/sign-package.ps1 b/Utilities/Release/win/sign-package.ps1
index 0dbefd2ba..fdaff1478 100755
--- a/Utilities/Release/win/sign-package.ps1
+++ b/Utilities/Release/win/sign-package.ps1
@@ -16,7 +16,7 @@ if ($trace -eq $true) {
$ErrorActionPreference = 'Stop'
# Sign binaries with SHA-1 for Windows 7 and below.
-& $signtool sign -v -a -t http://timestamp.digicert.com bin\*.exe
+& $signtool sign -v -a -t http://timestamp.digicert.com -fd sha1 bin\*.exe
# Sign binaries with SHA-256 for Windows 8 and above.
& $signtool sign -v -a -tr http://timestamp.digicert.com -fd sha256 -td sha256 -as bin\*.exe
diff --git a/Utilities/cmzlib/cm_zlib_mangle.h b/Utilities/cmzlib/cm_zlib_mangle.h
index 1461e2f77..d75405d2f 100644
--- a/Utilities/cmzlib/cm_zlib_mangle.h
+++ b/Utilities/cmzlib/cm_zlib_mangle.h
@@ -19,7 +19,7 @@
# define compress2 cm_zlib_compress2
# define compressBound cm_zlib_compressBound
#endif
-#define crc32 z_crc32
+#define crc32 cm_zlib_crc32
#define crc32_combine cm_zlib_crc32_combine
#define crc32_combine64 cm_zlib_crc32_combine64
#define crc32_z cm_zlib_crc32_z
@@ -126,7 +126,6 @@
#define crc32_combine_gen cm_zlib_crc32_combine_gen
#define crc32_combine_op cm_zlib_crc32_combine_op
#define gz_error cm_zlib_gz_error
-#define z_crc32 cm_zlib_z_crc32
#define z_errmsg cm_zlib_z_errmsg
#endif