Setting `CMAKE_INSTALL_NAME_DIR` or the `INSTALL_NAME_DIR` on Swift
targets had no effect when CMP0157 was set to `NEW`. This was a result
of missing the `<TARGET_INSTALLNAME_DIR>` before the `<TARGET_SONAME>`.
Fix that and add a test to verify that the install name directory is
included in the install name.
Fixes: #26175
In commit 40fa2c1c90 (Tests: Cleanup CMake_TEST_XCODE_VERSION code,
2024-04-29, v3.30.0-rc1~183^2) we accidentally stopped capturing the
stderr from `xcodebuild`, causing it to appear in cmake's output.
The error is incidental and tolerated, so do not let the user see it.
Skip the `CMAKE_OSX_ARCHITECTURES` validation added by commit db409e5e68
(APPLE: Check if compilers respect CMAKE_OSX_ARCHITECTURES, 2024-05-04,
v3.30.0-rc1~15^2) if the value contains a placeholder, since we do not
know the real value.
Fixes: #26128
Move Git-dependent test cases added by commit 2ef3bd9186
(ExternalProject: Add TLS version options for https connections,
2024-02-26, v3.30.0-rc1~471^2) into the block of cases that run only
when Git is found.
Fixes: #26104
In `Tests/RunCMake/LinkerSelection`, Xcode 16 warns when building the
AppleClassic case:
ld: warning: -ld_classic is deprecated and will be removed
in a future release
Tolerate all build warnings.
To properly test some functionality, tests may rely on not clearing
things like time stamps between cmake invocations. The RunCMake
infrastructure clears the build directory by default anyway, and
tests may individually ask for that to be disabled where needed.
The line being removed here was originally added to assist with
manually re-running individual tests locally outside the control of
RunCMake. That is no longer appropriate.
The -direct variants of the RunCMake.FetchContent tests were
meant to be using the same result, stdout and stderr files as the
non-direct tests. The -direct tests were specified in the wrong way
for that and ended up using no files at all, so they weren't testing
the full set of expected conditions. Use the test variant feature
provided by the RunCMake infrastructure instead, which is the
proper way to handle this sort of scenario.
`matlab_get_release_name_from_version("14.10" release_name)` does not
write the `release_name` variable if the `14.10` is not a known version,
so before checking for the variable to be empty, we should set it to an
empty value.
`matlab_add_mex` uses the plain signature of `target_link_libraries`,
so we need to use the plain signature also outside of `matlab_add_mex`
to avoid a configuration error.
This allows particular frameworks to be targeted by
particular dependencies, and for empty dependency
groups to satisfy NuGet's framework-matching
requirements.
Projects may be generating a list of files or directories to pass as arguments
to file(TOUCH), file(TOUCH_NOCREATE), or file(MAKE_DIRECTORY). Those
lists might end up being empty, so rather than requiring at least one item,
allow an empty list.
Fixes: #24897
The file(MAKE_DIRECTORY) implementation checks whether a path is
allowed to be written to before it checks if it already exists. For the
scenario where a SOURCE_DIR is an existing directory within the main
project's source directory, this triggers a fatal error if
CMAKE_DISABLE_SOURCE_CHANGES is set to true for ExternalProject,
and some FetchContent scenarios. Therefore, add an explicit check for
existence first to avoid making such error-triggering calls.
Fixes: #21872
The test project now rebuilds `link_depends_no_shared_exe` in `Debug`
builds. MSBuild `-v:diag` shows:
Source compilation required:
input C:\...\DEBUG\LINK_DEPENDS_NO_SHARED_LIB.PDB is newer
than output C:\...\DEBUG\LINK_DEPENDS_NO_SHARED_EXE.EXE.
Use the `Release` configuration instead.
MSVC 14.38+ toolsets deprecate `stdext::checked_array_iterator`.
Support building with versions of Qt that have not been updated
to avoid the deprecated API.
Qt-Issue: https://bugreports.qt.io/browse/QTBUG-118993
When using `dpkg-shlibdeps` to automatically determine package
dependencies it considers the RUNPATH/RPATH of executables in order to
find all required shared libraries of such executables.
If the RUNPATH/RPATH contains a verbatim `$ORIGIN` (respective
`${ORIGIN}`), it will now be substituted by the packaging-paths of other
components that are marked as dependency and those paths will then be
used as additional search directories for `dpkg-shlibdeps`.
Associated tests were added as well.
Fixes: #21838
FETCHCONTENT_FULLY_DISCONNECTED should only be set to true if
each dependency's source directory has already been populated.
Previously, this wasn't being checked, but now it is (subject to a new
policy).