Replace our hard-coded default for `/RTC1` with a first-class
abstraction to select runtime checks from an enumeration of logical
names. Add a `MSVC_RUNTIME_CHECKS` target property and corresponding
`CMAKE_MSVC_RUNTIME_CHECKS` variable.
Removing the old default flag requires a policy because existing
projects may rely on string processing to edit them and choose
runtime checks under the old behavior. Add policy CMP0184 to
provide compatibility.
Fixes: #26614
4e6a13f211 Use lower case style for commands
Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Acked-by: Alex Turbov <i.zaufi@gmail.com>
Merge-request: !10245
As a result, the IMPORTED_LOCATION_RELEASE property of the SABIModule target was empty, instead of pointing to the Python runtime library for the Stable Application Binary Interface.
`find_package(CURL CONFIG)` provides `CURL_VERSION` from the upstream
cmake package version file.
Upstream curl commit `699ac9430c` (cmake: publish/check supported
protocols/features via `CURLConfig.cmake`, 2024-12-29) extends the
upstream cmake package to provide our old `CURL_VERSION_STRING`.
Provide both names from CMake's own module to aid transition.
Fixes: #26634
* Updated warnings at the top to a note
* The provided functions are described as titled items and have code
blocks added
* Added missing documentation for the `get_item_rpaths()` function
* Added `IGNORE_ITEM` option to relevant signatures
Revise commit fc7aa3cd69 (tests: Preserve empty arguments in test
command lines, 2024-09-30, v3.31.0-rc1~33^2) to delay variable expansion
until code evaluation. Otherwise we may parse the working directory
path as CMake language code.
CMake now provides the CMAKE_<LANG>_LINK_MODE variable which specify how
the link step is done. So, the CMAKE_<LANG>_USING_LINKER_MODE variable
is no longer needed.
Run the `clang-format.bash` script to update all our C and C++ code to a
new style defined by `.clang-format`, now with "east const" enforcement.
Use `clang-format` version 18.
* If you reached this commit for a line in `git blame`, re-run the blame
operation starting at the parent of this commit to see older history
for the content.
* See the parent commit for instructions to rebase a change across this
style transition commit.
Issue: #26123
Run the `clang-format.bash` script to update all our C and C++ code to a
new style defined by `.clang-format`. Use `clang-format` version 18.
* If you reached this commit for a line in `git blame`, re-run the blame
operation starting at the parent of this commit to see older history
for the content.
* See the parent commit for instructions to rebase a change across this
style transition commit.
Fixes: #26123
77f71ad4e2 Remove compatibility with CMake versions older than 3.5
fb1bd1d330 CMP0065: Remove support for OLD behavior
d9dd38cccf CMP0064: Remove support for OLD behavior
d88047c329 Remove compatibility with CMake versions older than 3.3
ac1a9cb160 CMP0063: Remove support for OLD behavior
36fffb673a CMP0062: Remove support for OLD behavior
789a7d73d4 CMP0061: Remove support for OLD behavior
3dc19e24cb CMP0060: Remove support for OLD behavior
...
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10210
c3777c1536 ci: Extend spellcheck job with 'typos' tool
d11552c2d9 codespell: Exclude paths by patterns following pre-commit check conventions
11d0a631d4 codespell: Split multi-valued configuration across multiple lines
54dfadaf5a ci: Rename "codespell" job to more general name "spellcheck"
17fc94e5e3 ci: Add typos 1.29.4 to Fedora base image
ddf8220572 ci: Use Fedora 41 default flang package now that it is new enough
1e2d19ea4f gitignore: Tell tools honoring .gitignore to ignore .git too
0d0a94bcfb Tests: Fix Fortran syntax for initialized variable
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10211
c0972d2c81 Tasking: Drop extensions from C and CXX standard level flags
Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Josef Angstenberger <code@jtxa.de>
Merge-request: !10208
The implementation in commit 564d527c04 (IAR: Improve error message for
missing license, 2024-08-12, v3.31.0-rc1~234^2) failed for corner cases
in which symlinks were used from a location different from the one in
which the toolkit is shipped with (`<target>/bin`).
In this new implementation, the `<target>` architecture is taken solely
from the compiler NAME itself for all the supported languages and
forwarded to its respective BinUtils executable names
(e.g., `icc<target>`, `iasm<target>`, `a<target>`). This decouples the
location from the subdirectory in which they should be found.
Fixes: #26610
Tasking compiler extensions and language standard flags are not tied
together as they are with gcc/clang. Since CMake does not model
granular abstractions for extensions, leave individual extension flags
to the project or user.
Fixes: #26591
381c446ff7 VS: Remove support for appending a platform to the generator name
dc24d88062 Remove compatibility with CMake versions older than 3.1
90d814f024 CMP0054: Remove support for OLD behavior
292aaffb78 Source: Remove unused cmCommandArgument{Lexer,Parser}
1150fae89a CMP0053: Remove support for OLD behavior
f0b1ca4d70 CMP0052: Remove support for OLD behavior
e4fddc8e37 CMP0051: Remove support for OLD behavior
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10205
fc163f9e43 Tasking: Add support for ASM through the cctc compiler driver
942f0d119b Tasking: Add identification for the tasking assembler
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10163
The Xlib interface to the Xpresent extension was missing from the FindX11 module, so I put it in. The xcb interface is already present.
Xpresent project page: https://gitlab.freedesktop.org/xorg/lib/libxpresent
The _ep_set_directories() function needs to ensure paths passed in
are in the expected CMake path form. The special character that
file(TO_CMAKE_PATH) interprets as a path separator must be
masked to prevent it splitting paths that contain that character
(semicolons on Windows, colons on other platforms).
Fixes: #26490
- Function arguments explained in paragraphs
- A simplified pseudocode illustration added to better understand the
check under the hood
- Usage example added to the bottom
785523a136 Remove compatibility with CMake versions older than 2.8.0
35282387ea CMP0014: Remove support for OLD behavior
fad9c55b8b CMP0013: Remove support for OLD behavior
98a59ba8ad CMP0012: Remove support for OLD behavior
3c0dbb66f5 CMP0011: Remove support for OLD behavior
cf832e75bc CMP0010: Remove support for OLD behavior
77f8c374f3 CMP0009: Remove support for OLD behavior
43ef139567 CMP0008: Remove support for OLD behavior
...
Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !10188
a438a0460a ArgumentParserTypes: implement a workaround for EDG 6 assertion failure
d3edb67134 Tests: disable some tests on Alt Linux due to rpm config
68d730bcff Tests: switch off some RunCMake tests for broken libc on e2k
488de6294a CPack: correctly perform querytags on old versions of RPM
Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !10174
- Commands listed in the usual docs style
- Examples moved to a separate section after the signatures and output
example added for the target properties
Support was added for CMake 3.25 by commit 96bc59b1ca (CUDA: Add Device
LTO support for nvcc, 2022-04-22, v3.25.0-rc1~359^2). While at it:
- Adjust the note about the required policy.
- Document which languages are checked when the LANGUAGES
option is not specified.
The Tasking ASM information module was added by commit 94df5b6ef1
(Tasking: Add support for several compiler toolsets, 2022-07-20,
v3.25.0-rc1~133^2). However, it appears to have been left from pattern
following and did not actually work with the Tasking assembler.
Update it to work when running the assembler through the compiler
driver `cctc`, which supports extensions `.asm` and `.src`.
Fixes: #26425
This describes module macros as a list separately, adds some formatting
with synced lowercase code style, and extends examples a bit.
Additionally, the CMAKE_REQUIRED_QUIET variable is listed.
In some versions of RPM, e.g. 4.0.4, rpmbuild does not understand
--querytags parameter, but rpm does. Such behavior was found on
Alt Linux P10 and Alt Linux Sisyphus (e2k).
Fix use of the `signature::` directive by commit ae558b9ad0 (FindMatlab:
Support REGISTRY_VIEW, 2024-02-08, v3.30.0-rc1~528^2). The directive
was created for use inside `Help/command/*.rst` documents. Using it
in module documentation requires explicit anchors.
MS tooling accepts either `/` or `-`. We prefer the latter because it
interacts better with MSYS shells. Update the table entry from commit
7907c83175 (Link step: Add LINK_WARNING_AS_ERROR target property,
2024-11-06).
In commit cfa888a6e2 (Clang/CUDA: Add language-wide flags when linking
with compiler driver, 2024-10-07, v3.31.0-rc1~12^2) we added the wrong
placeholder to `CMAKE_CUDA_CREATE_SHARED_LIBRARY` to represent the
language-wide flags. The `<FLAGS>` placeholder is for executables.
The `<LANGUAGE_COMPILE_FLAGS>` placeholder is for shared libraries.
The distinction is for historical reasons.
Fixes: #26563
d620d77d26 FindDoxygen: Rename `_Doxygen_dne_header` -> `_Doxygen_do_not_edit_header`
e7ff3cccea PushToAndroidDevice.cmake: Rename `cmake_parse_arguments` prefix
bc8621d999 Fix: A lot of typos in code found by `typos`
b33beb7af5 Help: Fix some typos found by `sphinx-lint`
78e45c2db6 Style: Replace TABs with spaces for indentation in some files
74e0173f66 Tests(NuGet): Fix the test to ignore empty and space-only lines
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10151
The upcoming `typos` spell checker don't like the old prefix,
so to avoid further false-positive, let's rename it to a more generic
and a bit more readable `_arg`.
In some situations, like cross-compilation, it can be required to search for
the host python interpreter as well as the cross-compilation development
artifacts.
By managing different prefixes for the artifacts, multiple and independent
searches can be achieved.
This fixes typos, syncs docs code style a bit and refactors functions
descriptions.
- Initial example improved and synced with the current
`feature_summary()` output
- The global properties are listed with indentation
- Added reference links where it makes sense to better understand the
terminology
- CMake versions added for all properties (they got introduced in CMake
3.8)
- All "macro" words renamed to "function"
- "Legacy Macros" renamed to "Deprecated Functions"
a2f24a7ba7 Tasking: Fix C Compiler standard and extension flags
730f72aa20 Tasking: Fix flag for COMPILE_WARNING_AS_ERROR
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10152
2a0ca6a26d ci: add jobs to test GCC 15-to-be with `import std`
469175c2e6 Experimental: recycle the `import std` UUID
a980dab9b1 gcc: support `import std`
2791b7564b Tests/RunCMake: handle C++26 support where needed
Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !10023
This variable define how the link step is done. Possible values are:
* DRIVER: the compiler is used as driver for the link step
* LINKER: the linker is used directly for the link step.
This was added in commit 98d0f918ba (LFortran: Add support for this
compiler, 2024-01-25, v3.31.0-rc1~303^2~2) because it is needed for
cases covered by CMake's Fortran tests. However, it does not work
with Fortran modules and breaks lfortran's own `examples/project1`.
Move the flag to the test cases that need it, just as the original
commit did with `--implicit-interface`.
Fixes: #26597
Co-authored-by: Brad King <brad.king@kitware.com>
Update the list of known versions.
Run the command
cmake -DBOOST_DIR=/path/to/boost_1_87_0 \
-P Utilities/Scripts/BoostScanDeps.cmake
to extract dependencies from the 1.87.0 source tree.
Dependencies differ from 1.86:
* Boost.Log no longer depends on Boost.Chrono
Fixes: #26562
This adds a new keyword OPTIONS which is a semicolon-separated list of
command-line options added to bison command line. This enables adding
options more intuitively. It mainly adds options as quoted arguments
which among other things enables adding paths containing spaces and
similar.
Fixes:
- https://gitlab.kitware.com/cmake/cmake/-/issues/23301
This adds a new keyword OPTIONS which is a semicolon-separated list of
command-line options added to flex command line. This enables adding
options more intuitively. It mainly adds options as quoted arguments
which among other things enables adding paths containing spaces and
similar.
Fixes:
- https://gitlab.kitware.com/cmake/cmake/-/issues/23301
This ensures that a user after providing custom flags
will first see that attempt. Previously the compiler attempt with the user flags could have been lost due to
console log buffer / scrolling support
This syncs the code style using lowercase, explains the behavior in a
paragraph-style like in other chapters, and adds few basic usage
examples. Additionally, an explanation is added, when to use this
module.
The `find_package_handle_standard_args(FOUND_VAR)` is deprecated as of
CMake 3.3 and both the `<PackageName>_FOUND` and the upper-cased
`<PACKAGE_NAME>_FOUND` are set with or without using this option.
Additionally, find modules and docs are also synced with this to make it
clearer.
Bison and Flex executables at the time of writing don't create
output directories when generating files. In most cases this isn't issue
if the build directory is created before running bison or flex. If any
of the output directories that can be determined isn't available, these
modules now create them before running the bison or flex command.
Issue: #19529
This uses the lowercase command signature and refactors the description
according to other similar documentation pages.
The LANGUAGE option is described separately.
This is a follow-up of 3ffc8a6b61
When using generator expressions in the COMPILE_FLAGS argument, and the
generator expression expands to an empty string, command gets an empty
argument with double quotes where flex command-line tool errors out
with `/usr/bin/flex: can't open` error. This removes empty arguments
from the created flex command.
c4f64cee36 CMakeParseImplicitLinkInfo: Do not mistake ld.so for a linker
a47283801e hurd: Add GNU linker options
4d1066c578 hurd: Add more GNU options support
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10092
Our pattern meant to match `/usr/bin/ld`, `ld.exe`, etc., unfortunately also
captures `ld.so`, which happens to be the dynamic linker on x86 GNU/Hurd.
Through `linker_tool_regex`, this:
elseif("${line}" MATCHES "${linker_tool_regex}")
set(linker_tool "${CMAKE_MATCH_2}")
endif()
is then assuming that:
/.../collect2 [...] -dynamic-linker /lib/ld.so [...]
claims the linker to be `/lib/ld.so`, and stops there, without noticing
further down in the log:
/usr/bin/ld [...] -dynamic-linker /lib/ld.so [...]
which is what should be claiming `/usr/bin/ld` is the linker.
To enable to locate development artifacts, in the context of virtual
environment, without requiring Interpreter component, rely on the
configuration file pyvenv.cfg.
Fixes: #26505
f06b2af291 Tests/FindRuby/Rvm: Honor Ruby_FIND_VIRTUALENV ONLY
a023377b86 FindRuby: Move checking of RVM and System Ruby to separate functions.
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10071
30139913e9 VS: Restore support for mixing C++23 and C in one target with clang-cl
57da8712c1 VS: Factor out check for mixed C and C++ target
Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !10082
Since commit 474eafe28c (clang-cl: Add support for C++23, 2024-09-13,
v3.31.0-rc1~97^2) we use a Clang-specific flag to enable C++23 since
`clang-cl` has no `-std:c++23` flag, and `-std:c++latest` may enable an
even newer version of C++. However, in `.vcxproj` files there is no way
to express a target-wide `-clang:-std=c++23` flag for only C++ sources
when the target also has C sources. Add a special case to map back to
`-std:c++latest` for targets with C++23 and C together.
Fixes: #26508
De-duplicate IBMClang compiler information by detecting the base clang
version and following the same logic as we do for any other clang of
that version. This helps maintain support for new IBMClang features
inherited from new base Clang versions.
We already use this approach for other Clang variants, like CrayClang
and FujitsuClang.
2709f07b4d VS: Add minimal support for Windows Kernel Mode Drivers
fec276e632 cmVisualStudio10TargetGenerator: Use inline member initialization
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10042
48bf16fba1 FindRuby: Remove unneeded code and define all functions at the top-level.
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10063
ff65c5fca0 FindPython: Ensure SABIModule is found in all cases
Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !10058
ff65c5fca0 FindPython: Ensure SABIModule is found in all cases
Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !10058
The GNU `ld(1)` manual documents the `--dependency-file=depfile`
single-argument form of the flag. Prefer it over the multi-argument
`--dependency-file depfile` form so that only one argument needs to be
passed through the compiler driver by `-Wl,` or equivalent. This may
improve diagnostics in cases where it is unsupported, making them easier
to diagnose.
Issue: #26483
a67df19d82 FPHSA: Consistent quoting in reported messages
440d4446f5 FPHSA: Consistent character case when mentioning the command name
998d5b1ad0 FPHSA: Consistent style for CMake command calls
c1d49b3f3c FPHSA: Refactor to use `ZIP_LISTS`
Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !10044
Our development workflow tooling prevents trailing blank lines
from being added, but some such lines remain from before that
was enforced. Remove them to make it easier to rename files
without triggering enforcement.
Add an `INSTALL_JOB_SERVER_AWARE` option to `ExternalProject_Add`.
When using an explicit `INSTALL_COMMAND`, the generated commands
won't use `$(MAKE)` thus failing to connect to the outer make's
job server. Add an option enable explicit job server integration.
This is the install step's equivalent to the build step's
`BUILD_JOB_SERVER_AWARE` option added by commit bc43398e72
(ExternalProject: Enable Make Job Server with Explicit Build Command,
2023-08-09, v3.28.0-rc1~217^2). It is useful when the external
project's installation is driven by its build system. Note that with
Makefile generators, our default install command does use `$(MAKE)` to
connect to the outer make's job server.
Issue: #26398
Two features in FindPkgConfig were added in a CMake version where
they were initially broken, and could only be used once the
implementation was fixed in a later version.
Previously, the docs contained a `.. versionadded` tag denoting the
version where the _broken_ implementation was introduced (its true
"version added", if we're being literal), with a comment in the
documentation source noting that the feature didn't actually work
correctly until whatever later version the comment specifies.
Since that's completely backwards, from a user perspective, reverse
the documentation so that the `.. versionadded` message shows when
the feature first worked **correctly**, with a comment noting that
support was technically introduced in an earlier version, but in a
broken/nonfunctioning state.
Setting the `armlink --list` option without other diagnostic flags is
misleading because it produces an empty file and prevents the user from
printing diagnostics to the standard output or redirecting them to
another file.
It's unclear why the flag was added when support for ARMClang was first
added by commit 7b0abaac31 (ARMClang: Add support for Clang-based ARM
compiler, 2019-05-13, v3.15.0-rc1~111^2).
Fixes: #21538
Since commit 11da882a12 (Apple: Introduce separate system name for iOS,
tvOS, and watchOS, 2018-01-15, v3.14.0-rc1~14^2~1) our toolchain
inspection steps, like ABI detection, tell `try_compile` to use a
`STATIC_LIBRARY` instead of an `EXECUTABLE`. This was needed at the
time to avoid codesign requirements. However, commit d3a64c4e3f (Xcode:
Explicitly turn off signing in try_compile projects, 2020-07-16,
v3.19.0-rc1~483^2) introduced a more general solution to that problem.
Restore linking during toolchain inspection so that we can detect and
identify the linker.
Suggested-by: Marc Chevrier <marc.chevrier@gmail.com>
Fixes: #26443
007d7ea648 GoogleTest: Avoid extra call to set DISABLED test property in discovery
9a24c1e802 GoogleTest: Clear script content buffer on flush and flush less often
Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !9982
007d7ea648 GoogleTest: Avoid extra call to set DISABLED test property in discovery
9a24c1e802 GoogleTest: Clear script content buffer on flush and flush less often
Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !9982
When bootstrapping Debian for musl-linux-any, the multiarch directories
are not found due to an overly-specific regular expression.
See https://bugs.debian.org/1085507 for the original bug report.
The following platforms were missing:
* Android
* WindowsCE, WindowsPhone, WindowsStore and WindowsKernelModeDriver
And enhance various Apple platforms support (iOS, tvOS, etc...)
Fixes: #26439
The `magick-baseconfig.h` header has been moved to a different subdirectory.
See https://bugs.debian.org/1087233 for the original bug report in Debian.
For very long test names, this can noticeably reduce the size of the
generated file contents when tests are disabled. This change reduces
how far beyond the flush threshold the content can grow before being
flushed.
Issue: #26431
There's no need to check if flushing is needed after every command
is added to the variable holding the script content. It is enough to only
check once per test name. This simplifies the flushing logic, removing
the need for a separate flush_script() command. Previously, we were
not clearing the flushed script contents in all cases, but this is now
rigorously enforced at the one location where flushing is performed.
Also simplify the flushing of the list of test names, since that too doesn't
need a separate command. It is simpler and safer to handle that
directly inline where the one call to flush_tests_buffer() was
previously being made.
Fixes: #26431
Add a way to specify, in a portable way, to raise an error for any
warning during the link step. For that purpose, define:
* CMAKE_LINK_WARNING_AS_ERROR variable
* LINK_WARNING_AS_ERROR target property
Fixes: #25343
Update the list of known versions.
Run the command
cmake -DBOOST_DIR=/path/to/boost_1_86_0 \
-P Utilities/Scripts/BoostScanDeps.cmake
to extract dependencies from the 1.86.0 source tree.
They are the same as 1.85's dependencies, so just update
the version check for warning about newer versions.
Fixes: #26433
On modern macOS, compiler wrappers like `/usr/bin/cc` automatically
choose a SDK to pass via `-isysroot` to an underlying compiler from
Xcode or the CommandLineTools. Other toolchains like Homebrew's `gcc-*`
come with a default SDK too. Therefore, when targeting macOS, we no
longer need to choose any SDK or pass an `-isysroot` flag by default.
Update initialization of `CMAKE_OSX_SYSROOT` to be empty by default when
targeting macOS.
Fixes: #19180
Since commit 03ab170fe0 (OS X: Enable command-line build without tools in
PATH, 2013-08-05, v2.8.12~111^2) we find compilers such as
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc
when there is no corresponding compiler in the PATH. However, modern
macOS versions always have `/usr/bin/cc` in the PATH, so this code path is
never taken (similarly for `make`). Even if it were, the compilers in
Xcode cannot be used by build systems that do not add an `-isysroot` flag.
Instead, they should be used through the `/usr/bin/cc` wrapper, which
internally calls Xcode's compiler with a default `-isysroot` flag.
Revert commit 1f085e11e4 (OS X: Resolve compiler in /usr/bin to that
reported by Xcode xcrun, 2015-01-03, v3.2.0-rc1~126^2~1). The compilers
in Xcode cannot be used by build systems that do not add an `-isysroot`
flag.
Issue: #19180
When `-pipe` is enabled, GCC passes data among its different executables
using pipes instead of temporary files. This leads to issues when cmake
attempts to infer compiler internals via the `-v` flag as each
executable will print to `stderr` in parallel. Avoid this by stripping
`-pipe` from the compilation flags during compiler inspection.
This extends commit d5895f50c3 (CMakeDetermineCompilerABI: Avoid failing
on warnings with -Werror, 2020-01-30, v3.17.0-rc1~32^2).
34067963cc LFortran: Improve detection of implicit link information for lfortran 0.40+
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9939
34067963cc LFortran: Improve detection of implicit link information for lfortran 0.40+
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9939
When using the WindowsKernelModeDriver, do not add the new paths
if the variable was not previously defined. Instead, append them
to the existing value.
Add a new GUID for the Experimental mode gate
The `BUILD_TESTING` variable is referenced in `add_test` and
`enable_testing`. It should be documented as it controls the
behavior tests working when projects use `include(CTest)`.
The linker configuration file is now optional: It is loaded only if
variable CMAKE_<LANG>_USE_LINKER_CONFIGURATION is set to TRUE.
The file CMakeAddNewLanguage.txt is updated to take into account the
linker configuration.
Fixes: #26393
When using generator expressions in the COMPILE_FLAGS argument, and the
generator expression expands to an empty string, command gets an empty
argument with double quotes where GNU bison command-line tool errors out
with `/usr/bin/bison: extra operand` error. This removes empty arguments
from the created bison command.
In commit 2785364b7b (iOS: Add support for Mac Catalyst, 2024-07-02,
v3.31.0-rc1~371^2) we forgot to update the conditions to use ad-hoc
signing from commit 89e1113e0c (Xcode: Use ad-hoc signing during
compiler id on macOS, 2022-06-10, v3.22.6~4^2~2).
Fixes: #26376
The dependency on nvJitLink was due to misunderstanding how runtime compiled code that uses
LTO is used. It doesn't require nvrtc to have a dependency on nvJitLink, just the caller.
In case libcurl was found via pkg-config, the properties
`INTERFACE_LINK_LIBRARIES`, `INTERFACE_LINK_OPTINS`, and
`INTERFACE_COMPILE_OPTINS` can be populated from the `PC_CURL_*`
variables if available.
Fixes: #26365