Commit Graph

29542 Commits

Author SHA1 Message Date
Brad King 0a67c3ebe1 Xcode: Remove dependency Makefile hacks under the "new build system"
The original Xcode build system did not properly re-link targets that consumed
object libraies.  We worked around that with a post-build command on the object
libraries themselves that removed their consumers if out of date.  The "new
build system" does not appear to need such help, so drop the workaround.
2020-09-24 14:53:28 -04:00
Brad King c6c7f6fbeb Xcode: Remove remnants of ancient XCODE_DEPEND_HELPER utility target
The target has not been generated since commit d92d51429e (BUG: fix for bug
6193, fix xcode depend helper, 2008-01-10, v2.6.0~553).  Remove it from
the list of special targets.
2020-09-24 14:53:22 -04:00
Craig Scott ac5195c408 Merge topic 'find_package-version-range'
5b3356263c CMakePackageConfigHelpers: Add version range support
6bfc442fde FPHSA: add support of version range
d7df81067b find_package: Add support of version range
09095dbcd2 cmFindPackageCommand: Refactoring

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Michael Hirsch, Ph.D. <michael@scivision.dev>
Merge-request: !5226
2020-09-24 07:29:03 -04:00
Kitware Robot d18c564210 CMake Nightly Date Stamp 2020-09-24 00:01:12 -04:00
Brad King d827fdb6f9 Merge topic 'separate_arguments-program'
d832c1cc7d separate_arguments: add option PROGRAM
f4c21d4953 separate_arguments: refactoring

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5253
2020-09-23 12:05:26 -04:00
Brad King 869d6c82a0 Merge topic 'install-EXPORT-source-CONFIG'
bf114602da install(EXPORT): Fix exporting target w/ source named using CONFIG genex

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5240
2020-09-23 11:58:02 -04:00
Brad King 145730c746 Merge topic 'binary-dir-props'
f2daa025e3 {get,set}_property: Add support for referencing binary directories

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Ben Boeckel <ben.boeckel@kitware.com>
Merge-request: !5254
2020-09-23 10:22:56 -04:00
Brad King f2daa025e3 {get,set}_property: Add support for referencing binary directories
Index directories by their binary directory path in addition to their
source directory path.

Fixes: #19262
2020-09-23 09:25:42 -04:00
Marc Chevier d7df81067b find_package: Add support of version range
This enhancement is the first step for solving issue #21107
2020-09-23 12:52:25 +02:00
Marc Chevrier 09095dbcd2 cmFindPackageCommand: Refactoring
* Use member initialisation at declaration
* AddFindDefinition: same signature as cmMakefile::AddDefinition for consistency
* Factorise version variables creation
2020-09-23 12:52:25 +02:00
Kitware Robot 03b3b5ab4b CMake Nightly Date Stamp 2020-09-23 00:01:20 -04:00
Marc Chevrier d832c1cc7d separate_arguments: add option PROGRAM
Fixes: #21217
2020-09-22 16:32:34 +02:00
Marc Chevrier f4c21d4953 separate_arguments: refactoring 2020-09-22 16:32:34 +02:00
Brad King 966c3263c2 Merge topic 'file-ARCHIVE-compression-level'
195d14e781 file(ARCHIVE_CREATE): Add option to control compression level

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Cristian Adam <cristian.adam@gmail.com>
Merge-request: !5242
2020-09-22 07:43:31 -04:00
Deniz Bahadir bf114602da install(EXPORT): Fix exporting target w/ source named using CONFIG genex
Fixes: #21203
2020-09-22 07:35:02 -04:00
Kitware Robot 97ff10d337 CMake Nightly Date Stamp 2020-09-22 00:01:28 -04:00
Asit Dhal 195d14e781 file(ARCHIVE_CREATE): Add option to control compression level
Fixes: #21125
2020-09-21 13:08:11 -04:00
Brad King 64901e053b Merge topic 'xcode-12-new-build-system'
b8ecd4df5f ExternalProject: Use CMP0114 NEW behavior with Xcode "new build system"
fe258f6382 Tests: Skip RunCMake.XcodeProject device cases for Xcode "new build system"
1c3d2d0951 Tests: Skip Qt*Autogen.MocSkipSource case for Xcode "new build system"
542884e527 Tests: Update RunCMake.XcodeProject cases for Xcode "new build system"
832a78be2d Tests: Update BuildDepends test for Xcode "new build system"
ff76c51ec3 Tests: Update RunCMake.file case with workaround for Xcode "new build system"
1806cdd17c Tests: Avoid duplicate custom commands for Xcode "new build system"
8d5f4c4db9 Xcode: Switch to the "new build system" for Xcode 12 and above
...

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5229
2020-09-21 09:10:48 -04:00
Brad King ca5e309940 Merge topic 'foreach-int-parse-range-check'
0412b55b83 foreach: Fix crash parsing integer out of range

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5239
2020-09-21 08:55:29 -04:00
Kitware Robot 4abf0747fc CMake Nightly Date Stamp 2020-09-21 00:01:28 -04:00
Kitware Robot 39a5c0c82c CMake Nightly Date Stamp 2020-09-20 00:01:12 -04:00
Kitware Robot a37c0a543a CMake Nightly Date Stamp 2020-09-19 00:01:21 -04:00
Brad King 8d5f4c4db9 Xcode: Switch to the "new build system" for Xcode 12 and above
Provide an option to switch back to the original build system via
`-T buildsystem=1`.

Fixes: #18088
2020-09-18 13:02:14 -04:00
Brad King 2db623f554 Xcode: Add option to specify build system variant
Extend the `-T <toolset>` option to support a `buildsystem=` field with
the Xcode generator.  Add a `CMAKE_XCODE_BUILD_SYSTEM` variable to
inform project code about the selected build system variant.
2020-09-18 12:49:17 -04:00
Brad King 3ab18c870d Xcode: Factor out build phase variable declarations 2020-09-18 12:49:17 -04:00
Brad King 0d03717996 Xcode: Clarify name of legacy run script build phase helper 2020-09-18 12:49:17 -04:00
Ben McMorran 0412b55b83 foreach: Fix crash parsing integer out of range 2020-09-18 09:54:58 -04:00
Brad King 5d952fd6e2 Merge topic 'ninja-multi-automoc-regression'
23fe4b861f Ninja Multi-Config: Fix dependencies of custom commands

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5238
2020-09-18 08:42:28 -04:00
Kitware Robot c829dc4bfa CMake Nightly Date Stamp 2020-09-18 00:01:23 -04:00
Kyle Edwards 23fe4b861f Ninja Multi-Config: Fix dependencies of custom commands
a9fd3a10 addressed the scenario where the depending target is a
utility target, but not the scenario where the dependent target is
a utility target. Account for this scenario.

Also add a Qt-specific test case.

Fixes: #21118
2020-09-17 15:46:57 -04:00
Brad King bb8afa0020 Merge topic 'string-json-support'
8eab76eb84 string(JSON): Adds JSON parsing support to the string command

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Ben Boeckel <ben.boeckel@kitware.com>
Acked-by: Cristian Adam <cristian.adam@gmail.com>
Acked-by: Michael Hirsch, Ph.D. <michael@scivision.dev>
Merge-request: !5159
2020-09-17 09:47:43 -04:00
Kitware Robot bdc752e3d5 CMake Nightly Date Stamp 2020-09-17 00:01:17 -04:00
Peter Steneteg 8eab76eb84 string(JSON): Adds JSON parsing support to the string command
Adds a set of sub commands to the string command for parsing JSON, the
JSON commands are: GET, TYPE, MEMBER, LENGTH, REMOVE, SET, and EQUAL.

Closes: #19501
2020-09-16 13:55:24 -04:00
Kitware Robot b16a3f3301 CMake Nightly Date Stamp 2020-09-16 00:01:19 -04:00
Brad King b7590b8845 Merge topic 'ExternalProject-steps-refinement'
b4fc4da903 ExternalProject: Add policy CMP0114 to refine step target dependencies
f5791e24c6 Tests: Match RunCMake.ExternalProject NO_DEPENDS output more strictly
b637ef494c ExternalProject: Factor out an internal helper to add a step target

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5215
2020-09-15 14:38:45 -04:00
Marc Chevrier fa910f51fd Merge topic 'commands-unordered-map'
967792a662 cmState: store commands in unordered_map

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5219
2020-09-15 04:21:30 -04:00
Kitware Robot f495e25b4e CMake Nightly Date Stamp 2020-09-15 00:01:17 -04:00
Brad King b4fc4da903 ExternalProject: Add policy CMP0114 to refine step target dependencies
`ExternalProject_Add_StepTargets` and `INDEPENDENT_STEP_TARGETS` have
some limitations and lack some sanity checks.  They can cause confusing
build systems to be generated.  The basic problems are:

* The notion of step independence is attached to the step target
  rather than the step itself.

* The custom commands implementing the steps are duplicated in the
  step targets and the primary targets.  This can cause races.
  It is also incompatible with the Xcode "new build system".

Fix this by introducing policy CMP0114 to change the way step target
dependencies are handled.  Define independence from external
dependencies as a property of each individual step regardless of whether
there is a target for it.  Add dependencies among the primary target and
the step targets such that each custom command only appears in one
target.  When some steps are disconnected from the primary target, add
step targets for the steps commonly depended upon so that there is a
place to hold their custom commands uniquely.

Fixes: #18663
2020-09-14 10:48:16 -04:00
Kitware Robot fe2eadf091 CMake Nightly Date Stamp 2020-09-14 00:01:20 -04:00
Kitware Robot 54c3d4f006 CMake Nightly Date Stamp 2020-09-13 00:01:09 -04:00
Kitware Robot 71133488ef CMake Nightly Date Stamp 2020-09-12 00:01:17 -04:00
Oleksandr Koval 967792a662 cmState: store commands in unordered_map 2020-09-11 20:31:11 +03:00
Brad King a8b3217915 Merge topic 'file-GENERATE-earlier'
aee2c51224 file(GENERATE): Create output file structures for all directories first

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5209
2020-09-11 08:27:12 -04:00
Kitware Robot 60b10d4fad CMake Nightly Date Stamp 2020-09-11 00:01:15 -04:00
Brad King 48ed3bae58 Merge topic 'pch-instantiate-templates'
8c8f03422e PCH: Template instantiation support

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Raul Tambre <raul@tambre.ee>
Acked-by: Cristian Adam <cristian.adam@gmail.com>
Tested-by: Raul Tambre <raul@tambre.ee>
Merge-request: !5168
2020-09-10 16:32:39 -04:00
Josef Angstenberger aee2c51224 file(GENERATE): Create output file structures for all directories first
Since commit 36ded610af (PCH: Generate sources during Compute step,
2019-10-05, v3.16.0-rc1~2^2) the source file lookup is done earlier than
before.  Its parent commit f1fb63b306 (file(GENERATE): Create output
file structures even earlier, 2019-10-07, v3.16.0-rc1~2^2~1) prepared
for that.  However, that commit did not account for generating and
using files in separate subdirectories.

Fix this by evaluating all generated files before adding automatic
files.

Fixes: #21144
2020-09-10 16:13:01 -04:00
Brad King 487c711230 Merge topic 'custom-command-dedup'
45fedf0e17 Makefile: Add policy CMP0113 to avoid duplication of custom commands
844779bdc1 cmMakefileTargetGenerator: Simplify custom command output collection

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5204
2020-09-10 10:12:30 -04:00
Brad King db3efb7568 Merge topic 'json-helpers'
b2f3f831e2 Refactor: Use JSON helpers in CTest resource spec
3f3a30e1e0 JSON: Add helpers

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5197
2020-09-10 10:09:42 -04:00
Brad King 2eb7ff09c7 Merge topic 'optimize-old-expand'
62d7acc6d4 cmCommandArgumentParserHelper: rework input handling

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5208
2020-09-10 09:57:43 -04:00
Brad King 9b5f167348 Merge topic 'automoc-rerun-missing-dependency' into release-3.18
9ac3503d30 AutoMoc: Re-run moc if a dependency is missing

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5180
2020-09-10 09:45:52 -04:00