The Pelles C compiler does not support ASM, and the `poasm` assembler
uses a distinct syntax. Add a dedicated language as we do for similar
cases from other vendors. Leave documentation commented out for now
because the PellesC toolchain support in general is not yet documented.
Fixes: #27758
Issue: #21536
Co-authored-by: Serguei E. Leontiev <leo@sai.msu.ru>
Generate a script that contains a `gtest_discover_tests_impl` call
and use that script for both discovery modes: Either execute it via
`-P` for the POST_BUILD mode, or include it in the test script for
the PRE_TEST mode.
The PellesC toolchain provides a `porc` tool to compile them.
Note that `polib` fails to archive resource files (`.res`):
POLIB: fatal error: An internal error occurred
Turn off the static library part of the VSResource test.
Issue: #21536
Inspired-by: Serguei E. Leontiev <leo@sai.msu.ru>
Xcode 26.4's iPhoneOS SDK advertises arm64e (not arm64) in
libSystem.tbd. After stripping the platform suffix, the arch list
contains arm64e, which doesn't match when CMAKE_OSX_ARCHITECTURES
includes arm64. As a result, arm64 falls through to the simulator
SDK, silently breaking iOS device builds.
Since arm64e is a superset of arm64 (all arm64e devices run arm64
binaries), we now fall back to checking for arm64e when arm64 is
not found in an SDK's architecture list.
Add bare minimum functionality to compile C code and link on Windows.
Explicitly label tests that are expected to work with `CFLAGS=-Ze`.
Leave out documentation for now because this is not usable in general.
Issue: #21536
Inspired-by: Serguei E. Leontiev <leo@sai.msu.ru>
This compiler uses GCC's standard library, and so limits `__cplusplus`
to that of the GCC toolchain. However, it defines feature macros that
we can use to distinguish this mode.
Since commit 4a4986d28a (cxxmodules: support command templates for BMI
compilation, 2026-03-25, v4.3.1~2^2~1) we can express module interface
unit compilation to either object files or BMI-only in a way that works
with `clang-scan-deps` and `clang-cl` together.
Fixes: #25731
7ebb5687ab cmGeneratorTarget: use typename for `flag`
4a4986d28a cxxmodules: support command templates for BMI compilation
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !11871
Some compilers (Clang) warn when using their BMI-only flag with `-c`.
Support a complete template for BMI compilation rather than an
additional flag to support such toolchains.
Fixes: #27600
e6a544836b Rust: Update experimental UUID
881faf67e5 Rust: Switch to building .rs files to .rlib instead of native object files
942ddcdd36 Rust: Add support for position independent code
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !11686
Each Rust source file given to a target is considered a separate crate
root. There's a concept of a "main crate root", which is the `.rs` file
that is given to the final linker phase in CMake. Other Rust source file
in a target are built as rlib separately.
The project can still build `.rs` files into object files by setting the
Rust_EMIT property on the desired source file.
Add a version file based on the languages of the source files rather
than languages that have been enabled.
Populate link flags and map files for Fortran.
Fixes: #25068
On non-iOS systems, Vulkan Layers are loaded dynamically by the Vulkan
Loader at run-time. On iOS systems, they are provided as frameworks to
be bundled with an application, so there must be a way to discover those
dependencies as well.
Inspired by the FindVulkan module in `KhronosGroup/Vulkan-Samples`.
Co-Authored-By: Brad King <brad.king@kitware.com>