Commit Graph

8949 Commits

Author SHA1 Message Date
Brad King
7a149034f7 Merge topic 'xcode-generation-enablegpuframecapturemode'
0798edfb85 Tests: Xcode scheme ENABLE_GPU_FRAME_CAPTURE_MODE
e09a3eddb6 Xcode: Support "GPU Frame Capture" scheme property

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !6639
2021-11-12 09:05:01 -05:00
Brad King
ea5d3f4d4c Merge topic 'unity-build-per-config'
129e3c6540 Unity Build: Fix per-config sources in multi-config generators
ea289314ef VS: Fix pre-VS15.8 unity build exclusion of per-config sources
53990059da cmLocalGenerator: Add dedicated types to hold unity source info
de6e362a88 cmLocalGenerator: Clarify name of method to write unity source include lines
3017b3e7d4 cmLocalGenerator: Simplify unity source copy-if-different logic
0b56f92576 cmLocalGenerator: De-duplicate unity source file generation

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6720
2021-11-12 09:03:39 -05:00
Brad King
648b66a1d3 Merge topic 'cmp0128-fixup'
e47dfce75d CMP0128: Enable/disable extensions if standard same as default

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !6723
2021-11-12 09:02:41 -05:00
Raul Tambre
e47dfce75d CMP0128: Enable/disable extensions if standard same as default
This was intended to be part of the initial MR (!6177), but accidentally went
missing when debugging nightly failures on less common systems. Noticed during
!6711 review as the comment about this behaviour didn't match the code.

Documentation for CMP0128 is updated to remove a false case and note the two
cases related to this.

Fixes #22224.
2021-11-11 21:55:04 +02:00
Brad King
2f37c48cf1 Merge topic 'xcode-embed-plugins'
9e1e7dc7db Xcode: Add embedded plugins option

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6690
2021-11-11 10:51:48 -05:00
Brad King
129e3c6540 Unity Build: Fix per-config sources in multi-config generators
Single-config generators already support unity builds with per-config
sources because they compute sources using `CMAKE_BUILD_TYPE` as the
configuration.  Each original source is either included in the unity
build source, or not.

Teach multi-config generators to compute the list of sources for
inclusion in unity builds using all configurations.  Previously they
only used the empty string as the configuration.  Each original source
may be included in some configurations, but not others.  Use
preprocessor conditions to guard their inclusion when necessary.

Fixes: #22892
2021-11-11 07:16:11 -05:00
Gusts Kaksis
9e1e7dc7db Xcode: Add embedded plugins option 2021-11-10 09:57:07 -05:00
Brad King
4fd2d62613 Merge topic 'cuda_clang_cmp0105'
4707ecbe6f CUDA: Support CMP0105 on Clang
15fde4c420 CUDA: Use local shorthands for variables in Clang device link code
cf7e68087d CUDA: Avoid unnecessary allocation and GetLinkLanguage()
5b0693411e CUDA: Ignore USE_WATCOM_QUOTE for device link rules

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6709
2021-11-09 07:56:21 -05:00
Jake Turner
0798edfb85 Tests: Xcode scheme ENABLE_GPU_FRAME_CAPTURE_MODE
Setting numerical value
Caseless comparison of string values
"Metal" is converted to value 1
"Disabled" is converted to value 3
2021-11-09 06:28:33 +00:00
Raul Tambre
4707ecbe6f CUDA: Support CMP0105 on Clang
Add link flags during the "device compile" step.

Enabled the relevant tests. The disable reasons regarding separable compilation
were outdated and the actual failure case was device link flags support.
2021-11-08 21:26:00 +02:00
Brad King
4ef974e6cb CPack: Remove undocumented deprecated OSXX11 generator
This CPack generator was never documented, and has been deprecated since
commit 2ed00e8ef8 (CPack: Deprecate OSXX11 generator, 2020-01-31,
v3.17.0-rc1~45^2).

Issue: #20235
2021-11-05 12:39:22 -04:00
Brad King
e479650b41 Merge topic 'nmc-cross-config-target-deps'
95f44e00cd Ninja Multi-Config: Fix custom command target dependencies in cross-configs
a883363935 Ninja Multi-Config: Fix internal cross-config target dependency ordering
16e24748c5 Ninja Multi-Config: Fix cross-config custom command dependency tracing

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !6702
2021-11-05 10:09:28 -04:00
Brad King
95f44e00cd Ninja Multi-Config: Fix custom command target dependencies in cross-configs
Generator expressions in a non-cross custom command's `COMMAND`
arguments are evaluated in the command config.  Target-level
dependencies implied by `TARGET_FILE` must therefore be cross
dependencies.  This is important to generate proper target-level
dependencies on the cross-config build statements for the target to
which the custom command is attached.

Fixes: #22855
2021-11-04 13:41:16 -04:00
Brad King
d2a6df9f7c Merge topic 'no-opt-crash'
7c90d00af9 Tests: Prevent compiler optimizing away test code in CTestTestCrash

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6688
2021-11-03 10:40:03 -04:00
Brad King
98f0ee645f Merge topic 'nvhpc-isystem'
92624714c4 NVHPC: Support SYSTEM include directories

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6691
2021-11-03 10:37:55 -04:00
Brad King
28d63320f1 Merge topic 'nvhpc-isystem' into release-3.22
92624714c4 NVHPC: Support SYSTEM include directories

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6691
2021-11-03 10:37:54 -04:00
Robert Maynard
92624714c4 NVHPC: Support SYSTEM include directories
Fixed #22834
2021-11-02 14:33:18 -04:00
William R. Dieter
7c90d00af9 Tests: Prevent compiler optimizing away test code in CTestTestCrash
The CTestTestCrash tries to force a crash by dereferencing a NULL
pointer.  The oneAPI 2021.4 C compiler notices that the pointer and the
value fetched from the pointer are never used and optimizes away the
dereferencing of the NULL pointer, which prevents the crash, causing
the test to fail.

This change adds the `volatile` keyword the pointer to prevent the
compiler optimizing it away.  Removing a reference to a `volatile`
variable is illegal because access to a `volatile` variable could have
side effects not observable by the compiler.

Signed-off-by: William R. Dieter <william.r.dieter@intel.com>
2021-11-02 09:03:27 -04:00
Brad King
4e84a4763d Merge topic 'support_nvcc_native_flag'
14d8a2768d CUDA: Support nvcc 11.5 new -arch=all|all-major flags

Acked-by: Kitware Robot <kwrobot@kitware.com>
Reviewed-by: Raul Tambre <raul@tambre.ee>
Merge-request: !6652
2021-11-02 08:55:13 -04:00
Brad King
e06f186c20 Merge topic 'vs-instance'
195d47e213 VS: Allow CMAKE_GENERATOR_INSTANCE to specify portable instance
ec8d37b3b1 VS: Support version specification in CMAKE_GENERATOR_INSTANCE
8e6d930e8c VS: Parse comma-separated fields from CMAKE_GENERATOR_INSTANCE
5d1f377737 cmVSSetupHelper: Factor out helper to load MSVC toolset version
006fe1e919 cmVSSetupHelper: Convert wide to narrow strings early
f5dfc788b8 cmVSSetupHelper: Drop unused InstanceId field
3213e2595d cmVSSetupHelper: Drop unused ullVersion field
152f9978dd Help: De-duplicate VS instance selection documentation

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6651
2021-11-01 16:24:54 -04:00
Robert Maynard
14d8a2768d CUDA: Support nvcc 11.5 new -arch=all|all-major flags 2021-11-01 14:57:58 -04:00
Brad King
4c68a0e71a Merge topic 'envmod-test-modifying-existing'
9c4d6404eb Tests/Environment: also test modifying ambient values
7d52d48a32 cmCTestRunTest: get the default value from the environment

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6682
2021-11-01 09:08:11 -04:00
Brad King
562ee8a50b Merge topic 'misc-messages'
dbe33b20bd install: Add context to {PUBLIC,PRIVATE}_HEADER/RESOURCE DESTINATION warnings
1a25f057da cmComputeLinkInformation: Add context to warning about linking a directory
4862f3b2c8 cmcmd: Write progress and tar errors directly to stderr
efc6c23a47 bootstrap: Do not declare cmSystemTools functions that are not implemented

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !6680
2021-11-01 09:07:13 -04:00
Brad King
195d47e213 VS: Allow CMAKE_GENERATOR_INSTANCE to specify portable instance
Previously the `CMAKE_GENERATOR_INSTANCE` value was used only to filter
the instances reported by the Visual Studio Installer tool.  If the
specified install location is not known to the VS Installer, but the
user provided a `version=` field, check for the installation directly
on disk.

Fixes: #21639, #22197
2021-10-29 11:52:58 -04:00
Brad King
ec8d37b3b1 VS: Support version specification in CMAKE_GENERATOR_INSTANCE 2021-10-29 11:52:58 -04:00
Brad King
8e6d930e8c VS: Parse comma-separated fields from CMAKE_GENERATOR_INSTANCE 2021-10-29 11:52:58 -04:00
Ben Boeckel
9c4d6404eb Tests/Environment: also test modifying ambient values 2021-10-29 10:54:02 -04:00
Ben Boeckel
7d52d48a32 cmCTestRunTest: get the default value from the environment
This only works due to some assumptions about how the `ENVIRONMENT`
property is processed. Comments have been added to notify anyone
modifying the behavior about where to look.

Fixes: #22819
2021-10-29 10:54:02 -04:00
Brad King
0486f9e56e Merge topic 'swift-win32-property'
c782f140d4 Swift: Ignore WIN32_EXECUTABLE property outside of Windows

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6658
2021-10-29 08:53:26 -04:00
hotwatermorning
c782f140d4 Swift: Ignore WIN32_EXECUTABLE property outside of Windows
Issue: #19877
2021-10-28 15:32:44 -04:00
Brad King
51e9d93c9c Merge topic 'target-sources-file-set'
a7c71b9f03 Tests: Add tests for target_sources(FILE_SET) and associated functionality
4b0ee4e338 Help: Add documentation for target_sources(FILE_SET) and associated properties
3c3698b0e4 FileAPI: Add information on file set installers
8a09723bff cmGeneratorTarget: Integrate file sets into calculated sources
2a78d47b16 install(EXPORT): Install file sets
9b479124cc install(TARGETS): Add FILE_SET mode
d8af2d954f target_sources(): Add FILE_SET mode
f2bd022468 cmTargetSources: Refactor to add enum class parameters
...

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !6653
2021-10-28 09:58:13 -04:00
Brad King
3055b202ec Merge topic 'builtin-help-versionadded'
054754359a cmRST: support `versionadded` and `versionchanged` directives

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !6667
2021-10-28 09:09:24 -04:00
Brad King
7b19f55003 Merge topic 'builtin-help-versionadded' into release-3.22
054754359a cmRST: support `versionadded` and `versionchanged` directives

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !6667
2021-10-28 09:09:23 -04:00
Kyle Edwards
a7c71b9f03 Tests: Add tests for target_sources(FILE_SET) and associated functionality 2021-10-27 15:17:23 -04:00
Kyle Edwards
3c3698b0e4 FileAPI: Add information on file set installers 2021-10-27 15:17:23 -04:00
Brad King
dbe33b20bd install: Add context to {PUBLIC,PRIVATE}_HEADER/RESOURCE DESTINATION warnings 2021-10-27 12:59:16 -04:00
Brad King
a956be4847 Merge topic 'warnings-cleanup'
7e4e192ce2 Source: fix clang-tidy modernize-redundant-void-arg warning
8d671dd94c Source: fix more -Wmissing-prototypes warnings
1cf14f8c03 Source: fix many -Wmissing-prototypes warnings by marking functions static
319944b3d2 Source: fix some -Wunused-macros warnings
5257d9e71a Source: fix only -Wshorten-64-to-32 warning with explicit cast

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !6648
2021-10-27 09:24:54 -04:00
Brad King
9bb7982a15 Merge topic 'purge-sprintf'
b7e9cd05cd Replace the only non-standard _snprintf with snprintf
5ba6e8ac59 Source: Replace most calls to sprintf with snprintf

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6649
2021-10-27 09:23:17 -04:00
Brad King
b33c67a6f7 Merge topic 'envmod-support-mod-to-new-variables'
69f95cf1d9 cmCTestRunTest: fix modifying non-existent envvars

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !6663
2021-10-27 09:20:46 -04:00
Ben Boeckel
054754359a cmRST: support versionadded and versionchanged directives
This makes `versionadded` and `versionchanged` directives show up in
`cmake --help-*` output instead of disappearing (and potentially making
empty sections).

Fixes: #22808
2021-10-27 09:15:00 -04:00
Ben Boeckel
69f95cf1d9 cmCTestRunTest: fix modifying non-existent envvars
When appending or modifying to a variable that has not been modified
before, the iterator was not valid, but it was used to insert into the
map again. Instead, just use indexing into the map since we know it will
exist by the end of the function anyways.

Fixes: #22796
2021-10-26 12:51:44 -04:00
Sean McBride
5ba6e8ac59 Source: Replace most calls to sprintf with snprintf 2021-10-25 18:23:13 -04:00
Sean McBride
1cf14f8c03 Source: fix many -Wmissing-prototypes warnings by marking functions static 2021-10-25 12:27:09 -04:00
Timo Röhling
1ab7c3cd28 CheckSymbolExists: Work around GCC failure with -pedantic-errors option
GCC mistakenly issues the pedantic warning "ISO C forbids conversion of
function pointer to object pointer type". With -pedantic-errors in the
compile flags, that diagnostic prevents check_symbol_exists() from
detecting function symbols.

The solution is to filter out -pedantic-errors (and -Werror, just to be
future proof) before invoking try_compile().

Fixes: #13208
2021-10-22 15:48:51 +02:00
Brad King
ca3e83250f Merge topic 'lcc-policy'
3958ed878f LCC: Add policy CMP0129 regarding interpreting LCC as GNU

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !6643
2021-10-22 07:08:58 -04:00
makise-homura
3958ed878f LCC: Add policy CMP0129 regarding interpreting LCC as GNU
Due to MCST LCC compiler identification is now changed to LCC,
there should be a way for old projects to still identify it as GNU,
as it was before.
This commits adds the policy:
CMP0129: Compiler id for MCST LCC compilers is now LCC, not GNU.
This policy controls such a behavior.
OLD behaivior is to treat LCC as GNU, NEW is to treat is as LCC.
2021-10-21 17:24:22 +03:00
Brad King
fcab9785c9 Merge topic 'vs-instance'
46e9ff5729 Restore honoring CMAKE_GENERATOR_INSTANCE in toolchain file
42418b02f7 Android: Refactor sysroot detection under Visual Studio
44a86d0b38 cmake_host_system_information: Add undocumented VS_MSBUILD_COMMAND key
6999b87133 cmGlobalVisualStudio10Generator: Add method to find MSBuild early
7f730464be cmGlobalGenerator: Add method to check if generator is at least VS 10
8917b8512f cmGlobalVisualStudioVersionedGenerator: Allow repeating SetGeneratorInstance
6511654164 cmGlobalVisualStudio10Generator: Allow subclasses to reset MSBuild search

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !6646
2021-10-21 09:21:24 -04:00
Brad King
edd60a2188 Merge topic 'fix_reroot_paths'
91ec6eee58 find_package: Don't reroot prefix that is equal to a root path

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !6644
2021-10-21 09:19:22 -04:00
Brad King
44a86d0b38 cmake_host_system_information: Add undocumented VS_MSBUILD_COMMAND key
When using the Visual Studio generator for VS 10 or above,
offer this key to get the location of the MSBuild command
before the first `project()` or `enable_language()` command
has finished running.

This will be needed only by one of our own modules, so leave it
undocumented for now.
2021-10-20 13:00:25 -04:00
Alexandru Croitor
91ec6eee58 find_package: Don't reroot prefix that is equal to a root path
When both CMAKE_FIND_ROOT_PATH and CMAKE_PREFIX_PATH are set to
/opt/my_device_sysroot, cmFindCommon::RerootPaths would only look
for packages in /opt/my_device_sysroot/opt/my_device_sysroot
but would not try to look in /opt/my_device_sysroot.

Make sure to not reroot the prefix path in such a case.

Fixes: #21937
2021-10-20 18:50:41 +02:00