Update the Clang version checks added by
* commit eacacc70fc (Clang: use -std=c++23 for Clang 17.0+,
2023-05-08, v3.27.0-rc1~115^2)
* commit 0183956d30 (Clang: C++26 support,
2023-05-16, v3.27.0-rc1~85^2)
to account for Android NDK r26's distribution of a Clang based on a
development version of LLVM/Clang 17.0 that pre-dated addition of
these flags.
Follow the pattern from commit 12e6796b62 (Android: Do not pass
non-existent Clang -std flags, 2018-04-02, v3.12.0-rc1~284^2),
which fixed the same problem for `-std=c++17`.
Fixes: #25281
4089954595 gitlab-ci: update to GCC CI container with merged P1689R5
c2564f5916 ci: drop extra scandep source settings for GCC
ee52a02d56 ci: update GCC build to use master after P1689R5 is merged
4f0410959e GCC: add rules for scanning C++ module dependencies
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !8827
IntelLLVM 2023.0.0 and above emit this remark if `-g` is used without
any `-O<level>` flag, which is our default behavior. Add another flag
to suppress the remark.
48ee946fdc cmExperimental: recycle the C++ modules API UUID
1a1806a71b gitlab-ci: declare `bmionly` support for modules where possible
457a12f3f9 Tests/RunCMake/CXXModules: add tests which use modules from imported targets
9b9ec70b54 Ninja: generate scanning and build rules for C++20 module synthetic targets
80ef50a191 CXXModules: add a variable for BMI-only compilation
80d6544398 cxxmodules: generate synthetic targets as an initial pass
3dc6676ecc cmSyntheticTargetCache: add a struct for synthetic target caching
cb356b540c cmCxxModuleUsageEffects: add a class to capture module usage effects
...
Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !8535
These standard flags will be the same for other C++-derived languages
supported by nvcc. Follow the pattern from commit 25439c7d62 (Clang:
Refactor CXX standard flags ..., 2020-03-16, v3.18.0-rc1~362^2~4) to
factor them into a single macro so we can easily reuse them.
Issue: #25143
According to ARMClang documentation 6.20, the patch version number
should not include the last two digits of `__ARMCOMPILER_VERSION`,
which are reserved for internal use by ARM.
FreeBSD installs both LLVM and gcc with tools named after the
major version, in the form "clang<major>", such as "clang16".
Detect compilers named this way, and find the related toolchain
tools.
Revert commit 6b58cdd4cf (Ninja: Exclude NVHPC -Werror flags during
Fortran preprocessing, 2023-04-04). Since commit 9d40f01442 (NVHPC: Use
-Werror for COMPILE_OPTIONS_WARNING_AS_ERROR, 2023-04-13), `nvfortran`
can handle the plain `-Werror` flag during preprocessing.
Issue: #24665
The IAR linker silencer flag was previously hardcoded in
`CMAKE_${lang}_LINKER_EXECUTABLE`. Move the flag to a place that is
under the end user's control. The default behavior (silenced linker) is
not changed.
Fixes: #24828
The previously-used `-Werror all-warnings` is not supported by
the NVHPC suite of compilers. This previously worked since `-Werror`
was being used and `all-warnings` was being excluded.
We thought this was the correct syntax due to incorrect documentation
about `-Werror`, which stated the argument should be space-separated,
while it should actually be separated with `=` or `,`.
Issue: #24665
The Ninja generator preprocesses Fortran separately in order to scan for
module dependencies. NVHPC's `nvfortran` does not support its `-Werror`
flag while preprocessing with `-E`, so filter it out.
Fixes: #24665
1b7c26da49 Ninja: Wrap rules using '>' shell redirection with 'cmd /C' on Windows
ffd8537acf Clang: Record Clang 16.0 C++ modules flags only for GNU-like front-end
6013227230 cmGlobalNinjaGenerator: Use forward slashes in clang modmap format on Windows
d9d74b5e8a cmDyndepCollation: Drop outdated mentions of CXX_MODULE_INTERNAL_PARTITIONS
edab56d29a cmLocalNinjaGenerator: De-duplicate condition for using 'cmd /C' on Windows
8ebe3f92b3 cmGlobalNinjaGenerator: Detect GNU-like command-line for dyndep collator
f3ca199c9b cmGlobalNinjaGenerator: Factor out GNU-like command-line detection on Windows
f79817fcf0 cmCxxModuleMapper: Use value semantics in path conversion callback
...
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !8346
The settings added by commit 3fe8e33f27 (Clang: Record Clang 16.0 flags
for our experimental C++ modules support, 2023-03-03, v3.26.0-rc6~6^2)
work only for the GNU-like `clang++` front-end, and not for the
MSVC-like `clang-cl` on Windows.
Also quote the path to `clang-scan-deps` to support spaces in its path.
Issue: #24611