Update upstream source from tag 'upstream/3.28.1'

Update to upstream version '3.28.1'
with Debian dir 9270d8cf95
ci/unstable
Timo Röhling 1 year ago
commit 50ff29688e

@ -5,26 +5,25 @@ Create a test driver and source list for building test programs.
.. code-block:: cmake .. code-block:: cmake
create_test_sourcelist(sourceListName driverName create_test_sourcelist(<sourceListName> <driverName>
test1 test2 test3 <tests> ...
EXTRA_INCLUDE include.h [EXTRA_INCLUDE <include>]
FUNCTION function) [FUNCTION <function>])
A test driver is a program that links together many small tests into a A test driver is a program that links together many small tests into a single
single executable. This is useful when building static executables executable. This is useful when building static executables with large
with large libraries to shrink the total required size. The list of libraries to shrink the total required size. The list of source files needed
source files needed to build the test driver will be in to build the test driver will be in ``sourceListName``. ``driverName`` is the
``sourceListName``. ``driverName`` is the name of the test driver program. name of the test driver program. The rest of the arguments consist of a list
The rest of the arguments consist of a list of test source files, can of test source files and can be semicolon separated. Each test source file
be semicolon separated. Each test source file should have a function should have a function in it that is the same name as the file with no
in it that is the same name as the file with no extension (foo.cxx extension (``foo.cxx`` should have ``int foo(int, char*[]);``). ``driverName``
should have int foo(int, char*[]);) ``driverName`` will be able to call will be able to call each of the tests by name on the command line. If
each of the tests by name on the command line. If ``EXTRA_INCLUDE`` is ``EXTRA_INCLUDE`` is specified, then the next argument is included into the
specified, then the next argument is included into the generated file. generated file. If ``FUNCTION`` is specified, then the next argument is taken
If ``FUNCTION`` is specified, then the next argument is taken as a as a function name that is passed pointers to ``argc`` and ``argv``. This can
function name that is passed a pointer to ac and av. This can be used be used to add extra command line processing to each test. The
to add extra command line processing to each test. The ``CMAKE_TESTDRIVER_BEFORE_TESTMAIN`` cmake variable can be set to have code
``CMAKE_TESTDRIVER_BEFORE_TESTMAIN`` cmake variable can be set to that will be placed directly before calling the test ``main`` function.
have code that will be placed directly before calling the test main function. ``CMAKE_TESTDRIVER_AFTER_TESTMAIN`` can be set to have code that will be
``CMAKE_TESTDRIVER_AFTER_TESTMAIN`` can be set to have code that placed directly after the call to the test ``main`` function.
will be placed directly after the call to the test main function.

@ -68,9 +68,9 @@ Each ``<item>`` may be:
.. versionadded:: 3.28 .. versionadded:: 3.28
The library file may point to a ``.xcframework`` folder on macOS. If it The library file may point to a ``.xcframework`` folder on Apple platforms.
does, the target will get the selected library's ``Headers`` directory as If it does, the target will get the selected library's ``Headers``
a usage requirement. directory as a usage requirement.
.. versionadded:: 3.8 .. versionadded:: 3.8
On :ref:`Visual Studio Generators` for VS 2010 and above, library files On :ref:`Visual Studio Generators` for VS 2010 and above, library files

@ -35,8 +35,8 @@ the property instead for backward compatibility reasons.
See below for alternative initialization behavior for shared library targets. See below for alternative initialization behavior for shared library targets.
.. versionadded:: 3.27 .. versionadded:: 3.27
On Apple platforms, to link with a shared library (either a bare library or a To link with a shared library on macOS, or to a shared framework on any Apple
framework), a linker import file can be used instead of the actual shared platform, a linker import file can be used instead of the actual shared
library. These linker import files are also known as text-based stubs, and library. These linker import files are also known as text-based stubs, and
they have a ``.tbd`` file extension. they have a ``.tbd`` file extension.

@ -6,17 +6,26 @@ Full path to the import library for an ``IMPORTED`` target.
This property may be set: This property may be set:
* On DLL platforms, to the location of the ``.lib`` part of the DLL. * On DLL platforms, to the location of the ``.lib`` part of the DLL.
* On AIX, to an import file (e.g. ``.imp``) created for executables that export * .. versionadded:: 3.16
symbols (see the :prop_tgt:`ENABLE_EXPORTS` target property). On AIX, to an import file (e.g. ``.imp``) created for executables that
* On macOS, to an import file (e.g. ``.tbd``) created for shared libraries (see export symbols (see the :prop_tgt:`ENABLE_EXPORTS` target property).
the :prop_tgt:`ENABLE_EXPORTS` target property). For frameworks this is the * .. versionadded:: 3.27
location of the ``.tbd`` file symlink just inside the framework folder. On Apple platforms, to an import file (e.g. ``.tbd``) created for shared
libraries or frameworks (see the :prop_tgt:`ENABLE_EXPORTS` target
property). For frameworks, this is the location of the ``.tbd`` file
symlink just inside the framework folder.
* .. versionadded:: 3.28 * .. versionadded:: 3.28
On non-DLL platforms, to the location of a shared library. On non-DLL platforms, to the location of a shared library.
When set without also specifying an :prop_tgt:`IMPORTED_LOCATION`, When set without also specifying an :prop_tgt:`IMPORTED_LOCATION`,
the library is considered to be a stub, and its location will not the library is considered to be a stub, and its location will not
be added as a runtime search path to dependents that link it. be added as a runtime search path to dependents that link it.
.. versionchanged:: 3.28
If an imported target is an Apple framework or XCFramework, the preferred
arrangement is to set :prop_tgt:`IMPORTED_LOCATION` to the ``.framework``
or ``.xcframework`` directory. CMake will then find the relevant ``.tbd``
file inside that framework or XCFramework automatically without requiring
``IMPORTED_IMPLIB`` to be set.
The ``IMPORTED_IMPLIB`` target property may be overridden for a The ``IMPORTED_IMPLIB`` target property may be overridden for a
given configuration ``<CONFIG>`` by the configuration-specific given configuration ``<CONFIG>`` by the configuration-specific

@ -17,14 +17,10 @@ non-imported targets.
.. versionadded:: 3.28 .. versionadded:: 3.28
For frameworks on macOS, this may be the location of the framework folder For ordinary frameworks on Apple platforms, this may be the location of the
itself. ``.framework`` folder itself. For XCFrameworks, it may be the location of
the ``.xcframework`` folder, in which case any target that links against it
.. versionadded:: 3.28 will get the selected library's ``Headers`` directory as a usage requirement.
This may be the location of a ``.xcframework`` folder on macOS. If it is,
any target that links against it will get the selected library's ``Headers``
directory as a usage requirement.
The ``IMPORTED_LOCATION`` target property may be overridden for a The ``IMPORTED_LOCATION`` target property may be overridden for a
given configuration ``<CONFIG>`` by the configuration-specific given configuration ``<CONFIG>`` by the configuration-specific
@ -38,5 +34,5 @@ selected and its :prop_tgt:`IMPORTED_LOCATION_<CONFIG>` value used.
To get the location of an imported target read one of the :prop_tgt:`LOCATION` To get the location of an imported target read one of the :prop_tgt:`LOCATION`
or ``LOCATION_<CONFIG>`` properties. or ``LOCATION_<CONFIG>`` properties.
For platforms with import libraries (e.g. Windows, AIX or macOS) see also For platforms with import libraries (e.g. Windows, AIX or Apple) see also
:prop_tgt:`IMPORTED_IMPLIB`. :prop_tgt:`IMPORTED_IMPLIB`.

@ -201,3 +201,15 @@ Other Changes
* The precompiled Linux ``x86_64`` binaries provided on * The precompiled Linux ``x86_64`` binaries provided on
`cmake.org <https://cmake.org/download/>`_ now require GLIBC 2.17 or higher. `cmake.org <https://cmake.org/download/>`_ now require GLIBC 2.17 or higher.
Updates
=======
Changes made since CMake 3.28.0 include the following.
3.28.1
------
* This version made no changes to documented features or interfaces.
Some implementation updates were made to support ecosystem changes
and/or fix regressions.

@ -247,7 +247,7 @@ Commands
If the ``EXCLUDE_FROM_ALL`` argument is provided, then targets in the If the ``EXCLUDE_FROM_ALL`` argument is provided, then targets in the
subdirectory added by :command:`FetchContent_MakeAvailable` will not be subdirectory added by :command:`FetchContent_MakeAvailable` will not be
included in the ``ALL`` target by default, and may be excluded from IDE included in the ``ALL`` target by default, and may be excluded from IDE
project files. See the `:command:`add_subdirectory` `EXCLUDE_FROM_ALL`` project files. See the :command:`add_subdirectory` ``EXCLUDE_FROM_ALL``
argument documentation for a more detailed discussion of the effects. argument documentation for a more detailed discussion of the effects.
.. command:: FetchContent_MakeAvailable .. command:: FetchContent_MakeAvailable

@ -1096,11 +1096,13 @@ if(CUDAToolkit_FOUND)
ENV CUDA_PATH ENV CUDA_PATH
PATH_SUFFIXES lib64/stubs lib/x64/stubs lib/stubs stubs PATH_SUFFIXES lib64/stubs lib/x64/stubs lib/stubs stubs
) )
if(CUDA_${lib_name}_LIBRARY AND NOT WIN32) endif()
# Use `IMPORTED_IMPLIB` so that we don't add a `-rpath` entry for stub directories if(CUDA_${lib_name}_LIBRARY MATCHES "/stubs/" AND NOT WIN32)
set(CUDA_IMPORT_PROPERTY IMPORTED_IMPLIB) # Use a SHARED library with IMPORTED_IMPLIB, but not IMPORTED_LOCATION,
set(CUDA_IMPORT_TYPE SHARED) # to indicate that the stub is for linkers but not dynamic loaders.
endif() # It will not contribute any RPATH entry.
set(CUDA_IMPORT_PROPERTY IMPORTED_IMPLIB)
set(CUDA_IMPORT_TYPE SHARED)
endif() endif()
mark_as_advanced(CUDA_${lib_name}_LIBRARY) mark_as_advanced(CUDA_${lib_name}_LIBRARY)
@ -1244,8 +1246,9 @@ if(CUDAToolkit_FOUND)
find_path(CUDAToolkit_CUPTI_INCLUDE_DIR cupti.h PATHS find_path(CUDAToolkit_CUPTI_INCLUDE_DIR cupti.h PATHS
"${CUDAToolkit_ROOT_DIR}/extras/CUPTI/include" "${CUDAToolkit_ROOT_DIR}/extras/CUPTI/include"
"${CUDAToolkit_INCLUDE_DIR}/../extras/CUPTI/include" "${CUDAToolkit_INCLUDE_DIRS}"
"${CUDAToolkit_INCLUDE_DIR}" PATH_SUFFIXES "../extras/CUPTI/include"
"../../../extras/CUPTI/include"
NO_DEFAULT_PATH) NO_DEFAULT_PATH)
mark_as_advanced(CUDAToolkit_CUPTI_INCLUDE_DIR) mark_as_advanced(CUDAToolkit_CUPTI_INCLUDE_DIR)

@ -66,10 +66,6 @@ directory of a Freetype installation.
# everything still works. # everything still works.
set(_Freetype_args) set(_Freetype_args)
if (Freetype_FIND_QUIETLY)
list(APPEND _Freetype_args
QUIET)
endif ()
if (Freetype_FIND_VERSION) if (Freetype_FIND_VERSION)
list(APPEND _Freetype_args list(APPEND _Freetype_args
"${Freetype_FIND_VERSION}") "${Freetype_FIND_VERSION}")
@ -100,7 +96,8 @@ if (_Freetype_component_opt)
OPTIONAL_COMPONENTS "${_Freetype_component_opt}") OPTIONAL_COMPONENTS "${_Freetype_component_opt}")
endif () endif ()
unset(_Freetype_component_opt) unset(_Freetype_component_opt)
find_package(freetype CONFIG ${_Freetype_args}) # Always find with QUIET to avoid noise when it is not found.
find_package(freetype CONFIG QUIET ${_Freetype_args})
unset(_Freetype_args) unset(_Freetype_args)
if (freetype_FOUND) if (freetype_FOUND)
if (NOT TARGET Freetype::Freetype) if (NOT TARGET Freetype::Freetype)
@ -113,6 +110,9 @@ if (freetype_FOUND)
get_property(_Freetype_location TARGET freetype PROPERTY IMPORTED_IMPLIB) get_property(_Freetype_location TARGET freetype PROPERTY IMPORTED_IMPLIB)
if (NOT _Freetype_location) if (NOT _Freetype_location)
get_property(_Freetype_location_release TARGET freetype PROPERTY IMPORTED_IMPLIB_RELEASE) get_property(_Freetype_location_release TARGET freetype PROPERTY IMPORTED_IMPLIB_RELEASE)
if (NOT _Freetype_location_release)
get_property(_Freetype_location_release TARGET freetype PROPERTY IMPORTED_IMPLIB_RELWITHDEBINFO)
endif ()
get_property(_Freetype_location_debug TARGET freetype PROPERTY IMPORTED_IMPLIB_DEBUG) get_property(_Freetype_location_debug TARGET freetype PROPERTY IMPORTED_IMPLIB_DEBUG)
if (_Freetype_location_release AND _Freetype_location_debug) if (_Freetype_location_release AND _Freetype_location_debug)
set(_Freetype_location set(_Freetype_location
@ -124,6 +124,9 @@ if (freetype_FOUND)
set(_Freetype_location "${_Freetype_location_debug}") set(_Freetype_location "${_Freetype_location_debug}")
else () else ()
get_property(_Freetype_location_release TARGET freetype PROPERTY LOCATION_RELEASE) get_property(_Freetype_location_release TARGET freetype PROPERTY LOCATION_RELEASE)
if (NOT _Freetype_location_release)
get_property(_Freetype_location_release TARGET freetype PROPERTY LOCATION_RELWITHDEBINFO)
endif ()
get_property(_Freetype_location_debug TARGET freetype PROPERTY LOCATION_DEBUG) get_property(_Freetype_location_debug TARGET freetype PROPERTY LOCATION_DEBUG)
if (_Freetype_location_release AND _Freetype_location_debug) if (_Freetype_location_release AND _Freetype_location_debug)
set(_Freetype_location set(_Freetype_location
@ -150,6 +153,13 @@ if (freetype_FOUND)
set(Freetype_${_Freetype_component}_FOUND "${freetype_${_Freetype_component}_FOUND}") set(Freetype_${_Freetype_component}_FOUND "${freetype_${_Freetype_component}_FOUND}")
endforeach () endforeach ()
unset(_Freetype_component) unset(_Freetype_component)
include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
find_package_handle_standard_args(Freetype
HANDLE_COMPONENTS
VERSION_VAR FREETYPE_VERSION_STRING
)
return () return ()
endif () endif ()

@ -486,10 +486,10 @@ function(matlab_extract_all_installed_versions_from_registry win64 matlab_versio
if(_reg) if(_reg)
string(REGEX MATCHALL "([0-9]+\\.[0-9]+)" _versions_regex ${_reg}) string(REGEX MATCHALL "([0-9]+\\.[0-9]+)" _versions_regex "${_reg}")
foreach(match IN LISTS _versions_regex) foreach(match IN LISTS _versions_regex)
string(REGEX MATCH "([0-9]+\\.[0-9]+)" current_match ${match}) string(REGEX MATCH "([0-9]+\\.[0-9]+)" current_match "${match}")
if(NOT CMAKE_MATCH_1) if(NOT CMAKE_MATCH_1)
continue() continue()
@ -500,7 +500,7 @@ function(matlab_extract_all_installed_versions_from_registry win64 matlab_versio
VALUE "MATLABROOT" VALUE "MATLABROOT"
) )
_Matlab_VersionInfoXML(${_reg} _matlab_version_tmp) _Matlab_VersionInfoXML("${_reg}" _matlab_version_tmp)
if(NOT "${_matlab_version_tmp}" STREQUAL "unknown") if(NOT "${_matlab_version_tmp}" STREQUAL "unknown")
list(APPEND matlabs_from_registry ${_matlab_version_tmp}) list(APPEND matlabs_from_registry ${_matlab_version_tmp})
endif() endif()
@ -1364,7 +1364,7 @@ function(_Matlab_get_version_from_root matlab_root matlab_or_mcr matlab_known_ve
${_matlab_main_real_path_tmp} ${_matlab_main_real_path_tmp}
CACHE INTERNAL "internal matlab location for the discovered version") CACHE INTERNAL "internal matlab location for the discovered version")
_Matlab_VersionInfoXML(${matlab_root} _matlab_version_tmp) _Matlab_VersionInfoXML("${matlab_root}" _matlab_version_tmp)
if(NOT "${_matlab_version_tmp}" STREQUAL "unknown") if(NOT "${_matlab_version_tmp}" STREQUAL "unknown")
# at least back to R2016 VersionInfo.xml exists # at least back to R2016 VersionInfo.xml exists
set(matlab_list_of_all_versions ${_matlab_version_tmp}) set(matlab_list_of_all_versions ${_matlab_version_tmp})
@ -1392,7 +1392,7 @@ function(_Matlab_get_version_from_root matlab_root matlab_or_mcr matlab_known_ve
# MCR # MCR
# we cannot run anything in order to extract the version. We assume that the file # we cannot run anything in order to extract the version. We assume that the file
# VersionInfo.xml exists under the MatlabRoot, we look for it and extract the version from there # VersionInfo.xml exists under the MatlabRoot, we look for it and extract the version from there
_Matlab_VersionInfoXML(${matlab_root} _matlab_version_tmp) _Matlab_VersionInfoXML("${matlab_root}" _matlab_version_tmp)
if(NOT "${_matlab_version_tmp}" STREQUAL "unknown") if(NOT "${_matlab_version_tmp}" STREQUAL "unknown")
set(Matlab_VERSION_STRING_INTERNAL ${_matlab_version_tmp} CACHE INTERNAL "Matlab version (automatically determined)") set(Matlab_VERSION_STRING_INTERNAL ${_matlab_version_tmp} CACHE INTERNAL "Matlab version (automatically determined)")
endif() endif()
@ -1481,7 +1481,7 @@ function(_Matlab_find_instances_macos matlab_roots)
string(REPLACE "." "" _matlab_current_version_without_dot "${_matlab_current_version}") string(REPLACE "." "" _matlab_current_version_without_dot "${_matlab_current_version}")
set(_matlab_base_path "/Applications/MATLAB_${_matlab_current_release}.app") set(_matlab_base_path "/Applications/MATLAB_${_matlab_current_release}.app")
_Matlab_VersionInfoXML(${_matlab_base_path} _matlab_version_tmp) _Matlab_VersionInfoXML("${_matlab_base_path}" _matlab_version_tmp)
if(NOT "${_matlab_version_tmp}" STREQUAL "unknown") if(NOT "${_matlab_version_tmp}" STREQUAL "unknown")
set(_matlab_current_version ${_matlab_version_tmp}) set(_matlab_current_version ${_matlab_version_tmp})
endif() endif()

@ -65,11 +65,10 @@ The following cache variables may also be set:
Debug and Release variants are found separately. Debug and Release variants are found separately.
#]=======================================================================] #]=======================================================================]
cmake_policy(PUSH)
cmake_policy(SET CMP0057 NEW) # if IN_LIST
set(_TIFF_args) set(_TIFF_args)
if (TIFF_FIND_QUIETLY)
list(APPEND _TIFF_args
QUIET)
endif ()
if (TIFF_FIND_VERSION) if (TIFF_FIND_VERSION)
list(APPEND _TIFF_args list(APPEND _TIFF_args
"${TIFF_FIND_VERSION}") "${TIFF_FIND_VERSION}")
@ -100,7 +99,8 @@ if (_TIFF_component_opt)
OPTIONAL_COMPONENTS "${_TIFF_component_opt}") OPTIONAL_COMPONENTS "${_TIFF_component_opt}")
endif () endif ()
unset(_TIFF_component_opt) unset(_TIFF_component_opt)
find_package(tiff CONFIG ${_TIFF_args}) # Always find with QUIET to avoid noise when it is not found.
find_package(tiff CONFIG QUIET ${_TIFF_args})
unset(_TIFF_args) unset(_TIFF_args)
if (tiff_FOUND) if (tiff_FOUND)
if (NOT TARGET TIFF::TIFF) if (NOT TARGET TIFF::TIFF)
@ -110,15 +110,86 @@ if (tiff_FOUND)
endif () endif ()
get_property(TIFF_INCLUDE_DIRS TARGET TIFF::tiff PROPERTY INTERFACE_INCLUDE_DIRECTORIES) get_property(TIFF_INCLUDE_DIRS TARGET TIFF::tiff PROPERTY INTERFACE_INCLUDE_DIRECTORIES)
get_property(TIFF_LIBRARIES TARGET TIFF::tiff PROPERTY INTERFACE_LINK_LIBRARIES) get_property(TIFF_LIBRARIES TARGET TIFF::tiff PROPERTY INTERFACE_LINK_LIBRARIES)
get_property(_TIFF_location TARGET TIFF::tiff PROPERTY LOCATION) get_property(_TIFF_location TARGET TIFF::tiff PROPERTY IMPORTED_IMPLIB)
list(APPEND TIFF_LIBRARIES if (NOT _TIFF_location)
get_property(_TIFF_location_release TARGET TIFF::tiff PROPERTY IMPORTED_IMPLIB_RELEASE)
if (NOT _TIFF_location_release)
get_property(_TIFF_location_release TARGET TIFF::tiff PROPERTY IMPORTED_IMPLIB_RELWITHDEBINFO)
endif ()
get_property(_TIFF_location_debug TARGET TIFF::tiff PROPERTY IMPORTED_IMPLIB_DEBUG)
if (_TIFF_location_release AND _TIFF_location_debug)
set(_TIFF_location
optimized "${_TIFF_location_release}"
debug "${_TIFF_location_debug}")
elseif (_TIFF_location_release)
set(_TIFF_location "${_TIFF_location_release}")
elseif (_TIFF_location_debug)
set(_TIFF_location "${_TIFF_location_debug}")
else ()
get_property(_TIFF_location_release TARGET TIFF::tiff PROPERTY LOCATION_RELEASE)
if (NOT _TIFF_location_release)
get_property(_TIFF_location_release TARGET TIFF::tiff PROPERTY LOCATION_RELWITHDEBINFO)
endif ()
get_property(_TIFF_location_debug TARGET TIFF::tiff PROPERTY LOCATION_DEBUG)
if (_TIFF_location_release AND _TIFF_location_debug)
set(_TIFF_location
optimized "${_TIFF_location_release}"
debug "${_TIFF_location_debug}")
elseif (_TIFF_location_release)
set(_TIFF_location "${_TIFF_location_release}")
elseif (_TIFF_location_debug)
set(_TIFF_location "${_TIFF_location_debug}")
else ()
get_property(_TIFF_location TARGET TIFF::tiff PROPERTY LOCATION)
endif ()
endif ()
unset(_TIFF_location_release)
unset(_TIFF_location_debug)
endif ()
list(INSERT TIFF_LIBRARIES 0
"${_TIFF_location}") "${_TIFF_location}")
unset(_TIFF_location) unset(_TIFF_location)
set(TIFF_FOUND 1) set(TIFF_FOUND 1)
if("CXX" IN_LIST TIFF_FIND_COMPONENTS) if("CXX" IN_LIST TIFF_FIND_COMPONENTS)
if (TARGET TIFF::CXX) if (TARGET TIFF::CXX)
get_property(_TIFF_CXX_location TARGET TIFF::CXX PROPERTY LOCATION) get_property(_TIFF_CXX_location TARGET TIFF::CXX PROPERTY IMPORTED_IMPLIB)
list(APPEND TIFF_LIBRARIES ${_TIFF_CXX_location}) if (NOT _TIFF_CXX_location)
get_property(_TIFF_CXX_location_release TARGET TIFF::CXX PROPERTY IMPORTED_IMPLIB_RELEASE)
if (NOT _TIFF_CXX_location_release)
get_property(_TIFF_CXX_location_release TARGET TIFF::CXX PROPERTY IMPORTED_IMPLIB_RELWITHDEBINFO)
endif ()
get_property(_TIFF_CXX_location_debug TARGET TIFF::CXX PROPERTY IMPORTED_IMPLIB_DEBUG)
if (_TIFF_CXX_location_release AND _TIFF_CXX_location_debug)
set(_TIFF_CXX_location
optimized "${_TIFF_CXX_location_release}"
debug "${_TIFF_CXX_location_debug}")
elseif (_TIFF_CXX_location_release)
set(_TIFF_CXX_location "${_TIFF_CXX_location_release}")
elseif (_TIFF_CXX_location_debug)
set(_TIFF_CXX_location "${_TIFF_CXX_location_debug}")
else ()
get_property(_TIFF_CXX_location_release TARGET TIFF::CXX PROPERTY LOCATION_RELEASE)
if (NOT _TIFF_CXX_location_release)
get_property(_TIFF_CXX_location_release TARGET TIFF::CXX PROPERTY LOCATION_RELWITHDEBINFO)
endif ()
get_property(_TIFF_CXX_location_debug TARGET TIFF::CXX PROPERTY LOCATION_DEBUG)
if (_TIFF_CXX_location_release AND _TIFF_CXX_location_debug)
set(_TIFF_CXX_location
optimized "${_TIFF_CXX_location_release}"
debug "${_TIFF_CXX_location_debug}")
elseif (_TIFF_CXX_location_release)
set(_TIFF_CXX_location "${_TIFF_CXX_location_release}")
elseif (_TIFF_CXX_location_debug)
set(_TIFF_CXX_location "${_TIFF_CXX_location_debug}")
else ()
get_property(_TIFF_CXX_location TARGET TIFF::CXX PROPERTY LOCATION)
endif ()
endif ()
unset(_TIFF_CXX_location_release)
unset(_TIFF_CXX_location_debug)
endif ()
list(INSERT TIFF_LIBRARIES 0
"${_TIFF_CXX_location}")
unset(_TIFF_CXX_location) unset(_TIFF_CXX_location)
set(TIFF_CXX_FOUND 1) set(TIFF_CXX_FOUND 1)
else () else ()
@ -135,12 +206,16 @@ if (tiff_FOUND)
set(TIFF_${_TIFF_component}_FOUND "${tiff_${_TIFF_component}_FOUND}") set(TIFF_${_TIFF_component}_FOUND "${tiff_${_TIFF_component}_FOUND}")
endforeach () endforeach ()
unset(_TIFF_component) unset(_TIFF_component)
include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
find_package_handle_standard_args(TIFF
HANDLE_COMPONENTS
VERSION_VAR TIFF_VERSION_STRING)
cmake_policy(POP)
return () return ()
endif () endif ()
cmake_policy(PUSH)
cmake_policy(SET CMP0057 NEW)
find_path(TIFF_INCLUDE_DIR tiff.h) find_path(TIFF_INCLUDE_DIR tiff.h)
set(TIFF_NAMES ${TIFF_NAMES} tiff libtiff tiff3 libtiff3) set(TIFF_NAMES ${TIFF_NAMES} tiff libtiff tiff3 libtiff3)

@ -1,7 +1,7 @@
# CMake version number components. # CMake version number components.
set(CMake_VERSION_MAJOR 3) set(CMake_VERSION_MAJOR 3)
set(CMake_VERSION_MINOR 28) set(CMake_VERSION_MINOR 28)
set(CMake_VERSION_PATCH 0) set(CMake_VERSION_PATCH 1)
#set(CMake_VERSION_RC 0) #set(CMake_VERSION_RC 0)
set(CMake_VERSION_IS_DIRTY 0) set(CMake_VERSION_IS_DIRTY 0)
@ -21,7 +21,7 @@ endif()
if(NOT CMake_VERSION_NO_GIT) if(NOT CMake_VERSION_NO_GIT)
# If this source was exported by 'git archive', use its commit info. # If this source was exported by 'git archive', use its commit info.
set(git_info [==[618fdc1c42 CMake 3.28.0]==]) set(git_info [==[1eed682d7c CMake 3.28.1]==])
# Otherwise, try to identify the current development source version. # 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]* " 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]* "

@ -8948,6 +8948,7 @@ bool cmGeneratorTarget::AddHeaderSetVerification()
verifyTarget->SetProperty("AUTOUIC", "OFF"); verifyTarget->SetProperty("AUTOUIC", "OFF");
verifyTarget->SetProperty("DISABLE_PRECOMPILE_HEADERS", "ON"); verifyTarget->SetProperty("DISABLE_PRECOMPILE_HEADERS", "ON");
verifyTarget->SetProperty("UNITY_BUILD", "OFF"); verifyTarget->SetProperty("UNITY_BUILD", "OFF");
verifyTarget->SetProperty("CXX_SCAN_FOR_MODULES", "OFF");
cm::optional<std::map<std::string, cmValue>> cm::optional<std::map<std::string, cmValue>>
perConfigCompileDefinitions; perConfigCompileDefinitions;
verifyTarget->FinalizeTargetConfiguration( verifyTarget->FinalizeTargetConfiguration(

@ -1697,6 +1697,7 @@ void cmGlobalXCodeGenerator::ForceLinkerLanguage(cmGeneratorTarget* gtgt)
} }
if (cmSourceFile* sf = mf->GetOrCreateSource(fname)) { if (cmSourceFile* sf = mf->GetOrCreateSource(fname)) {
sf->SetProperty("LANGUAGE", llang); sf->SetProperty("LANGUAGE", llang);
sf->SetProperty("CXX_SCAN_FOR_MODULES", "0");
gtgt->AddSource(fname); gtgt->AddSource(fname);
} }
} }

@ -2928,6 +2928,7 @@ void cmLocalGenerator::CopyPchCompilePdb(
} else { } else {
cc->SetOutputs(outputs); cc->SetOutputs(outputs);
cmSourceFile* copy_rule = this->AddCustomCommandToOutput(std::move(cc)); cmSourceFile* copy_rule = this->AddCustomCommandToOutput(std::move(cc));
copy_rule->SetProperty("CXX_SCAN_FOR_MODULES", "0");
if (copy_rule) { if (copy_rule) {
target->AddSource(copy_rule->ResolveFullPath()); target->AddSource(copy_rule->ResolveFullPath());
@ -3195,6 +3196,7 @@ void cmLocalGenerator::AddUnityBuild(cmGeneratorTarget* target)
target->AddSource(file.Path, true); target->AddSource(file.Path, true);
unity->SetProperty("SKIP_UNITY_BUILD_INCLUSION", "ON"); unity->SetProperty("SKIP_UNITY_BUILD_INCLUSION", "ON");
unity->SetProperty("UNITY_SOURCE_FILE", file.Path); unity->SetProperty("UNITY_SOURCE_FILE", file.Path);
unity->SetProperty("CXX_SCAN_FOR_MODULES", "0");
if (file.PerConfig) { if (file.PerConfig) {
unity->SetProperty("COMPILE_DEFINITIONS", unity->SetProperty("COMPILE_DEFINITIONS",
"CMAKE_UNITY_CONFIG_$<UPPER_CASE:$<CONFIG>>"); "CMAKE_UNITY_CONFIG_$<UPPER_CASE:$<CONFIG>>");

@ -1878,6 +1878,7 @@ cmSourceFile* cmQtAutoGenInitializer::RegisterGeneratedSource(
gFile->MarkAsGenerated(); gFile->MarkAsGenerated();
gFile->SetProperty("SKIP_AUTOGEN", "1"); gFile->SetProperty("SKIP_AUTOGEN", "1");
gFile->SetProperty("SKIP_LINTING", "ON"); gFile->SetProperty("SKIP_LINTING", "ON");
gFile->SetProperty("CXX_SCAN_FOR_MODULES", "0");
return gFile; return gFile;
} }

@ -45,7 +45,7 @@ int main(void)
#if defined(_WIN32) #if defined(_WIN32)
Sleep((TIMEOUT + 4) * 1000); Sleep((TIMEOUT + 4) * 1000);
#elif defined(SIGNAL_IGNORE) #elif defined(SIGNAL_IGNORE)
# if defined(__CYGWIN__) || defined(__sun__) # if defined(__CYGWIN__) || defined(__sun__) || defined(__GNU__)
# define ERRNO_IS_EINTR (errno == EINTR || errno == 0) # define ERRNO_IS_EINTR (errno == EINTR || errno == 0)
# else # else
# define ERRNO_IS_EINTR (errno == EINTR) # define ERRNO_IS_EINTR (errno == EINTR)

@ -347,6 +347,9 @@ if("${ninja_version}" VERSION_LESS 1.6)
message(WARNING "Ninja is too old; skipping rest of test.") message(WARNING "Ninja is too old; skipping rest of test.")
return() return()
endif() endif()
if("${ninja_version}" VERSION_LESS 1.12)
set(maybe_w_dupbuild_err -w dupbuild=err)
endif()
set(ninja_output_path_prefixes "sub") set(ninja_output_path_prefixes "sub")
if(NOT CMAKE_C_COMPILER_ID STREQUAL "OrangeC") if(NOT CMAKE_C_COMPILER_ID STREQUAL "OrangeC")
@ -364,14 +367,14 @@ endforeach(ninja_output_path_prefix)
function (run_PreventTargetAliasesDupBuildRule) function (run_PreventTargetAliasesDupBuildRule)
set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/PreventTargetAliasesDupBuildRule-build) set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/PreventTargetAliasesDupBuildRule-build)
run_cmake(PreventTargetAliasesDupBuildRule) run_cmake(PreventTargetAliasesDupBuildRule)
run_ninja("${RunCMake_TEST_BINARY_DIR}" -w dupbuild=err) run_ninja("${RunCMake_TEST_BINARY_DIR}" ${maybe_w_dupbuild_err})
endfunction () endfunction ()
run_PreventTargetAliasesDupBuildRule() run_PreventTargetAliasesDupBuildRule()
function (run_PreventConfigureFileDupBuildRule) function (run_PreventConfigureFileDupBuildRule)
set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/PreventConfigureFileDupBuildRule-build) set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/PreventConfigureFileDupBuildRule-build)
run_cmake(PreventConfigureFileDupBuildRule) run_cmake(PreventConfigureFileDupBuildRule)
run_ninja("${RunCMake_TEST_BINARY_DIR}" -w dupbuild=err) run_ninja("${RunCMake_TEST_BINARY_DIR}" ${maybe_w_dupbuild_err})
endfunction() endfunction()
run_PreventConfigureFileDupBuildRule() run_PreventConfigureFileDupBuildRule()
@ -380,7 +383,7 @@ function (run_ChangeBuildType)
set(RunCMake_TEST_OPTIONS "-DCMAKE_BUILD_TYPE:STRING=Debug") set(RunCMake_TEST_OPTIONS "-DCMAKE_BUILD_TYPE:STRING=Debug")
run_cmake(ChangeBuildType) run_cmake(ChangeBuildType)
unset(RunCMake_TEST_OPTIONS) unset(RunCMake_TEST_OPTIONS)
run_ninja("${RunCMake_TEST_BINARY_DIR}" -w dupbuild=err) run_ninja("${RunCMake_TEST_BINARY_DIR}" ${maybe_w_dupbuild_err})
endfunction() endfunction()
run_ChangeBuildType() run_ChangeBuildType()

@ -1 +1,5 @@
.*ninja: error: .* multiple rules generate.*src.ispc_avx512skx.o.* ninja: error:([^
]+multiple rules generate[^
]+src\.ispc_avx512skx\.o|[^
]+src\.ispc_avx512skx\.o[^
]+is defined as an output multiple times)

Loading…
Cancel
Save