Commit Graph

399 Commits

Author SHA1 Message Date
Brad King
47d3a9b2da VS: Add CUDA flag table entry for nvcc --keep flag
Fixes: #27380
2025-11-12 15:04:09 -05:00
Brad King
6f0d245083 VS: Fix /dynamicdeopt flag table entry order for v145 toolset
Sort the longer options before the shorter ones.
2025-09-10 17:01:12 -04:00
Brad King
398ce8af72 VS: Remove /guard:cf from v145 link flag table
Apply the change from commit 9e24437c91 (VS: Remove the '/guard:cf' flag
from v143 link flag table, 2022-01-11, v3.22.2~7^2) to the v145 flag
table.
2025-09-10 17:01:12 -04:00
Brad King
5c9085d876 VS: Remove /MERGE from v145 link flag table
Apply the change from commit b933584a72 (VS: Remove the /MERGE flag from
v143 link flag table, 2021-07-14, v3.21.1~29^2~11) to the v145 flag
table.
2025-09-10 17:01:12 -04:00
Brad King
fe5c78310c VS: Map the link /debug flag for v145 toolset
Apply the change from commit d3175a6079 (VS: Map the link `/debug` flag
for v143, 2021-07-14, v3.21.1~29^2~12) to the v145 flag table.
2025-09-10 17:01:12 -04:00
Brad King
9b3b857a2c VS: Fix /MANIFESTUAC: link flag mapping for v145 toolset
Apply the change from commit 9e10045552 (VS: Fix `/MANIFESTUAC:` link
flag mapping for v143, 2021-07-14, v3.21.1~29^2~13) to the v145 flag
table.
2025-09-10 17:01:11 -04:00
Brad King
d2c43f5df6 VS: Remove C++ module CompileAs flag table entries for v145 toolset
Apply the change from commit 937f454fb9 (VS: Remove C++ module CompileAs
flag table entries for v142 and v143, 2021-07-26, v3.21.1~3^2) to the
v145 flag table.
2025-09-10 17:01:11 -04:00
Brad King
dcc54ae656 VS: Remove cl /FS entry from flag table for v145 toolset
Apply the change from commit 8fb349a80e (VS: Remove cl /FS entry from
flag table for v142 and v143, 2021-07-26, v3.21.1~3^2~1) to the v145
flag table.
2025-09-10 17:01:11 -04:00
Brad King
843a6232f7 VS: Remove broken /fsanitize= entries from flag table for v145 toolset
Apply the change from commit 919fc7fd5f (VS: Remove broken EnableASAN
entry from flag table for v143, 2021-07-14, v3.21.1~29^2~2) to the v145
flag table.  Extend it to the fuzzer variant too.
2025-09-10 17:01:11 -04:00
Brad King
3dcd6b9610 VS: Add -Zc:inline[-] flag table entry for v145 toolset
Apply the change from commit cccef3c5b4 (VS: Add `-Zc:inline[-]` flag
table entry for v143, 2021-07-14, v3.21.1~29^2~9) to the v145 flag
table.
2025-09-10 17:01:11 -04:00
Brad King
b67bc3ba5b VS: Add /Y- flag table entry for v145 toolset
Apply the change from commit 3322bb7081 (VS: Populate `/Y-` flag table
entry for v143, 2021-07-14, v3.21.1~29^2~8) to the v145 flag table.
2025-09-10 17:01:11 -04:00
Brad King
711ccd1583 VS: Fix /reference and /headerUnit flag table entries for v145 toolset
Apply the change from commit 3f9ef3703a (VS: Fix /reference and
/headerUnit flag table entries for v142 and v143, 2021-08-10,
v3.21.2~11^2) to the v145 flag table.
2025-09-10 17:01:10 -04:00
Brad King
86d1b51494 VS: Fix -ifcOutput flag table entry for v145 toolset
Apply the change from commit a22e9e7cf0 (FlagTables: `-ifcOutput` takes
a subsequent argument, 2023-10-16, v3.28.0-rc2~2^2~1) to the v145 flag
table.
2025-09-10 17:01:10 -04:00
Brad King
a926e63864 VS: Add /JMC- flag table entry for v145 toolset
Apply the change from commit 993d706a17 (VS: Populate `/JMC-` flag table
entry for v143, 2021-07-14, v3.21.1~29^2~6) to the v145 flag table.
2025-09-10 17:01:10 -04:00
Brad King
54a5772ce6 VS: Add /FI flag table entry for separate argument to v145 toolset
Apply the change from commit 20cd951c9f (VS: Add compiler flag table
entry for -FI followed by separate argument, 2022-04-01,
v3.24.0-rc1~351^2) to the v145 flag table.
2025-09-10 17:01:10 -04:00
Brad King
267dec2d42 VS: Fix /analyze:log flag mapping for v145 toolset
Apply the change from commit 2d64b01223 (VS: Fix `/analyze:log` flag
mapping for v143, 2021-07-14, v3.21.1~29^2~10) to the v145 flag table.
2025-09-10 17:01:10 -04:00
Brad King
aa0e87f50f VS: Add -Qspectre- flag table entry for v145 toolset
Apply the change from commit a070d87e08 (VS: Populate `-Qspectre-` flag
table entry for v143, 2021-07-14, v3.21.1~29^2~7) to the v145 flag
table.  Sort the longer options before the shorter ones.  Remove the
default variant with an empty switch.
2025-09-10 17:01:10 -04:00
Brad King
730eea86e7 VS: Fix /sourceDependencies flag table entries for v145 toolset
Apply the pattern from commit 1ac1436b25 (VS: Fix `/sourceDependencies`
flag table entries for v143, 2021-07-14, v3.21.1~29^2~1) to the v145
flag table.

Also map `/sourceDependencies:directives` to `/scanDependencies` as we
do for the v142 and v143 toolsets.
2025-09-10 17:01:10 -04:00
Brad King
c2dc6fe566 VS: Fix /scanDependencies flag table entries for v145 toolset
Apply the pattern from commit 50f3c58083 (FlagTables: Add entries for cl
-scanDependencies flag, 2023-10-16, v3.28.0-rc2~2^2) to the v145 flag
table.
2025-09-10 17:01:09 -04:00
Brad King
574e5a159e VS: Add /arch:NotSet flag table entry for v145 toolset
Apply the change from commit 0031d5effa (VS: Add `/arch:NotSet` flag
table entries for v14x toolsets, 2023-09-27, v3.28.0-rc1~36^2) to the
v145 flag table.
2025-09-10 17:01:09 -04:00
Brad King
9a6041bb69 VS: Add /clr:netcore flag table entry for v145 toolset
Apply the change from commit eef13a4b33 (VS: Add COMMON_LANGUAGE_RUNTIME
support for "netcore", 2022-10-25, v3.26.0-rc1~465^2) to the v145 flag
table.
2025-09-10 17:01:09 -04:00
Brad King
c3ecdb49d5 VS: Add v145 flag tables for VS 18.0 Insiders
Run the commands

    python3 Source/cmConvertMSBuildXMLToJSON.py -t v145 \
        'c:/.../18/Insiders/MSBuild/Microsoft/VC/v180/1033/cl.xml'
    python3 Source/cmConvertMSBuildXMLToJSON.py -t v145 \
        'c:/.../18/Insiders/MSBuild/Microsoft/VC/v180/1033/cl.xml'

To generate `Templates/MSBuild/FlagTables/v143_{CL,Link}.json`.
We can reuse `Templates/MSBuild/FlagTables/v14_LIB.json`.
2025-09-10 17:00:32 -04:00
Brad King
76d88f7895 VS: Add CSharp VS 2026 compiler version and flag table v145
While the flag tables for C and C++ were generated from MSBuild `.xml`
files, the CSharp flag tables were written by hand.  Copy the `v143`
flag table to use for the `v145` toolset.
2025-09-08 20:24:14 -04:00
Yonggang Luo
9a720d96eb clang-cl: Add support for C23
Although there is no `cl -std:c23` flag, the underlying Clang compiler
does have a C23 mode we can activate by passing `-std=c23` through a
`clang-cl` wrapper flag.

Also port the fix from commit 30139913e9 (VS: Restore support for mixing
C++23 and C in one target with clang-cl, 2024-12-09, v3.31.3~10^2).

Fixes: #27038
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
Co-authored-by: Brad King <brad.king@kitware.com>
2025-07-01 11:20:56 -04:00
Daniel Pfeifer
8b8f96f8e6 CTest Module: Port from DartConfig to CTest Script 2025-03-24 16:21:28 +01:00
Brad King
3f29c9d457 Merge topic 'msvc-c++23'
b3f1c60aff MSVC: Use -std:c++23preview flag for C++23 when available
1b4a802413 MSVC: Split C++23 flag selection into dedicated block

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10462
2025-03-13 09:40:55 -04:00
Brad King
b3f1c60aff MSVC: Use -std:c++23preview flag for C++23 when available
This was added by VS 17.13.

Fixes: #26692
2025-03-12 14:50:32 -04:00
Nikita Nemkin
f9551f8bd7 TestDriver: Fix -Wstrict-overflow for GCC 7 and earlier
Fixes: #13955
2025-02-22 19:13:30 +05:00
Alex Turbov
78e45c2db6 Style: Replace TABs with spaces for indentation in some files
Mark files that must use TABs to indent in the `.gitattributes`.
Use space instead of TABs in sources and some data/test files.
2025-01-12 18:49:25 +04:00
Matthew Woehlke
99ac59d31b style: Remove trailing blank lines from all CMake sources
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.
2024-11-21 15:48:02 -05:00
Brad King
7605228f5e codespell: Fix typos 2024-10-25 08:43:04 -04:00
Brad King
4a259d82ad Templates: Remove unused and undocumented CTestScript.cmake.in
The file was added by commit 3006560d86 (ENH: Add template of ctest
script, 2006-04-28, v2.6.0~3433), but we do not use it for anything.
Technically it was public-facing by being in the `Templates/` directory,
but was never documented.
2024-08-20 13:20:11 -04:00
Ben Boeckel
50f3c58083 FlagTables: Add entries for cl -scanDependencies flag
As of VS 17.6, MSBuild maps `ModuleDependenciesFile` to this flag
instead of the older `-sourceDependencies:directives` flag.
Map both flags to `ModuleDependenciesFile` for compatibility.
2023-10-17 09:51:53 -04:00
Ben Boeckel
a22e9e7cf0 FlagTables: -ifcOutput takes a subsequent argument 2023-10-16 22:12:39 -04:00
Stewart L. McCready
0031d5effa VS: Add /arch:NotSet flag table entries for v14x toolsets
Add `/arch:NotSet` to set `EnableEnhancedInstructionSet` to `NotSet`.

Discourse-topic: https://discourse.cmake.org/t/8892
2023-09-27 11:30:41 -04:00
Sylvain Joubert
ca2a84c3d7 TestDriver: Fix 'misc-use-anonymous-namespace' warning from clang-tidy 16
C++ best practices recommend using anonymous namespace instead of a global
static qualifier.
2023-04-25 12:54:31 +02:00
Brad King
24bcad5bac VS: Honor compile options for ASM_NASM
The Ninja and Makefile generators honor `target_compile_options` and
friends for ASM_NASM `.asm` sources.  Teach the VS generator to
honor them too for consistency.

Issue: #24289
2023-01-26 13:51:49 -05:00
Brad King
b44714a642 VS: Honor compile options for ASM_MARMASM
The Ninja and Makefile generators honor `target_compile_options` and
friends for ASM_MARMMASM `.asm` sources.  Teach the VS generator to
honor them too for consistency.

Issue: #24289
2023-01-26 12:56:25 -05:00
Brad King
64303b9743 ASM_MARMASM: Fix VS flag table entry for debug flag
`$(VCTargetsPath)\BuildCustomizations\marmasm.xml` defines the
`GenerateDebugInformation` boolean setting to map to `-g`.
2022-12-15 14:05:53 -05:00
Ilia K
3166547cf6 ASM_MARMASM: Add support for Microsoft ARM assembler language
https://learn.microsoft.com/en-us/cpp/assembler/arm/arm-assembler-reference

Fixes: #23999
2022-11-09 10:22:46 -05:00
ζeh Matt
eef13a4b33 VS: Add COMMON_LANGUAGE_RUNTIME support for "netcore"
Generate `CLRSupport` for Visual Studio projects.

Fixes: #22054
2022-10-28 11:55:58 -04:00
Mis, Piotr
9c33824474 VS: Fix MSBuild property for nostdlib flag
The C# flag table added by commit 9b06c22648 (VS: Add flag tables for
C#, 2016-12-01, v3.8.0-rc1~230^2) and preserved by commit 6e947179a8
(Add json flag tables for C#, 2018-11-21, v3.14.0-rc1~282^2~27) was
written by hand.  Fix the entry name for the `NoStdLib` property.

Fixes: #24077
2022-10-25 11:40:13 -04:00
Brad King
2f8d443e34 Merge topic 'vs-csharp-debug-embedded'
fec515d5fb VS: Add CSharp flag table entry for '/debug:embedded'

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7483
2022-07-20 08:55:59 -04:00
TheApplePieGod
fec515d5fb VS: Add CSharp flag table entry for '/debug:embedded'
Fixes: #23713
2022-07-20 08:42:21 -04:00
Robert Maynard
e3983168da CUDA: MSVC pass all cuda gencode flags via AdditionalOptions
Fixes #23491
2022-06-16 08:13:57 -04:00
Brad King
20cd951c9f VS: Add compiler flag table entry for -FI followed by separate argument
The MSVC `/FI` flag accepts an attached value or a following argument.
Previously our flag tables only had entries for the former.  Add
the latter.

Fixes: #23382
2022-04-01 16:37:08 -04:00
Brad King
67cb256cfe Merge topic 'vs2022-v143-link-guard-cf'
9e24437c91 VS: Remove the '/guard:cf' flag from v143 link flag table

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6858
2022-01-13 15:18:49 -05:00
Benjamin Sluis
9e24437c91 VS: Remove the '/guard:cf' flag from v143 link flag table
Apply the change from commit db35e3cfd6 (VS: Fix support for '/guard:cf'
linker flag for v142, 2019-01-24, v3.14.0-rc1~74^2~2) to the v143 flag
table.

The entry for `LinkControlFlowGuard` in `v143_Link.json` does not work
when used in a `.vcxproj` file.  Drop our link flag table entries for
this toolset so that the flag will be passed via `AdditionalOptions`.

Also add a test case.
2022-01-12 16:45:07 -05:00
Sean McBride
1cf14f8c03 Source: fix many -Wmissing-prototypes warnings by marking functions static 2021-10-25 12:27:09 -04:00
Sylvain Joubert
ba54092842 TestDriver: Fix old-style-cast warning in C++ mode
A C-style cast was added by commit 3f6ff4b5db (create_test_sourcelist:
add test driver option to run all tests, 2021-04-27, v3.21.0-rc1~257^2).
Use our `CM_CAST` macro to adapt based on the language.
2021-10-04 11:00:12 -04:00