Intel oneAPI distributions no longer include the `ifort` compiler, but
its Visual Studio Integration defaults to `ifort` if `ifx` is not
explicitly specified in the `.vfproj` file. We cannot change the
default Fortran compiler in VS 17 and older, but since the VS 18
generator is new, we can establish `ifx` as its default. This
establishes working defaults on new versions of VS and oneAPI while
retaining existing behavior on older versions.
Issue: #26415
47c784ba8a Help: Add release note for Visual Studio 18 2026 generator
cd46d8ec84 Merge branch 'backport-vs2026' into vs2026
3392b371e2 VS: Add Visual Studio 18 2026 generator
7f0883ac04 VS: Remove unused generator code
6f0d245083 VS: Fix `/dynamicdeopt` flag table entry order for v145 toolset
398ce8af72 VS: Remove `/guard:cf` from v145 link flag table
5c9085d876 VS: Remove `/MERGE` from v145 link flag table
fe5c78310c VS: Map the link `/debug` flag for v145 toolset
...
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !11168
85e536b5eb gitlab-ci: test `CMAKE_CXX_STDLIB_MODULES_JSON` in CI
42621a232b Tests/CXXModules: add a label
2f101b2c8c Tests/CXXModules: support testing with custom stdlib json locations
6c178a4ae3 Tests/RunCMake: add newlines in CXXModules options
2b85541e39 cxximportstd: support setting the `import std` metadata location
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !11175
Some deployments may not be able to discover the metadata file reliably
(e.g., custom `clang` builds on macOS while using the SDK's stdlib or
distribution bugs). Allow users to force the location so that
compiler-driven detection doesn't have to bend over backwards for
unforeseen bugs.
Projects which ship object files as artifacts may want to control the
object names as much as possible. Support setting explicit object names
as source file properties to support such use cases.
CMake historically has forced an `objects[-<CONFIG>]/<TARGET_NAME>`
subdirectory under an `OBJECT` library installation's `OBJECTS
DESTINATION` which may be unwanted. Support skipping this component
with a target property.
The references to the <ORIGIN>_autogen and
<ORIGIN>_autogen_timestamp_deps anchors were being replaced by the
section heading text that immediately followed the anchors. But in most
cases, the text where the cross-referencing was placed was expecting the
anchor text to be used instead. Add custom text for such cross-references
so that the text reads as originally intended.
This adds few adjustments for position independent code descriptions.
* CheckPIESupported:
The output of check_pie_supported() is already logged in details by
the try_compile event. To make the example a bit nicer to use in
projects the message(VERBOSE) is used instead of the WARNING. In case
of MSVC, there isn't anything to warn about as it isn't supported by
default.
Added intro code block showing how to include this module.
Synced descriptions.
Fixes: #22360
The `-lld` linker flag was added from the previous command-line script
that have all values in `CMAKE_DL_LIBS` prepended with `-l`.
On AIX, the `dlopen()` is otherwise in C library (default). But it seems
that also `libld` library was once needed on some versions to have
dynamic loading working.
Sync `CMAKE_DL_LIBS` value style with all other current usages.
- Fixed typo in the module description.
- Added examples section highlighting the code migration towards the
`CMAKE_<LANG>_BYTE_ORDER` variable.
- Documented command similar to other modules.
- Added examples for the `CMAKE_<LANG>_BYTE_ORDER` variable and
explained when endianness for different languages can be used.
Add an argument to the `project` command to allow specifying a license
for a project as a whole. This is in addition to specifying licenses on
individual targets, and will be used to set the license(s) on exported
packages.
Also, move listing of `COMPAT_VERSION` variables to follow
lexicographical order.
Historically, find_package() does not guarantee the order in which directories
matching a search path containing a glob expression are processed in - the
"first valid package" will be selected if there are multiple candidates. In such
cases, which package is chosen is completely random and can change, potentially
leading to build failures and reproducibility issues. This is rather unexpected
and confusing for developers.
Now that CMake has bumped its major version, it's a good time to change default
sort order and direction could be changed to natural sorting with a descending
order. That will result in the newest version of a library being picked in case
there are multiple ones available.
98837b42c3 Help: minor reference and markup fixes
b634998727 Help: add and make references to generators consistent
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10877
Tweak documentation of project `_COMPAT_VERSION` variables to note when
they were added. Note that, while these are "experimental" for now,
they are always set; the experimental gate is only required for them to
be set to non-empty values (and since they are optional, they may be
empty regardless).
With IntelLLVM on Windows, we link using the compiler driver.
With MSVC on Windows, we invoke the linker directly. If we
use both in a single build tree, for separate languages,
the value of `CMAKE_LINK_DEF_FILE_FLAG` conflicts. Add a
per-language `CMAKE_<LANG>_LINK_DEF_FILE_FLAG` variable to
avoid the conflict. Preserve the language-agnostic variable
for compatibility with projects that reference it.
Fixes: #26005