Commit Graph

1441 Commits

Author SHA1 Message Date
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
Marc Chevrier 2e24123186 Apple: text-based stubs: manage imported configurations mapping 2023-03-05 14:39:56 +01: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
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 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 1d0426f642 cmTarget: make Visibility an enum class 2023-02-14 12:28: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 dd968ca388 cmTarget: convert VS property settings to the new property lambda 2023-02-02 12:43:14 -05:00
Ben Boeckel b69fba7cd7 cmTarget: factor out POSITION_INDEPENDENT_CODE initialization
This property is initialized using the common framework, but then forced
on SHARED and MODULE targets, so just post-process the property in this
case.
2023-02-02 12:43:14 -05:00
Ben Boeckel 42575a660f cmTarget: factor out properties with targets with commands 2023-02-02 12:43:13 -05:00
Ben Boeckel f551f49a17 cmTarget: factor out properties for targets with exports 2023-02-02 12:43:13 -05:00
Ben Boeckel d1627118e7 cmTarget: factor out executable-requiring properties 2023-02-02 12:43:13 -05:00
Ben Boeckel f0ae00d727 cmTarget: factor out linkable normal library target properties 2023-02-02 12:43:13 -05:00
Ben Boeckel 9f7a25a2c7 cmTarget: factor out non-executable normal target with artifact properties 2023-02-02 12:43:13 -05:00
Ben Boeckel ab2b967ce6 cmTarget: factor out normal targets with artifact properties 2023-02-02 12:43:13 -05:00
Ben Boeckel c3dbbcef65 cmTarget: factor out normal non-imported target properties 2023-02-02 12:43:13 -05:00
Ben Boeckel 92a4b21ac9 cmTarget: factor out non-imported target properties 2023-02-02 12:43:13 -05:00
Ben Boeckel 7a34637c3d cmTarget: factor out properties for normal targets 2023-02-02 12:43:13 -05:00
Ben Boeckel 35d6a6b186 cmTarget: factor out Xcode and with-compiled source properties 2023-02-02 12:43:13 -05:00
Ben Boeckel 8004fe3f14 cmTarget: factor out Xcode-requiring properties 2023-02-02 12:43:13 -05:00
Ben Boeckel e522f8ca06 cmTarget: factor out properties initialized for target which compile 2023-02-02 12:43:13 -05:00
Ben Boeckel 8844969f16 cmTarget: factor out always-initialized properties 2023-02-02 12:43:13 -05:00
Ben Boeckel 23bed98a20 cmTarget: create a TargetProperty structure
This structure will encapsulate when properties are initialized within a
target.
2023-02-02 12:43:13 -05:00
Brad King a58b0baca2 Merge topic 'cmTarget-refactorings'
33f629184f cmTarget: simplify `CheckLinkLibraryPattern`
22b9ce73e7 cmTarget: refactor INTERFACE_LINK_LIBRARIES_DIRECT_EXCLUDE usage requirements
332d2f8f52 cmTarget: refactor INTERFACE_LINK_LIBRARIES_DIRECT usage requirements
15eec07500 cmTarget: refactor INTERFACE_LINK_LIBRARIES usage requirements
e80689d101 cmTarget: refactor LINK_LIBRARIES usage requirements
4f009d2121 cmTarget: refactor LINK_DIRECTORIES usage requirements
99e783e735 cmTarget: refactor LINK_OPTIONS usage requirements
fd295dd263 cmTarget: refactor SOURCES usage requirements
...

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !8127
2023-02-01 09:07:58 -05:00
Ben Boeckel 33f629184f cmTarget: simplify CheckLinkLibraryPattern
Now that usage properties have more of a representation, the function
can just take the requirement directly.
2023-01-31 10:07:02 -05:00
Ben Boeckel 22b9ce73e7 cmTarget: refactor INTERFACE_LINK_LIBRARIES_DIRECT_EXCLUDE usage requirements 2023-01-31 10:07:02 -05:00
Ben Boeckel 332d2f8f52 cmTarget: refactor INTERFACE_LINK_LIBRARIES_DIRECT usage requirements 2023-01-31 10:07:02 -05:00
Ben Boeckel 15eec07500 cmTarget: refactor INTERFACE_LINK_LIBRARIES usage requirements 2023-01-31 10:07:02 -05:00
Ben Boeckel e80689d101 cmTarget: refactor LINK_LIBRARIES usage requirements 2023-01-31 10:07:02 -05:00
Ben Boeckel 4f009d2121 cmTarget: refactor LINK_DIRECTORIES usage requirements 2023-01-31 10:07:02 -05:00
Ben Boeckel 99e783e735 cmTarget: refactor LINK_OPTIONS usage requirements 2023-01-31 10:07:02 -05:00
Ben Boeckel fd295dd263 cmTarget: refactor SOURCES usage requirements 2023-01-31 10:07:02 -05:00
Ben Boeckel b21ab2638f cmTarget: refactor PRECOMPILE_HEADERS usage requirements 2023-01-31 10:07:02 -05:00
Ben Boeckel 8566336776 cmTarget: refactor COMPILE_DEFINITIONS usage requirements 2023-01-31 10:07:02 -05:00
Ben Boeckel 70555450fe cmTarget: refactor COMPILE_FEATURES usage requirements 2023-01-31 10:07:02 -05:00
Ben Boeckel 03b9240d6b cmTarget: refactor COMPILE_OPTIONS usage requirements 2023-01-31 10:07:02 -05:00
Ben Boeckel 91561103de cmTarget: refactor INCLUDE_DIRECTORIES usage requirements 2023-01-31 10:07:02 -05:00
Ben Boeckel f644fc8aca cmTarget: introduce a UsageRequirementProperty structure
This structure will encapsulate the behaviors of usage requirements.
There are a number of them now and they all behave very similarly, so
try to reduce the code duplication as much as possible.
2023-01-31 10:07:02 -05:00
Ben Boeckel a7c29f3ebd cmTarget: use static string views for per-config properties 2023-01-30 09:32:44 -05:00
Ben Boeckel 47315d817c cmTarget: group remaining properties
These are kind of a mixed assortment.
2023-01-30 09:25:37 -05:00
Ben Boeckel 32d21f215f cmTarget: put build graph-related properties into a group 2023-01-30 09:25:36 -05:00
Ben Boeckel 6f9821d179 cmTarget: put static analysis (co-compile) properties in a group 2023-01-30 09:25:35 -05:00
Ben Boeckel ead9ff61f9 cmTarget: put linking-related properties in a group 2023-01-30 09:25:34 -05:00
Ben Boeckel 9bb824a237 cmTarget: put compile-related properties in a group 2023-01-30 09:25:31 -05:00
Ben Boeckel c33d7d1162 cmTarget: use cmNonempty rather than local implementation 2023-01-26 23:23:12 -05:00
Ben Boeckel 90d74fcc85 cmTarget: use an enum for the action when writing fileset properties 2023-01-26 23:23:12 -05:00
Ben Boeckel b532911c9e cmTarget: simplify fileset type property management
Instead of copy/pasting conditionals for each fileset type, just make an
array of the structures and iterate over them.
2023-01-26 23:23:12 -05:00