Commit Graph

348 Commits

Author SHA1 Message Date
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
Brad King
9054cd05e6 VS: Add flag table entries for '/external:W*' flags in VS 16.10
Fixes: #22255
2021-05-28 11:54:57 -04:00
Brad King
34f316b484 Merge topic 'test_driver_tap13_support'
3f6ff4b5db create_test_sourcelist: add test driver option to run all tests
a3aa5596a1 Tests: Isolate TestDriver build directories

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3661
2021-04-29 09:19:02 -04:00
Sergey Bronnikov
3f6ff4b5db create_test_sourcelist: add test driver option to run all tests
New option `-A` passed to test binary allows to run all testcases at
once and prints a report in a standard format - TestAnythingProtocol v.13 [1].
Execution of test whose names will be passed after an option will be skipped.

Sample of output:

    TAP version 13
    1..6
    ok 1 TestCryptoHash # 0.030000
    ok 2 TestCryptoRand # 0.008000
    not ok 3 TestCryptoCipher # 0.005000
    ok 4 TestCryptoProtectData # 0.000000
    cbPlainText: 21 cbCipherText: 32
    PlainText: MySecretPassword123! (cbPlainText = 21, cbCipherText = 32)
    Decrypted CipherText: MySecretPassword123!
    ok 5 TestCryptoProtectMemory # 0.014000
    ok 6 TestCryptoCertEnumCertificatesInStore # 0.000000

1. https://testanything.org/

Fixes: #19367
2021-04-28 09:28:25 -04:00
Brad King
7fce2d372e VS: Revert "Add support for ASAN -fsanitize=address flag"
Revert commit 1b37305b0f (VS: Add support for ASAN -fsanitize=address
flag, 2021-04-21).  The tag `EnableASAN` is created in
`ItemDefinitionGroup` but it needs to be in `PropertyGroup`.  Revert the
mapping pending an implementation in the generator.

Issue: #21081
2021-04-26 14:15:41 -04:00
Brad King
aa7d08e90a Merge topic 'vs-asan'
1b37305b0f VS: Add support for ASAN -fsanitize=address flag

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6034
2021-04-22 10:28:47 -04:00
oltolm
1b37305b0f VS: Add support for ASAN -fsanitize=address flag
Map it to the `EnableASAN` element in `.vcxproj` files.

Fixes: #21081
2021-04-21 13:37:26 -04:00
Brad King
11c0bfff89 VS: Generalize CSharp /langversion flag mapping
Map the `/langversion:` flag followed by any value to a `LangVersion`
element with the specified value in the `.csproj` file.

Fixes: #22089
2021-04-21 10:18:07 -04:00
Francois Keith
ee78391c09 CSharp: Add 'warnaserror:...' to v142 flag table for VS
This allows listing the warnings that must be flagged as errors.
For example:

    target_compile_options(proj PRIVATE "/warnaserror:1998,4014")
2021-01-25 12:32:30 -05:00
Francois Keith
e38997d85a CSharp: Add 'debug:portable' to v142 flag table for VS 2021-01-25 12:32:21 -05:00
Moyo Okeremi 😊
4ea3a88625 MSVC: Add support for targeting ARM64EC 2021-01-20 16:43:35 -08:00
Sergey Bronnikov
0273293047 create_test_sourcelist: fix typo in placeholder name
Rename `CMAKE_FUNCTION_TABLE_{ENTIRES => ENTRIES}`.
2020-12-21 13:45:12 -05:00
Brad King
b11c723678 VS: Populate std:c{11,17} flag table entries for v142
The `-std:c11` option added by commit f7347f28c7 (MSVC: Record support
for C11 and c_restrict, 2020-08-09, v3.18.2~9^2) needs this flag table
entry to map in the VS IDE properly.

Issue: #21069
2020-09-28 15:51:01 -04:00
Ben Boeckel
b108c9fdaf TestDriver: avoid clang-tidy lints in generated code 2020-04-13 11:26:02 -04:00
Robert Maynard
568298a336 CUDA: MSVC + NVCC support --compiler-options compiler flag
Fixes #20164
2020-01-02 14:35:24 -05:00
Ben Boeckel
677097ac1d TestDriver: ignore strcpy call
clang-analyzer has a check for any use of `strcpy`. This usage is safe
because it is allocated above using the length of the string.
2019-12-05 14:24:34 -05:00
Brad King
820f952316 Merge branch 'vs-v142-csharp-flags' into release-3.16
Merge-request: !3908
2019-10-11 11:19:02 -04:00
Brad King
bbf216fb6b VS: Add toolset v142 CSharp flag table
While the flag tables for C and C++ were generated from MSBuild `.xml`
files, the CSharp flag tables were written by hand.  Copy the `v141`
flag table to use for the `v142` toolset.

Remove the special case added by commit 626c51f47b (VS: Update for
Visual Studio 2019 Preview 2, 2019-01-24, v3.14.0-rc1~74^2) that mapped
the v142 flag table lookup to v141 since we now have the real v142
table.

Fixes: #19828
2019-10-11 11:11:20 -04:00
Sean McBride
1d0d4167cf TestDriver: Fix -Wzero-as-null-pointer-constant warnings 2019-09-18 14:05:39 -04:00
Wil Stark
822697996e VS: Fix nowarn compiler option to accept warning numbers.
Warning disables are transferred to the VS IDE `<NoWarn>` node.

Fixes: #18878
2019-02-07 06:39:45 -05:00