Martin Duffy
ec2ba29ac5
Ninja: Allow compilation before generation of dependencies' private sources
...
This requires knowing when a generated header is public, which we can
model using file sets. Add policy CMP0154 to treat generated sources
as private by default in targets with file sets. Generated public
headers can be specified in public file sets.
Fixes : #24959
Issue: #15555
2023-09-20 10:25:24 -04:00
Ben Boeckel
80d6544398
cxxmodules: generate synthetic targets as an initial pass
...
We need to be able to construct BMIs that will be usable from the client
modules for the target importing the module, so create BMI-only
compilation rules for `IMPORTED` targets to create these BMIs.
2023-08-17 14:42:53 -04:00
Ben Boeckel
caf5971c8a
cmTarget: report that synthetic targets can compile sources
2023-08-17 14:42:53 -04:00
Ben Boeckel
3a8ea5c3a0
cmTarget: rename entry copying method
...
It will also be used to copy from other targets, not just directories.
2023-08-17 14:42:53 -04:00
Ben Boeckel
1ccf25b049
cmTarget: track and store IMPORTED_CXX_MODULES_ usage properties
...
While not "usage requirements" directly, when applied to a target that
will eventually have the BMI compile rules attached to them, they need
tracked as such.
2023-08-17 14:42:53 -04:00
Craig Scott
84eae7aeda
OPTIMIZE_DEPENDENCIES: Skip order-only deps for non-linking targets
...
Fixes : #21517
2023-08-10 09:17:56 +10:00
Ben Boeckel
d718262faa
cmTarget: handle HIP_STANDARD like other language standards
2023-07-29 09:35:20 -04:00
Kyle Edwards
7050ac56a1
macOS: Add support for linking against .xcframework folders
...
Issue: #21752
2023-07-26 17:00:01 -04:00
Brad King
c96cb57e8e
Merge topic 'property-typo-fix'
...
c172eecea6 cmTarget: Restore Fortran_PREPROCESS property initialization
Acked-by: Kitware Robot <kwrobot@kitware.com >
Acked-by: buildbot <buildbot@kitware.com >
Merge-request: !8654
2023-07-25 13:55:56 -04:00
Ben Boeckel
c172eecea6
cmTarget: Restore Fortran_PREPROCESS property initialization
...
Fix a typo from commit e522f8ca06 (cmTarget: factor out properties
initialized for target which compile, 2023-02-01, v3.27.0-rc1~577^2~13),
that broke this property.
Also update the test suite to use this upgrade as some level of
coverage.
Fixes : #25123
2023-07-25 11:35:24 -04:00
Robert Maynard
7351d590ee
cmTarget: Add a way to represent imported shared library stubs
...
Shared library stubs can be used for linking, but not at runtime.
Their role is similar to import libraries on Windows, so represent
their location with the `IMPORTED_IMPLIB` target property.
Fixes : #24940
2023-07-18 13:21:01 -04:00
Marc Chevrier
45f17e5a85
cmList: Add container conversion to string
2023-06-22 15:44:17 +02:00
Brad King
f6435f799e
Merge topic 'automoc-moc-options-test'
...
1f4b374d6e cmQtAutoGenInitializer: Reduce string copies
b6f66b445a cmQtAutoGenInitializer: Remove no-op calls
55d93bdabf cmQtAutoGenInitializer: Improve const correctness
feb56a666f cmTarget: Improve const correctness of AddUtility
5e513e562f Help: Add AUTOMOC_MOC_OPTIONS example
5380ad9d58 Tests: Add test for AUTOMOC_MOC_OPTIONS
Acked-by: Kitware Robot <kwrobot@kitware.com >
Merge-request: !8523
2023-06-01 11:19:19 -04:00
Orkun Tokdemir
feb56a666f
cmTarget: Improve const correctness of AddUtility
2023-05-31 13:01:29 -04:00
Ben Boeckel
6ff5cdc533
cxxmodules: remove support for CXX_MODULE_HEADER_UNITS filesets
...
There's no backing implementation for header units anyways, so just
remove it for now.
2023-05-31 10:57:11 -04:00
Marc Chevrier
aa5fed5052
SetProperty: suppress raw pointer usage
2023-05-26 14:48:22 +02:00
Brad King
28dd02c3ba
Merge topic 'autogen-system-include'
...
7bf4e30090 Autogen: Default AUTOGEN_USE_SYSTEM_INCLUDE to ON if it is not set
033dc7ee2f Autogen: Add AUTOGEN_USE_SYSTEM_INCLUDE target property
8ba16db163 Tests/RunCMake: Add option for dynamic expected output
Acked-by: Kitware Robot <kwrobot@kitware.com >
Acked-by: buildbot <buildbot@kitware.com >
Merge-request: !8400
2023-05-04 09:01:08 -04:00
Orkun Tokdemir
033dc7ee2f
Autogen: Add AUTOGEN_USE_SYSTEM_INCLUDE target property
...
`AUTOGEN_USE_SYSTEM_INCLUDE` was added. `AUTOGEN_USE_SYSTEM_INCLUDE`
is a boolean property that can be set on a target to indicate that the
autogen target include directory should be added as a system include
directory or normal include directory to the target.
2023-05-03 09:03:46 -04:00
Brad King
339f220575
Merge topic 'vs-debugger-init'
...
35566b48b4 VS: Add variables to initialize debugger-related properties
Acked-by: Kitware Robot <kwrobot@kitware.com >
Merge-request: !8445
2023-05-02 08:45:41 -04:00
Alex Neundorf
35566b48b4
VS: Add variables to initialize debugger-related properties
...
Add variables to initialize target properties `VS_DEBUGGER_COMMAND`,
`VS_DEBUGGER_COMMAND_ARGUMENTS`, `VS_DEBUGGER_ENVIRONMENT`, and
`VS_DEBUGGER_WORKING_DIRECTORY`.
2023-05-01 13:39:00 -04:00
Marc Chevrier
241304190f
CMake code rely on cmList class for CMake lists management (part. 2)
2023-04-29 09:54:31 +02:00
Marc Chevrier
e08ba229ee
CMake code rely on cmList class for CMake lists management (part. 1)
2023-04-24 10:41:10 +02:00
Brad King
5386dc582b
Merge topic 'autogen-exe-vars'
...
b3d1797508 Autogen: Add CMAKE_AUTO*_EXECUTABLE variables
Acked-by: Kitware Robot <kwrobot@kitware.com >
Merge-request: !8352
2023-03-23 08:46:45 -04:00
Orkun Tokdemir
b3d1797508
Autogen: Add CMAKE_AUTO*_EXECUTABLE variables
...
Add the `CMAKE_AUTOMOC_EXECUTABLE`, `CMAKE_AUTOUIC_EXECUTABLE`, and
`CMAKE_AUTORCC_EXECUTABLE` variables to initialize the corresponding
`AUTO{MOC,UIC,RCC}_EXECUTABLE` target properties.
Fixes : #20071
2023-03-22 07:31:56 -04:00
Brad King
2c2c2c2227
Merge topic 'vs-windows-min-version'
...
6546305b01 VS: Add CMAKE_VS_WINDOWS_TARGET_PLATFORM_MIN_VERSION variable
Acked-by: Kitware Robot <kwrobot@kitware.com >
Merge-request: !8319
2023-03-16 09:11:07 -04:00
halx99
6546305b01
VS: Add CMAKE_VS_WINDOWS_TARGET_PLATFORM_MIN_VERSION variable
...
Provide a way to initialize the `VS_WINDOWS_TARGET_PLATFORM_MIN_VERSION`
target property on targets. It sets `WindowsTargetPlatformMinVersion`
in `.vcxproj` files.
2023-03-15 10:03:16 -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
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