summaryrefslogtreecommitdiffstats
path: root/Source
Commit message (Collapse)AuthorAgeFilesLines
* INTERFACE_LINK_LIBRARIES_DIRECT: Honor link dependencies through LINK_ONLYBrad King2022-03-221-6/+8
| | | | | | | | | | | | | | | | | | In commit f3ad061858 (Add usage requirements to update direct link dependencies, 2022-01-12, v3.23.0-rc1~44^2), we evaluated the transitive closure of `INTERFACE_LINK_LIBRARIES` as a non-linking usage requirement. That left out `INTERFACE_LINK_LIBRARIES_DIRECT` link dependencies that appear behind private dependencies of a static library, guarded by the `$<LINK_ONLY:...>` generator expression. At the time, that decision was intentional, in order to prevent arbitrary usage requirements from leaking out of `PRIVATE` dependencies. Since then, we've revised evaluation of `LINK_LIBRARIES` to distinguish between collecting link dependencies and other usage requirements. Use that information when following `INTERFACE_LINK_LIBRARIES` to collect the matching kind of requirements from `INTERFACE_LINK_LIBRARIES_DIRECT`. Fixes: #22496
* LINK_LIBRARIES: Evaluate separately for linking and usage requirementsBrad King2022-03-2210-43/+89
| | | | | | | | | | | | | | | | | | | | | | | | | We evaluate `LINK_LIBRARIES` and `INTERFACE_LINK_LIBRARIES` for two purposes: * Constructing the link line. * Collecting usage requirements. We evaluate `INTERFACE_LINK_LIBRARIES` separately for each purpose in order to support the `$<LINK_ONLY:...>` generator expression used to express private link dependencies of a static library. Previously we only evaluated `LINK_LIBRARIES` for linking, and used that result for collecting usage requirements too. Therefore `$<LINK_ONLY:...>` does not work in `LINK_LIBRARIES`. With the introduction of `INTERFACE_LINK_LIBRARIES_DIRECT`, evaluation of `LINK_LIBRARIES` now needs to distinguish these two cases in order to honor link dependencies encountered through `$<LINK_ONLY:...>` without also exposing other usage requirements through private dependencies of a static library. Revise internal infrastructure to distinguish the two cases when evaluating `LINK_LIBRARIES`. Make the information available in code paths for `INTERFACE_LINK_LIBRARIES_DIRECT` and `LINK_ONLY`. Defer actually using the information to later commits. Issue: #22496
* Merge topic 'cleanup-define_property'Brad King2022-03-221-13/+13
|\ | | | | | | | | | | | | | | | | | | | | 87c3b5e421 define_property(): Only test prefix if INITIALIZE_FROM_VARIABLE is given 9b50f221f6 Help: Update the main purpose of define_property() e993e2c52c Help: Clean up INITIALIZE_FROM_VARIABLE define_property() option Acked-by: Kitware Robot <kwrobot@kitware.com> Tested-by: buildbot <buildbot@kitware.com> Acked-by: Kyle Edwards <kyle.edwards@kitware.com> Merge-request: !7090
| * define_property(): Only test prefix if INITIALIZE_FROM_VARIABLE is givenCraig Scott2022-03-191-13/+13
| |
* | Merge topic 'productbuild-rootVolumeOnly'Brad King2022-03-221-8/+17
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | 2a8df7e7db productbuild: Don't write rootVolumeOnly attribute if writing domains 95eb8cbcfc CPack: Avoid space / tab mix in productbuild distribution.xml template 28fdc3a536 productbuild: Simplify internal CPACK_PRODUCTBUILD_DOMAINS usage Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !7092
| * | productbuild: Don't write rootVolumeOnly attribute if writing domainsCraig Scott2022-03-211-3/+13
| | | | | | | | | | | | | | | | | | The rootVolumeOnly attribute is deprecated. Apple docs say to use domains instead. Fixes: #23343
| * | productbuild: Simplify internal CPACK_PRODUCTBUILD_DOMAINS usageCraig Scott2022-03-211-5/+4
| |/ | | | | | | | | | | | | There's no benefit to storing the CPACK_PRODUCTBUILD_DOMAINS prefix in a variable and appending to it in the C++ code. It has the disadvantage of making it harder to find usages of the variables with a suffix appended to that string. Expand out the strings at the places they are used so that they are easier to spot.
| * CMake 3.23.0-rc4v3.23.0-rc4Brad King2022-03-181-1/+1
| |
| * Merge topic 'always_prefer_last_source_dir' into release-3.23Brad King2022-03-182-23/+7
| |\ | | | | | | | | | | | | | | | | | | | | | b44ad7992a cmake: Always prefer the last source directory provided Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !7084
* | | CMake Nightly Date StampKitware Robot2022-03-221-1/+1
| | |
* | | Merge topic 'ghs_predefined_targets'Brad King2022-03-213-141/+261
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 399e73b89a GHS: release note 829e946c69 GHS: Update tests for updated binary layout 93c1acd8ff GHS: List predefined targets before user targets in GUI bdb213819c GHS: Do not include WindowsPaths b3e9c72901 GHS: use INSTALL target a645287784 GHS: update build command 724b5491ef GHS: Rearrange project files in binary directory edff0f6a1d GHS: Use Custom Target for ALL_BUILD ... Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !7079
| * | | GHS: List predefined targets before user targets in GUIFred Baksik2022-03-172-4/+17
| | | |
| * | | GHS: use INSTALL targetFred Baksik2022-03-171-2/+0
| | | | | | | | | | | | | | | | For consistancy use upper case install for pre-defined targets.
| * | | GHS: update build commandFred Baksik2022-03-171-24/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Remove unecessary logic for selecting gbuild -- CMake defaults to the Cache entry * Support building multiple targets * Fix error when ctest passes in a vector potentially containing an empty string. -- At minimum build the ALL_BUILD project, never just the Top Project. * Add verbose support * There can only be one top-level project per directory because the project() command can only be used once per directory. Multiple calls of project() only use the last invocation.
| * | | GHS: Rearrange project files in binary directoryFred Baksik2022-03-172-32/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The top level project and the target projects are all in the same directory so they are easier to find and looks nicer in the GUI. All of the ancillary project files are located in the target subdirectory.
| * | | GHS: Use Custom Target for ALL_BUILDFred Baksik2022-03-172-82/+76
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use a Custom Target for ALL_BUILD instead of special code. This also changes the name from <project>.ALL_BUILD.tgt to ALL_BUILD.tgt. The name change is part of standardizing the CMakePredefinedTargets names.
| * | | GHS: Create RERUN_CMAKE Custom TargetFred Baksik2022-03-172-1/+115
| | | | | | | | | | | | | | | | | | | | Create a Custom Target that will re-run CMake on user demand if any of the CMake input files have changed.
| * | | GHS: Fix gbuild job controlFred Baksik2022-03-171-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | gbuild command line is "-parallel[=n]". Fixes: #23252
* | | | CMake Nightly Date StampKitware Robot2022-03-211-1/+1
| | | |
* | | | CMake Nightly Date StampKitware Robot2022-03-201-1/+1
| | | |
* | | | CMake Nightly Date StampKitware Robot2022-03-191-1/+1
| | | |
* | | | Merge topic 'cmake-P-args'Brad King2022-03-181-0/+6
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 36056ff5a3 cmake: Improve acceptance of arbitrary arguments in -P script mode Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !7083
| * | | | cmake: Improve acceptance of arbitrary arguments in -P script modeBrad King2022-03-171-0/+6
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | The fix in commit e4f1b301fe (cmake: Allow arbitrary args passed to CMake script, 2020-05-04, v3.18.0-rc1~211^2) only applied to "cache" arguments like `-DFOO`. Extend the fix to allow arbitrary arguments that collide with other CMake arguments like `-S` and `-B`.
* | | | Merge topic 'always_prefer_last_source_dir'Brad King2022-03-182-23/+7
|\ \ \ \ | | |_|/ | |/| | | | | | | | | | | | | | | | | | | | | | b44ad7992a cmake: Always prefer the last source directory provided Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !7084
| * | | cmake: Always prefer the last source directory providedRobert Maynard2022-03-172-23/+7
| | | | | | | | | | | | | | | | Fixes: #23334
* | | | CMake Nightly Date StampKitware Robot2022-03-181-1/+1
| |/ / |/| |
* | | Merge topic 'tll-genex-concat'Brad King2022-03-171-2/+27
|\ \ \ | | |/ | |/| | | | | | | | | | | | | | | | add64399c5 target_link_libraries: Restore LINK_ONLY for multiple static lib dependencies Acked-by: Kitware Robot <kwrobot@kitware.com> Tested-by: buildbot <buildbot@kitware.com> Merge-request: !7078
| * | target_link_libraries: Restore LINK_ONLY for multiple static lib dependenciesBrad King2022-03-161-2/+27
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since commit c1e812ad4f (target_link_libraries: Improve tolerance of unquoted generator expressions, 2022-02-15, v3.23.0-rc2~11^2) we accumulate consecutive non-keyword arguments to recover an unquoted generator expression as a single entry. When given multiple consecutive non-genex library names, the grouping breaks our logic that expects each entry is either a raw target name or a genex. Revise the logic to only accumulate multiple arguments when they end inside a partial genex. This bug caused `target_link_libraries` to stop wrapping static library private dependencies in `$<LINK_ONLY:...>` for `INTERFACE_LINK_LIBRARIES` when multiple consecutive library names are given. Add a test case covering that behavior. Fixes: #23302
| * CMake 3.23.0-rc3v3.23.0-rc3Brad King2022-03-101-1/+1
| |
* | CMake Nightly Date StampKitware Robot2022-03-171-1/+1
| |
* | Merge topic 'cm_cxx_filesystem.cxx-revert-erroneous-change'Brad King2022-03-161-2/+0
|\ \ | | | | | | | | | | | | | | | | | | | | | 10689e564f cm_cxx_filesystem.cxx: revert erroneous change Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !7072
| * | cm_cxx_filesystem.cxx: revert erroneous changeMarc Chevrier2022-03-151-2/+0
| | | | | | | | | | | | Revert erroneous change introduced by commit 0a81ea1.
* | | CMake Nightly Date StampKitware Robot2022-03-161-1/+1
| | |
* | | Merge topic 'find_package-global-imported'Brad King2022-03-151-1/+1
|\ \ \ | |/ / |/| | | | | | | | | | | | | | | | | f5bca247ee cmMakefile: Add missing initializer for recently added member Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !7073
| * | cmMakefile: Add missing initializer for recently added memberBrad King2022-03-151-1/+1
| | | | | | | | | | | | | | | | | | | | | In commit 2f1ffa003c (find_package: Add support for default GLOBAL imported targets, 2022-03-10) we added a field without an initializer. This was exposed by a few failures in nightly testing. Previously it worked only by chance that the member's memory had suitable values.
* | | CMake Nightly Date StampKitware Robot2022-03-151-1/+1
| | |
* | | CMake Nightly Date StampKitware Robot2022-03-141-1/+1
| | |
* | | CMake Nightly Date StampKitware Robot2022-03-131-1/+1
| | |
* | | CMake Nightly Date StampKitware Robot2022-03-121-1/+1
| | |
* | | Merge topic 'find_package-global-imported'Brad King2022-03-116-0/+67
|\ \ \ | |/ / | | | | | | | | | | | | | | | | | | 2f1ffa003c find_package: Add support for default GLOBAL imported targets Acked-by: Kitware Robot <kwrobot@kitware.com> Tested-by: buildbot <buildbot@kitware.com> Merge-request: !6862
| * | find_package: Add support for default GLOBAL imported targetsJohn Parent2022-03-106-0/+67
| | | | | | | | | | | | | | | | | | | | | | | | | | | Allow find package to promote scope of imported targets by specifying an argument to `find_package` or by specifying a CMake variable. * Add support for CMAKE_GLOBAL_IMPORT_SCOPE variable * Add support for GLOBAL argument to find_package Additionally add testing for above features.
* | | Merge topic 'cuda-arch-native'Brad King2022-03-112-1/+19
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | d1b48bfabd CUDA: Add support for CUDA_ARCHITECTURES=native 632752d62e CUDA: Add FIXME comments about deferring architecture testing 45e9ab0372 Tests: Rename CudaOnly.{All => ArchSpecial} Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !7050
| * | | CUDA: Add support for CUDA_ARCHITECTURES=nativeBrad King2022-03-102-1/+19
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | CUDA 11.6 added the `nvcc -arch=native` flag to automatically compile for the host GPUs' architectures. Add support for specifying this special `native` value in `CMAKE_CUDA_ARCHITECTURES` and `CUDA_ARCHITECTURES`. During the compiler ABI detection step, detect the native architectures so we can pass them explicitly when using Clang or older versions of nvcc. Fixes: #22375
* | | CMake Nightly Date StampKitware Robot2022-03-111-1/+1
|/ /
* | Merge topic 'ctest-WORKING_DIRECTORY'Brad King2022-03-101-0/+8
|\ \ | | | | | | | | | | | | | | | | | | | | | a116fd413d ctest: print WORKING_DIRECTORY property with -V Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !7060
| * | ctest: print WORKING_DIRECTORY property with -VKevin Puetz2022-03-091-0/+8
| | |
* | | CMake Nightly Date StampKitware Robot2022-03-101-1/+1
| | |
* | | Merge topic 'ctest_truncate'Brad King2022-03-0911-32/+163
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 140704d443 ctest: add option for output truncation 359e5b17d8 presets: bump version to v5 4634de335b cmCTestTestHandler: refactor CleanTestOutput method Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6993
| * | | ctest: add option for output truncationFrank Winklmeier2022-03-0811-17/+141
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add `--test-output-truncation` to `ctest`. This option can be used to customize which part of the test output is being truncated. Currently supported values are `tail`, `middle` and `head`. Also add equivalent `CTEST_CUSTOM_TEST_OUTPUT_TRUNCATION` variable. Fixes: #23206
| * | | presets: bump version to v5Frank Winklmeier2022-03-081-1/+1
| | | | | | | | | | | | | | | | Prepare for new test preset fields.