Commit Graph

375 Commits

Author SHA1 Message Date
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
Brad King
3f9ef3703a VS: Fix /reference and /headerUnit flag table entries for v142 and v143
These flags accept values in following arguments, not immediately
appended.

Fixes: #22530
2021-08-10 10:37:57 -04:00
Brad King
937f454fb9 VS: Remove C++ module CompileAs flag table entries for v142 and v143
The `CompileAs` entry in a `.vcxproj` file with values:

* `CompileAsCppModule` for `-interface`
* `CompileAsCppModuleInternalPartition` for `-internalPartition`
* `CompileAsHeaderUnit` for `-exportHeader`

does not cause the corresponding flag to be added to the command line.
Drop the flag table entries so that the flags go to `AdditionalOptions`.

Fixes: #22477
2021-07-26 10:49:26 -04:00
Brad King
8fb349a80e VS: Remove cl /FS entry from flag table for v142 and v143
The `ForceSynchronousPDBWrites` entry in a `.vcxproj` file does not
actually cause the `/FS` flag to be added to the command line.

Fixes: #22476
2021-07-26 10:45:09 -04:00
Brad King
9484e43731 Merge topic 'TestDriver-time.h-lint' into release-3.21
0bb3d457cb TestDriver: use `CM_NULL` to avoid lints about `nullptr` usage
32ff836e2a TestDriver: suppress deprecated header lints for time.h

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6352
2021-07-19 12:47:21 -04:00
Brad King
1ac1436b25 VS: Fix /sourceDependencies flag table entries for v143
Revise the `/sourceDependencies[:directives]` table entries to properly
distinguish the two options (because one is a prefix of the other), and
to populate both `Generate*Dependencies` and `*DependenciesFile`.

This is the manual update mentioned in commit 887e9df0c7 (VS: Update
v142 CL flag table for VS 16.10, 2021-06-04, v3.21.0-rc1~77^2).
2021-07-15 13:12:55 -04:00
Brad King
919fc7fd5f VS: Remove broken EnableASAN entry from flag table for v143
Apply the change from commit 7fce2d372e (VS: Revert "Add support for
ASAN -fsanitize=address flag", 2021-04-26, v3.21.0-rc1~270^2) to the
v143 flag table.

Issue: #21081
2021-07-15 13:12:55 -04:00
Brad King
3f19847b28 VS: Remove empty ExternalWarningLevel entry from flag table for v143 2021-07-15 13:12:54 -04:00
Brad King
ccb6083cbe VS: Remove empty LanguageStandard entries from flag table for v143 2021-07-15 13:12:54 -04:00
Brad King
c167de7e70 VS: Remove empty ConformanceMode entry from flag table for v143 2021-07-15 13:12:54 -04:00
Brad King
993d706a17 VS: Populate /JMC- flag table entry for v143
Apply the change from commit 049410c0b6 (VS: Populate `/JMC-` flag table
entry for v142, 2019-01-24, v3.14.0-rc1~74^2~6) to the v143 flag table.
2021-07-15 13:12:54 -04:00
Brad King
a070d87e08 VS: Populate -Qspectre- flag table entry for v143
Apply the change from commit 43aa632f57 (VS: Populate `-Qspectre-` flag
table entry for v142, 2019-01-24, v3.14.0-rc1~74^2~7) to the v143 flag
table.  Sort the longer options before the shorter ones.  Remove the
default variant with an empty switch.
2021-07-15 13:12:54 -04:00
Brad King
3322bb7081 VS: Populate /Y- flag table entry for v143
Apply the change from commit 460a146e2b (VS: Populate `/Y-` flag table
entry for v142, 2019-01-24, v3.14.0-rc1~74^2~8) to the v143 flag table.
2021-07-15 13:12:54 -04:00
Brad King
cccef3c5b4 VS: Add -Zc:inline[-] flag table entry for v143
Apply the change from commit 0df3790371 (VS: Add `-Zc:inline[-]` flag
table entry for v142, 2019-01-24, v3.14.0-rc1~74^2~9) to the v143 flag
table.
2021-07-15 13:12:54 -04:00
Brad King
2d64b01223 VS: Fix /analyze:log flag mapping for v143
Apply the change from commit fb2e418c64 (VS: Fix `/analyze:log` flag
mapping for v142, 2019-01-24, v3.14.0-rc1~74^2~10) to the v143 flag
table.
2021-07-15 13:12:54 -04:00
Brad King
b933584a72 VS: Remove the /MERGE flag from v143 link flag table
Apply the change from commit a9f992434d (VS: Remove the /MERGE flag from
FlagTables, 2021-06-08, v3.21.0-rc1~58^2) to the v143 flag table.
2021-07-15 13:12:54 -04:00
Brad King
d3175a6079 VS: Map the link /debug flag for v143
Apply the changes from commit 533f95c847 (VS: Map the link `/debug` flag
for v142, 2019-01-24, v3.14.0-rc1~74^2~3) to the v143 flag table.
2021-07-15 13:12:53 -04:00
Brad King
9e10045552 VS: Fix /MANIFESTUAC: link flag mapping for v143
Apply the changes from commit d2fcc6748a (VS: Fix `/MANIFESTUAC:NO` link
flag mapping for v142, 2019-01-24, v3.14.0-rc1~74^2~4) and commit
fd45cbf40e (VS: Fix `/MANIFESTUAC:` link flag mapping for v142,
2019-01-24, v3.14.0-rc1~74^2~1) to the v143 flag table.
2021-07-15 13:12:53 -04:00
Brad King
c152d08c52 VS: Add v143 flag tables for VS 17.0 Preview 2
Run the commands

    python3 Source/cmConvertMSBuildXMLToJSON.py -t v143 \
        'c:/.../2022/Preview/MSBuild/Microsoft/VC/v170/1033/cl.xml'
    python3 Source/cmConvertMSBuildXMLToJSON.py -t v143 \
        'c:/.../2022/Preview/MSBuild/Microsoft/VC/v170/1033/link.xml'

To generate `Templates/MSBuild/FlagTables/v143_{CL,Link}.json`.
We can re-use `Templates/MSBuild/FlagTables/v14_LIB.json`.
2021-07-15 13:12:53 -04:00
Brad King
7adfd890fb VS: Add CSharp VS 2022 compiler version and flag table v143
While the flag tables for C and C++ were generated from MSBuild `.xml`
files, the CSharp flag tables were written by hand.  Copy the `v142`
flag table to use for the `v143` toolset.
2021-07-15 13:12:07 -04:00
Brad King
63c1262375 VS: Improve v142 CL flag table LanguageStandard ordering 2021-07-15 13:12:06 -04:00
Ben Boeckel
0bb3d457cb TestDriver: use CM_NULL to avoid lints about nullptr usage 2021-07-14 19:53:54 -04:00
Ben Boeckel
32ff836e2a TestDriver: suppress deprecated header lints for time.h
Similar to the other includes, this one should be suppressed as well.
2021-07-14 16:47:16 -04:00
Brad King
1e3d3c5284 TestDriver: Avoid declaring local variable after statement
Move a declaration added by commit 3f6ff4b5db (create_test_sourcelist:
add test driver option to run all tests, 2021-04-27, v3.21.0-rc1~257^2)
into its own scope.
2021-06-28 09:28:15 -04:00
Brad King
b610b7a35c VS: Update v142 CL flag table for VS 17.0 Preview 1
Run the command

    python3 Source/cmConvertMSBuildXMLToJSON.py -t v142 \
        'c:/.../MSBuild/Microsoft/VC/v160/1033/cl.xml'

To generate `v142_CL.json` locally.  Manually move new and updated
settings over to `Templates/MSBuild/FlagTables/v142_CL.json`.
2021-06-25 10:07:32 -04:00