Marc Chevrier
e08ba229ee
CMake code rely on cmList class for CMake lists management (part. 1)
2023-04-24 10:41:10 +02:00
Orkun Tokdemir
7cecb6353e
cmGeneratorTarget: Factor out EvaluatedTargetProperty infrastructure
...
Make it available outside the `cmGeneratorTarget` implementation.
In particular, we will later use it in `cmQtAutoGenInitializer`.
2023-04-05 16:12:15 -04:00
Brad King
2daba01ddf
cmGeneratorTarget: Avoid incidental include-what-you-use warning
...
Avoid `warning: Extra tokens on pragma line` from IWYU.
2023-04-05 16:12:15 -04:00
Brad King
6546da83b3
CUDA: Fix CUDA architecture flags for nvcc response files
...
`nvcc --options-file` does not parse unquoted arguments in a response
file correctly if they contain `[]`. Quote the `--generate-code=` flags
we add for CUDA architectures.
Fixes : #24657
2023-03-30 09:43:01 -04:00
Brad King
98e319a88f
macOS: Suppress default '-arch arm64' with CMAKE_<LANG>_COMPILER_TARGET
...
Since commit b6c60f14b6 (macOS: Default to arm64 architecture on Apple
Silicon hosts, 2020-09-28, v3.19.0-rc1~63^2) we add `-arch arm64` by
default on Apple Silicon hosts if `CMAKE_OSX_ARCHITECTURES` is not set.
This is necessary to prevent the toolchain from selecting its own
default architecture based on that of the build tool (e.g., `x86_64`).
If `CMAKE_<LANG>_COMPILER_TARGET` is set, its `-target` flag tells the
compiler what architecture to use, so do not add `-arch arm64`.
Fixes : #24599
2023-03-15 10:50:26 -04:00
Brad King
43e973eba2
cmGeneratorTarget: Pass language to GetAppleArchs when possible
2023-03-15 10:18:41 -04:00
Brad King
93afe804ce
cmGeneratorTarget: Convert GetAppleArchs output argument to return value
2023-03-15 10:11:37 -04:00
Brad King
db4f4ad24e
Merge topic 'support_cubin_fatbin_optix_cuda_output'
...
2def6a874b CUDA: Add support for CUBIN, FATBIN, and OPTIXIR compilation
Acked-by: Kitware Robot <kwrobot@kitware.com >
Acked-by: buildbot <buildbot@kitware.com >
Merge-request: !8259
2023-03-14 09:35:00 -04:00
Robert Maynard
2def6a874b
CUDA: Add support for CUBIN, FATBIN, and OPTIXIR compilation
2023-03-13 09:54:00 -04:00
Brad King
5fe186ade7
Merge topic 'target_sources-backtrace'
...
b909be9e23 target_sources: Fix backtrace on missing source
4a3e79048b Tests: Add RunCMake.target_sources case covering missing source
Acked-by: Kitware Robot <kwrobot@kitware.com >
Tested-by: buildbot <buildbot@kitware.com >
Reviewed-by: Ben Boeckel <ben.boeckel@kitware.com >
Merge-request: !8268
2023-03-02 10:07:31 -05:00
Brad King
1d7fb31778
Merge topic 'Apple-handle-Text-Stubs'
...
ede33f30cf Apple: Handle generation and comsuption of text-based stubs (.tbd files)
fcbd723a50 Enhance support functions
Acked-by: Kitware Robot <kwrobot@kitware.com >
Acked-by: Brad King <brad.king@kitware.com >
Merge-request: !8204
2023-03-02 09:53:03 -05:00
Marc Chevrier
ede33f30cf
Apple: Handle generation and comsuption of text-based stubs (.tbd files)
...
Fixes : #24123
2023-03-01 12:23:28 +01:00
Brad King
b909be9e23
target_sources: Fix backtrace on missing source
...
If a source file is not found, the error message reports a backtrace.
Previously the backtrace pointed at where the target was created.
In the case of `target_sources`, the missing source may have been
named elsewhere.
Fixes : #24538
2023-02-28 18:07:36 -05:00
Marc Chevrier
fcbd723a50
Enhance support functions
...
* Avoid duplicate definiitions for IsExecutableWithExports, etc...
* Add helper IsApple()
2023-02-28 14:24:03 +01:00
Ralf Habacker
a7f9c7da26
Add option to add SOVERSION to DLL names
...
Add variable/target property `[CMAKE_]DLL_NAME_WITH_SOVERSION`.
Fixes : #24251
Signed-off-by: Ralf Habacker <ralf.habacker@freenet.de >
2023-02-27 09:18:34 -05:00
Ben Boeckel
dadaa28638
cmGeneratorTarget: synthetic targets don't have output either
2023-02-14 12:52:54 -05:00
Ben Boeckel
c97de1047f
cmMakefile: add support for a "synthesized" target
...
It is a normal target, but will end up copying its internals from
another target. Keep track of this state so that such copying can only
occur when intended.
2023-02-14 12:33:58 -05:00
Ben Boeckel
5b58695321
cmTarget: store visibility as an enum rather than bools
...
C++ modules are going to introduce a third concept of "synthesized"
targets, so update logic where needed to avoid assuming "not imported?
must be normal".
Also add an accessor method to perform queries against the visibility.
2023-02-14 12:23:15 -05:00
Ben Boeckel
4b38d7d100
cmGeneratorTarget: INTERFACE targets with C++ modules are also "in"
...
`INTERFACE` targets with C++ modules are basically BMI-only modules. It
is unknown if they will be useful directly (due to ODR of the `module
M;` initializers needing to live in some specific object file). However,
they will be used to attach BMI-only compilations of `IMPORTED` C++
modules.
2023-02-08 13:00:45 -05:00
Ben Boeckel
d19648a928
cmGeneratorTarget: add a method to query if Fortran sources exist
2023-01-31 22:23:36 -05:00
Brad King
cd87bebe49
Merge topic 'optimize-full-name-function'
...
a525f5f1bf cmGeneratorTarget: Cache full name components
Acked-by: Kitware Robot <kwrobot@kitware.com >
Acked-by: buildbot <buildbot@kitware.com >
Merge-request: !8033
2023-01-19 09:21:18 -05:00
Pierre Testart
a525f5f1bf
cmGeneratorTarget: Cache full name components
...
Cache the result of cmGeneratorTarget::GetFullNameInternalComponents
to improve performance.
2023-01-18 09:12:17 -05:00
Vitaly Stakhovsky
b3edfcf46e
cmValue: Use operator* explicitly to convert to std::string; avoid extra call
2023-01-15 23:39:02 -05:00
Marc Chevrier
74638c47ff
STATIC_LIBRARY_OPTIONS: ensure correct expension of list inside a genex
...
Fixes : #24258
2022-12-20 12:20:48 +01:00
Brad King
3b4337adc7
Merge topic 'clang-tidy-export-fixes-dir'
...
232467eb1c clang-tidy: add <LANG>_CLANG_TIDY_EXPORT_FIXES_DIR property
Acked-by: Kitware Robot <kwrobot@kitware.com >
Acked-by: buildbot <buildbot@kitware.com >
Merge-request: !7982
2022-12-07 08:19:53 -05:00
Kyle Edwards
232467eb1c
clang-tidy: add <LANG>_CLANG_TIDY_EXPORT_FIXES_DIR property
...
Fixes : #21362
2022-12-06 10:39:29 -05:00
Brad King
5b1150e0e7
Merge topic 'link-options-cache'
...
7c63372c22 cmGeneratorTarget: Fix regression in CUDA device link options
Acked-by: Kitware Robot <kwrobot@kitware.com >
Merge-request: !7981
2022-12-05 12:55:50 -05:00
Brad King
7c63372c22
cmGeneratorTarget: Fix regression in CUDA device link options
...
Since commit f69d1872db (cmGeneratorTarget: Add caches to some
functions, 2022-11-23) we cache the computed link options for a target.
Cache the host and device link options separately.
2022-12-02 11:04:16 -05:00
Brad King
3b19541518
Merge topic 'add-generator-target-caches'
...
f69d1872db cmGeneratorTarget: Add caches to some functions
Acked-by: Kitware Robot <kwrobot@kitware.com >
Tested-by: buildbot <buildbot@kitware.com >
Merge-request: !7952
2022-11-30 07:28:12 -05:00
Pierre Testart
f69d1872db
cmGeneratorTarget: Add caches to some functions
...
Add caches to the following cmGeneratorTarget functions in order to
improve performance:
- GetIncludeDirectories
- GetCompileOptions
- GetCompileDefinitions
- GetPrecompileHeaders
- GetLinkOptions
- GetLinkDirectories
2022-11-28 08:40:11 -08:00
Ben Boeckel
e37ff5694c
cmGeneratorTarget: factor out fileset info and scanning detection
2022-11-23 18:52:36 -05:00
Ben Boeckel
9e61fc3d6d
cmGeneratorTarget: factor out dyndep support detection
2022-11-23 17:35:41 -05:00
Kyle Edwards
830eed374d
CMake: fix sizeof string literal violations
2022-11-18 09:37:58 -05:00
Kyle Edwards
09d7f947d6
cmGeneratorExpression: Require cmake instance
2022-11-11 12:29:41 -05:00
Brad King
7338a69881
Merge topic 'fix-cxx20-detection'
...
5e7c8f44ac Ninja: Restore support for compilers not defining a C++ standard level
Acked-by: Kitware Robot <kwrobot@kitware.com >
Acked-by: buildbot <buildbot@kitware.com >
Acked-by: Jaeden Amero <kitware@patater.com >
Acked-by: Martin Kojtal <martin.kojtal@arm.com >
Merge-request: !7896
2022-11-11 08:19:51 -05:00
Lingkai Dong
5e7c8f44ac
Ninja: Restore support for compilers not defining a C++ standard level
...
Since commit 386465bf83 (cmTarget: add support for C++ module fileset
types, 2022-04-08, v3.25.0-rc1~624^2~7), the Ninja generator checks for
C++20 support using logic that requires `CMAKE_<LANG>_STANDARD_DEFAULT`
to be non-empty. On some compilers, such as ARMClang, CMake does not
automatically detect and set default language standards, thus causing
`HaveStandardAvailable` to raise an internal error.
To fix this issue, if `CMAKE_CXX_STANDARD_DEFAULT` is empty, assume all
standards to be supported instead of calling `HaveStandardAvailable`.
This is consistent with how `CompileFeaturesNode::Evaluate` handles this
case.
Fixes : #24146
2022-11-10 11:01:40 -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
Kyle Edwards
b4e8ddbc2f
clang-tidy: enable cmStrLen() check and fix violations
2022-10-19 14:51:21 -04:00
Daniel Hannon
6942234bf5
VERIFY_INTERFACE_HEADER_SETS: Add IWYU pragma: associated to verification file
2022-10-07 19:00:28 +01:00
Brad King
dc5fc898f6
Xcode: Set object file locations using TARGET_TEMP_DIR
...
This avoids relying on `SYMROOT` to locate the object files.
Issue: #22550
2022-09-29 15:04:07 -04:00
Brad King
06404a1979
Merge topic 'check-library-properties-fix-performances-regression'
...
985b4c82a6 Check link libraries properties: fix performances regression
a47eef32a3 renames method FinalizeTargetCompileInfo() in FinalizeTargetConfiguration().
Acked-by: Kitware Robot <kwrobot@kitware.com >
Merge-request: !7651
2022-09-09 09:48:56 -04:00
Marc Chevrier
a47eef32a3
renames method FinalizeTargetCompileInfo() in FinalizeTargetConfiguration().
2022-09-07 14:23:21 +02:00
Kyle Edwards
2ef64745c8
Merge topic 'file-set-source-group'
...
970052fedd FILE_SET: Fix source group detection
bcc3965813 Tests: Fix VS10Project SourceGroupTreeCMakeLists check
Acked-by: Kitware Robot <kwrobot@kitware.com >
Acked-by: buildbot <buildbot@kitware.com >
Merge-request: !7609
2022-08-25 09:14:21 -04:00
Kyle Edwards
970052fedd
FILE_SET: Fix source group detection
...
Call MatchChildrenFiles() instead of MatchesFiles() in order to
account for files being in subgroups of source groups.
Fixes : #23880
2022-08-24 16:07:24 -04:00
Kyle Edwards
e7bfd0ac7a
Merge topic 'all-verify-interface-header-sets'
...
83e44002ae VERIFY_INTERFACE_HEADER_SETS: Add verification target for all
Acked-by: Kitware Robot <kwrobot@kitware.com >
Merge-request: !7536
2022-08-03 09:58:43 -04:00
Brad King
f6917a2f1f
Merge topic 'cuda_add_lto_support'
...
96bc59b1ca CUDA: Add Device LTO support for nvcc
1527d48cd0 CheckIPO: Refactor logic selecting test source files
4a552ab4ad remove unused variables
6eda92d037 remove unused variable
Acked-by: Kitware Robot <kwrobot@kitware.com >
Merge-request: !7389
2022-08-03 09:42:17 -04:00
Kyle Edwards
83e44002ae
VERIFY_INTERFACE_HEADER_SETS: Add verification target for all
...
Fixes : #23802
2022-08-03 08:19:08 -04:00
Brad King
b6ffca53f8
Merge topic 'verify-interface-header-sets-interface-library-source-language'
...
41f15193e5 VERIFY_INTERFACE_HEADER_SETS: Fall back to global languages
Acked-by: Kitware Robot <kwrobot@kitware.com >
Tested-by: buildbot <buildbot@kitware.com >
Merge-request: !7517
2022-07-28 08:12:10 -04:00
Brad King
12830cc2a9
Merge topic 'verify-interface-header-sets-interface-library-source-language' into release-3.24
...
41f15193e5 VERIFY_INTERFACE_HEADER_SETS: Fall back to global languages
Acked-by: Kitware Robot <kwrobot@kitware.com >
Tested-by: buildbot <buildbot@kitware.com >
Merge-request: !7517
2022-07-28 08:12:09 -04:00
Brad King
d9cca8e83d
Merge topic 'verify-interface-header-sets-add-compile-definitions'
...
27fd172d8d VERIFY_INTERFACE_HEADER_SETS: Finalize compile info for verify targets
626e641a19 cmTarget: Factor out FinalizeTargetCompileInfo()
Acked-by: Kitware Robot <kwrobot@kitware.com >
Merge-request: !7516
2022-07-28 08:11:19 -04:00