Commit Graph

29971 Commits

Author SHA1 Message Date
Brad King f36af9228b cmLocalGenerator: Evaluate generator expressions in custom command outputs
Custom commands with generator expressions in their OUTPUTs or
BYPRODUCTS are still attached to a single `.rule` file.  We use an
internal map to look up the source file holding the custom command for a
given output.  Populate this map using the outputs and byproducts from
all configurations after evaluating the generator expressions for each
configuration.

Issue: #12877
2020-12-11 08:24:06 -05:00
Brad King c887cefd9a cmLocalGenerator: Simplify custom command output cmSourceFile creation
Move calls to `CreateGeneratedSource` over to `UpdateOutputToSourceMap`,
which is called for all generated outputs and byproducts.
2020-12-10 07:06:21 -05:00
Brad King 947ba01bf9 cmLocalGenerator: Factor out helper to expand custom command output paths 2020-12-10 07:06:21 -05:00
Brad King 1902d28ebc cmLocalGenerator: Refactor UpdateOutputToSourceMap to avoid boolean trap 2020-12-10 07:06:20 -05:00
Brad King e4034eabe9 cmLocalGenerator: Re-order logic in CreateGeneratedSource
Return early on errors to reduce nesting.
2020-12-10 07:06:20 -05:00
Brad King 706c48301d cmCustomCommandGenerator: Treat relative outputs w.r.t. build dir
The `add_custom_command` and `add_custom_target` commands already do
this for plain output and byproduct paths.  Perform the same conversion
for such paths discovered after generator expression evaluation too.
2020-12-10 07:06:20 -05:00
Brad King 5d23c5446e cmCustomCommandGenerator: Refactor OUTPUT and DEPENDS path evaluation
* Use value semantics.
* Normalize paths in a separate loop.
* If CollapseFullPath is used, ConvertToUnixSlashes is unnecessary.
2020-12-10 07:06:20 -05:00
Brad King 24156c0269 cmCustomCommandGenerator: Evaluate generator expressions in outputs
This was already done for byproducts by commit a583b7bc17 (Genex:
Evaluate byproduct generator expressions in cmCustomCommandGenerator,
2019-09-11, v3.16.0-rc1~86^2).  Like that commit, this does not actually
expose the feature to projects because the front-end commands still
reject generator expressions.

Issue: #12877
2020-12-10 07:06:20 -05:00
Brad King b285748f79 cmAddCustom{Command,Target}Command: Skip conversions on genex paths
If an output or byproduct path starts in a generator expression, do not
convert it to a full path yet.  That will have to be done at generate
time after evaluating the generator expressions.

Also update the `add_custom_target` byproduct path conversion added by
commit 445ff5ccdf (Byproducts: collapse full paths of custom target
byproducts, 2019-09-11, v3.16.0-rc1~103^2~1) to match the behavior of
`add_custom_command` when a path starts in a generator expression.
2020-12-10 07:06:20 -05:00
Brad King 9109475bfb Merge topic 'cpp23'
9f3c70a333 CUDA, CXX, OBJCXX: C++23 support with Clang 12
af7e1545c8 CUDA, CXX: Remove HAS_FULL_SUPPORT for C++17 and 20

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5576
2020-12-10 07:00:17 -05:00
Kitware Robot 7d4a6ce714 CMake Nightly Date Stamp 2020-12-10 00:01:09 -05:00
Brad King 3c68404c20 Merge topic 'xcode-ios-empty-sticker-pack'
0a60d1b6b4 Allow empty source file list for iOS Sticker packs

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5587
2020-12-09 09:16:34 -05:00
Brad King acc9c89914 Merge topic 'cmp0116-automoc'
1080935732 AutoGen: Account for CMP0116 in the depfile
287c591079 cmake -E: Fix cmake_transform_depfile escaping of transformed paths

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kyle Edwards <kyle.edwards@kitware.com>
Merge-request: !5584
2020-12-09 09:14:00 -05:00
Kitware Robot d5b12ddcbc CMake Nightly Date Stamp 2020-12-09 00:01:14 -05:00
Kyle Edwards 1080935732 AutoGen: Account for CMP0116 in the depfile
Fixes: #21467
2020-12-08 14:51:36 -05:00
Brad King 287c591079 cmake -E: Fix cmake_transform_depfile escaping of transformed paths
In commit b2c14bc774 (cmake -E: Add cmake_transform_depfile internal
command, 2020-10-02) we forgot to use `WriteFilenameGcc` in one place.
2020-12-08 14:51:36 -05:00
Raul Tambre 9f3c70a333 CUDA, CXX, OBJCXX: C++23 support with Clang 12
Clang 12 landed initial support for C++23 language mode flag -std={c|gnu}++2b
in commit 6627a3c2873fdf7ccba1a1573371079be48b36e8.
2020-12-08 18:43:59 +02:00
Brad King 7775cbdb82 Merge topic 'range-for-avoid-tmp-warning'
99a26babb1 Cleanup: Fix warning about binding to a temporary in range-based for

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5578
2020-12-08 10:21:33 -05:00
Brad King 60d95fe2c2 Merge topic 'correct_ispc_path_computation'
9af93fef11 ISPC: Handle OBJECT sources in different directories
72ae15ebcb ISPC: Ninja properly compute ISPC_HEADER_DIRECTORY location

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5581
2020-12-08 10:17:33 -05:00
Kitware Robot f970f4c301 CMake Nightly Date Stamp 2020-12-08 00:01:11 -05:00
Craig Scott 99a26babb1 Cleanup: Fix warning about binding to a temporary in range-based for 2020-12-08 08:32:30 +11:00
Brad King e94f00dfe3 Merge topic 'get_dir_prop_arg_parsing'
ab1ee5aab8 get_directory_property: Check for empty or missing property name

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5577
2020-12-07 10:29:16 -05:00
Brad King afd495decd Merge topic 'asm_arch'
fcabf4a47e macOS: Add architecture flags only for native ASM dialect

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5572
2020-12-07 10:28:18 -05:00
Robert Maynard 9af93fef11 ISPC: Handle OBJECT sources in different directories 2020-12-07 09:14:54 -05:00
Robert Maynard 72ae15ebcb ISPC: Ninja properly compute ISPC_HEADER_DIRECTORY location 2020-12-07 09:14:13 -05:00
Kitware Robot a37ef1b3d4 CMake Nightly Date Stamp 2020-12-07 00:01:17 -05:00
Andrew Shaitorov 0a60d1b6b4 Allow empty source file list for iOS Sticker packs 2020-12-06 11:31:26 -05:00
Kitware Robot 0ab0fe64ac CMake Nightly Date Stamp 2020-12-06 00:01:14 -05:00
Craig Scott ab1ee5aab8 get_directory_property: Check for empty or missing property name
Fixes: #21555
2020-12-06 09:38:12 +11:00
Craig Scott 14576a40ac Merge topic 'remove-WCDH-module'
da7ad7997e WriteCompilerDetectionHeader: Add policy to remove module
541f1410e0 Help: Move Documentation module to list of deprecated modules

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5573
2020-12-05 06:23:55 -05:00
Brad King da7ad7997e WriteCompilerDetectionHeader: Add policy to remove module
See justification in the policy documentation.

Closes: #17842
2020-12-05 21:57:08 +11:00
Kitware Robot 2e8f8276c7 CMake Nightly Date Stamp 2020-12-05 00:01:12 -05:00
Raul Tambre fcabf4a47e macOS: Add architecture flags only for native ASM dialect
ASM dialects like NASM have languages names such as ASM_NASM.
However such ASM dialects don't support the architecture flags, so match only
the full name.

Fixes #21553.
2020-12-04 17:29:14 +02:00
Brad King 486ede8064 Merge topic 'makefiles-compiler-deps-optims'
f395caf498 Makefiles dependencies: enhance robustness of deps parser

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5568
2020-12-04 08:31:58 -05:00
Brad King 76685b985d Merge topic 'explicit-LANGUAGE-flag'
48aac247e9 Compile with explicit language flag when source LANGUAGE property is set
2e67a75acd Embarcadero: Simplify addition of -P flag for C++

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5522
2020-12-04 08:27:55 -05:00
Kitware Robot 26b5a4424a CMake Nightly Date Stamp 2020-12-04 00:01:09 -05:00
Marc Chevrier f395caf498 Makefiles dependencies: enhance robustness of deps parser 2020-12-03 15:06:33 +01:00
Kitware Robot 3815070fc7 CMake Nightly Date Stamp 2020-12-03 00:01:16 -05:00
Brad King 48aac247e9 Compile with explicit language flag when source LANGUAGE property is set
This change was originally made by commit 74b1c9fc8e (Explicitly specify
language flag when source LANGUAGE property is set, 2020-06-01,
v3.19.0-rc1~722^2), but it was reverted by commit 30aa715fac (Revert
"specify language flag when source LANGUAGE property is set",
2020-11-19) to restore compatibility with pre-3.19 behavior.

Implement the change again, but add policy CMP0119 to make this change
while preserving compatibility with existing projects.

Note that the `Compiler/{Clang,Intel,MSVC}-CXX` modules do not need to
specify `-TP` for their MSVC-like variants because we already use the
flag in `CMAKE_CXX_COMPILE_OBJECT`.  Similarly for `Compiler/XL-CXX`
and `Platform/Windows-Embarcadero`.

Note also that this does not seem possible to implement for XL C.
Even with `-qsourcetype=c`, `xlc` complains about an unknown suffix:
`1501-218 (W) file /.../AltExtC.zzz contains an incorrect file suffix`.
It returns non-zero even with `-qsuppress=1501-218`.

Co-Author: Robert Maynard <robert.maynard@kitware.com>
Fixes: #14516, #20716
2020-12-02 11:39:11 -05:00
Brad King a0f2e8cbfa Merge topic 'cpackifw-package-wizard-show-page-list'
8b5a0e0fef CPackIFW: Add CPACK_IFW_PACKAGE_WIZARD_SHOW_PAGE_LIST variable

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5545
2020-12-02 09:30:07 -05:00
Brad King 9e76ad9ccd Merge topic 'ninja-deps-updates'
f8d8faff8d Ninja Generators: Homogenize configuration with Makefiles

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5557
2020-12-02 09:29:16 -05:00
Brad King 2b0152ce09 Merge topic 'issue-20955'
5a6c199069 ctest: Provide hints about inspecting test failures

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5552
2020-12-02 09:27:38 -05:00
Brad King dee36398d2 Merge topic 'error_out_on_unknown_argument'
1b6c5333a0 cmake: Error out on unknown arguments starting with `-`.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5553
2020-12-02 09:25:26 -05:00
Brad King dd1f26e22e Merge topic 'export-namelink' into release-3.19
38bcb5c0a3 export: Do not fail generation for separate namelink only case

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5556
2020-12-02 09:17:50 -05:00
Brad King 130132ffb3 Merge topic 'export-namelink'
38bcb5c0a3 export: Do not fail generation for separate namelink only case

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5556
2020-12-02 09:17:50 -05:00
Kitware Robot ee431954a1 CMake Nightly Date Stamp 2020-12-02 00:01:10 -05:00
Marc Chevrier f8d8faff8d Ninja Generators: Homogenize configuration with Makefiles
* Use same configuration variables to configure dependencies
* Abstract Ninja deps format from compiler one
2020-12-01 15:50:01 +01:00
Brad King e557ff81ee Merge topic 'cmprop-improve'
4d9b1b42bc cmCTestBuildCommand: code improvement

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5548
2020-12-01 09:35:13 -05:00
Brad King 5d49943504 Merge topic 'ninja-regen-metadata'
73d1c78bf4 ci: update to use ninja 1.10.2
11f4259362 Ninja: Clean metadata after regen during build on Windows with 1.10.2+

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5555
2020-12-01 09:29:12 -05:00
Brad King b76013b515 Merge topic 'ninja-regen-metadata' into release-3.19
73d1c78bf4 ci: update to use ninja 1.10.2
11f4259362 Ninja: Clean metadata after regen during build on Windows with 1.10.2+

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5555
2020-12-01 09:29:11 -05:00