Commit Graph

367 Commits

Author SHA1 Message Date
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
Brad King
b0f830ced6 VS: Do not apply any '/external:*' flag table mapping on VS < 16.10
Since commit 887e9df0c7 (VS: Update v142 CL flag table for VS 16.10,
2021-06-04) we map several `/external:*` flags to their corresponding
`.vcxproj` elements.  These elements were added to `cl.xml` in VS 16.10,
so filter them out in older VS versions.  Add a field to the json flag
table format to specify the minimum version of VS needed for a given
mapping.

Issue: #22308
2021-06-17 08:25:04 -04:00
Brad King
5fd68d3ef7 Merge topic 'vs-custom-depfile'
526e2ef71c VS: Add support for add_custom_command DEPFILE
794ad78abb Help: Generalize release note filename for add_custom_command DEPFILE
7291f31254 cmTransformDepfile: Add support for MSBuild AdditionalInputs format
a6de8ec51b cmTransformDepfile: Make directory for transformed depfile automatically

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6206
2021-06-10 08:23:45 -04:00
Brad King
526e2ef71c VS: Add support for add_custom_command DEPFILE
Transform the depfile into MSBuild `AdditionalInputs` content.  Add
MSBuild Targets to update `AdditionalInputs` and the `.tlog` files for
future builds without actually modifying the `.vcxproj` file.

Fixes: #20286
2021-06-09 10:09:58 -04:00
Duncan Ogilvie
a9f992434d VS: Remove the /MERGE flag from FlagTables
Fixes #22229
2021-06-08 23:23:38 +02:00
Brad King
887e9df0c7 VS: Update v142 CL flag table for VS 16.10
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`.

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`.
2021-06-04 10:17:13 -04:00
Brad King
25e33a282b VS: Update v141 CL flag table for VS 15.9
Run the command

    python3 Source/cmConvertMSBuildXMLToJSON.py -t v141 \
        'c:/.../Common7/IDE/VC/VCTargets/1033/cl.xml'

To generate `v141_CL.json` locally.  Manually move new and updated
settings over to `Templates/MSBuild/FlagTables/v141_CL.json`.
2021-06-04 10:12:38 -04:00
Brad King
f9383e0140 VS: Re-order v141 and v142 CL flag table entries to match xml files better 2021-06-04 09:39:53 -04:00
Brad King
21832aa8fc Merge topic 'vs-16.10-map-external-warnings'
9054cd05e6 VS: Add flag table entries for '/external:W*' flags in VS 16.10

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6171
2021-05-28 12:52:42 -04:00