Commit Graph

8375 Commits

Author SHA1 Message Date
Brad King c5777e5421 Merge branch 'backport-3.19-rel-file-table' into rel-file-table 2021-04-05 13:46:35 -04:00
Brad King f9f59fb0b2 Merge branch 'release-3.19' into backport-3.19-rel-file-table 2021-04-05 13:45:08 -04:00
Brad King 30959aec8f Utilities/Release: Update file table for 3.19.3 2021-04-05 13:45:00 -04:00
Brad King d206c8f1ec Merge tag 'v3.19.3' into backport-3.19-rel-file-table 2021-04-05 13:44:49 -04:00
Brad King 004dbbaddd Utilities/Release: Update file table for 3.19.2 2021-04-05 13:44:42 -04:00
Brad King 1e3301a28c Merge tag 'v3.19.2' into backport-3.19-rel-file-table 2021-04-05 13:44:36 -04:00
Brad King 383bfbe76f Merge branch 'backport-3.18-rel-file-table' into backport-3.19-rel-file-table 2021-04-05 13:44:27 -04:00
Brad King 0237eba318 Utilities/Release: Add script to generate a table of files
Fixes: #22002
2021-04-05 13:43:51 -04:00
Brad King fc9c1d83bf Tests: Add RunCMake helper to run a plain script
Many tests covering CMake scripting commands can work without
initializing a full generator.
2021-03-31 12:00:09 -04:00
Brad King c0092247fe Merge topic 'ninja-automoc-cycle' into release-3.20
ca7c76269b Tests: Add test for Ninja automoc dependency cyle
54ad3e4958 autogen: Don't include SKIP_AUTOMOC files in depfile

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Jörg Bornemann <joerg.bornemann@qt.io>
Acked-by: Craig Scott <craig.scott@crascit.com>
Merge-request: !5956
2021-03-30 09:54:09 -04:00
Brad King 1df75b171d Merge topic 'nmc-cc-no-output' into release-3.20
6dd89529e8 Ninja Multi-Config: Fix crash on custom command config with no output
e21a80e97d Tests: Teach RunCMake to ignore incidental 'Recompacting log' ninja output

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kyle Edwards <kyle.edwards@kitware.com>
Merge-request: !5950
2021-03-30 09:50:48 -04:00
Kyle Edwards ca7c76269b Tests: Add test for Ninja automoc dependency cyle 2021-03-29 15:17:11 -04:00
Brad King 6dd89529e8 Ninja Multi-Config: Fix crash on custom command config with no output
With generator expressions in a custom command's `OUTPUT` and
`BYPRODUCTS`, it is possible to have no outputs at all for a particular
configuration.  Generate no rule in this case.

Fixes: #21989
2021-03-29 09:56:43 -04:00
Brad King e21a80e97d Tests: Teach RunCMake to ignore incidental 'Recompacting log' ninja output
Ninja versions prior to 1.6.0 occasionally print this message.
2021-03-29 09:55:57 -04:00
Brad King d212d91f14 Merge topic 'commands-file-permissions' into release-3.20
769ff05483 Help: Clarify permission-related command options
900184616a Cleanup: Fix misspelt name of local C++ variable
635431a0c9 Tests: Check host platform instead of target for running stat
4ceb0ca59e Tests: Remove redundant files for configure_file() tests

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5945
2021-03-29 09:32:09 -04:00
Brad King 0e37e0d215 Merge topic 'correct_arg_parsing' into release-3.20
79d7bcaf40 cmCommandLineArgument: correctly compute next parse index

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5936
2021-03-29 09:29:39 -04:00
Robert Maynard 79d7bcaf40 cmCommandLineArgument: correctly compute next parse index
Fixes #21966

Correctly compute the next parse index for `ZeroOrOne` when
it is zero, and for OneOrMore.
2021-03-26 09:34:46 -04:00
Craig Scott 635431a0c9 Tests: Check host platform instead of target for running stat 2021-03-26 22:17:57 +11:00
Craig Scott 4ceb0ca59e Tests: Remove redundant files for configure_file() tests 2021-03-26 22:17:57 +11:00
Kyle Edwards 3b864b2583 Ninja Multi-Config: Include configs in long CC scripts
Fixes: #21973
2021-03-25 13:18:47 -04:00
Brad King 06feb845aa CMP0118: Fix NEW behavior when looking up target sources
Under the CMP0118 NEW behavior, sources generated in one directory
should be visible when added to targets in other directories.  This was
accidentally left out of commit 6624b65b3f (GENERATED prop: Add
implementation for policy CMP0118 being set to NEW, 2020-11-09,
v3.20.0-rc1~393^2~1).

Fixes: #18399
2021-03-18 09:57:49 -04:00
Sam Freed b9eb3541cf Tests: update tests to catch invalid configurePreset at read-time 2021-03-15 14:53:00 -07:00
Brad King 4606082742 Merge topic 'xcode-framework-quoting' into release-3.20
4f9a71974e Xcode: Restore support for spaces in framework names

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5899
2021-03-11 08:10:42 -05:00
Brad King 4f9a71974e Xcode: Restore support for spaces in framework names
In commit ce2dee9e5b (Xcode: Don't add framework as -framework argument
in linker info list, 2020-09-28, v3.19.0-rc1~47^2) we split up the path
to a framework into the directory and framework name parts, but only
retained the quoting on the directory part.  Restore quoting of the
framework name.

Fixes: #21910
2021-03-10 10:01:11 -05:00
Craig Scott 57d442e182 Revert ExternalProject and FetchContent refactoring
Refactoring of the ExternalProject and FetchContent modules moved
the commands into CMake scripts. This broke custom commands that
used shell redirection or special build tool variables of the form
$(MakeVar). Undo the sequence of commits that performed this
refactoring and follow-up fixes associated with it.

The following commits are reverted by this change:

4f3d1abbb4 (ExternalProject: Refactor pre-configure steps to support
no-target uses, 2021-02-05)

17e5516e60 (FetchContent: Invoke steps directly and avoid a separate
sub-build, 2021-01-29)

bd876f3849 (FetchContent: Restore patch command support,
2021-02-18)

404cddb7bb (ExternalProject: Fix misuse of IS_NEWER_THAN in
timestamp checks, 2021-02-21)

b0da671243 (FetchContent: Don't update timestamps if files don't
change, 2021-02-18)

Fixes: #21892
2021-03-10 09:07:44 +11:00
Brad King ed7a87f270 Tests: Update RunCMake.Android for NDK r22
Use `CMAKE_ANDROID_NDK_VERSION` to check for files expected based
on the version of the NDK.
2021-03-03 10:27:50 -05:00
Brad King e95f7aa0ed Merge topic 'preset-flag-consistency' into release-3.20
6fa3647023 ctest: Add support for '--prefix=<prefix>' form of the argument
3357d37761 cmake: Add support for '--build --prefix=<prefix>' form of the argument
2f13fdef0a cmake: Document '--preset <preset>' form of the argument

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5849
2021-02-24 09:46:52 -05:00
Brad King 14c6a88db6 Merge topic 'LINK_LANGUAGE-genex-respects-LINKER_LANGUAGE-property' into release-3.20
b722eea925 Genex: LINK_LANGUAGE respects LINKER_LANGUAGE property

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5841
2021-02-24 09:45:50 -05:00
Brad King 261ba00668 Merge topic 'autogen-cmp0116-fix' into release-3.20
339dbc901f Help: Note that CMP0116 is recorded at the time of CC creation
e3740e020e Tests: Test Qt autogen target with CMP0116 set to WARN
cf34011ce7 Tests: Test per-CC behavior of CMP0116
3a95503512 Ninja: Use CMP0116 status recorded at time of custom command's creation
f01f10e8fb cmCustomCommand: Record value of CMP0116 at time of creation

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5848
2021-02-24 09:44:59 -05:00
Brad King 75d7329adb Merge topic 'preset-no-comments' into release-3.20
06e16ea008 Merge branch 'backport-3.19-preset-no-comments' into preset-no-comments
afaa69f5b3 Tests: Remove comments from CMakePresetsTest/Good.json.in
4a92277f45 Revert "Help: Document JSON comment support in cmake-presets(7)"
431dd59b5e CMakePresets.json: Remove undocumented support for comments

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5853
2021-02-24 09:42:00 -05:00
Brad King cf21ea2ce6 Merge topic 'ninja-status-stderr' into release-3.20
d33c2c93d8 Tests: Update for upstream ninja change to write status on stderr

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5850
2021-02-24 09:41:03 -05:00
Brad King fcf0c66b5a Merge branch 'backport-3.19-preset-no-comments' into release-3.19
Merge-request: !5853
2021-02-24 09:39:20 -05:00
Brad King 06e16ea008 Merge branch 'backport-3.19-preset-no-comments' into preset-no-comments 2021-02-24 09:33:59 -05:00
Kyle Edwards afaa69f5b3 Tests: Remove comments from CMakePresetsTest/Good.json.in 2021-02-24 09:33:50 -05:00
Kyle Edwards 431dd59b5e CMakePresets.json: Remove undocumented support for comments
Fixes: #21858
2021-02-24 09:28:36 -05:00
Brad King d33c2c93d8 Tests: Update for upstream ninja change to write status on stderr
Upstream ninja commit `ad3d29fb53` (Put builder output through status
interface) from ninja PR 1899 changed the status output from stdout to
stderr.  In particular, `ninja: no work to do` is now printed on stderr.
Update our RunCMake tests to accept this difference.

A few RunCMake test cases check for `ninja: no work to do`.  For those,
move the message to stdout using `RunCMake_TEST_OUTPUT_MERGE`.  The rest
of the test cases do not care about the message, so remove it from the
actual stderr content before comparing against that expected.
2021-02-23 10:55:12 -05:00
Brad King 6fa3647023 ctest: Add support for '--prefix=<prefix>' form of the argument
The main `cmake --preset` argument for configure presets supports both
forms, so support it for `ctest --preset` too.

Fixes: #21855
2021-02-23 09:22:00 -05:00
Kyle Edwards e3740e020e Tests: Test Qt autogen target with CMP0116 set to WARN 2021-02-23 09:17:12 -05:00
Kyle Edwards cf34011ce7 Tests: Test per-CC behavior of CMP0116 2021-02-23 09:17:12 -05:00
Brad King 3357d37761 cmake: Add support for '--build --prefix=<prefix>' form of the argument
The main `cmake --preset` argument for configure presets supports both
forms, so support it for `cmake --build --preset` too.

Issue: #21855
2021-02-23 09:11:44 -05:00
Brad King 2f13fdef0a cmake: Document '--preset <preset>' form of the argument
This form already works.  Document it and add tests.

Issue: #21855
2021-02-23 09:11:32 -05:00
Marc Chevrier b722eea925 Genex: LINK_LANGUAGE respects LINKER_LANGUAGE property
If target property LINKER_LANGUAGE is set, LINK_LANGUAGE generator
expression evaluation must be always successful.

This fix can be helpful to elaborate a solution for issue #21818.
2021-02-23 08:14:14 -05:00
Brad King c2c31ae896 Merge topic 'test-ExternalProject-CONFIGURE_HANDLED_BY_BUILD' into release-3.20
74fe16a292 Tests: Fix ExternalProject CONFIGURE_HANDLED_BY_BUILD on 1s filesystems

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5838
2021-02-23 08:09:59 -05:00
Brad King 1c15eb39d2 Tests: Suppress failures on macOS arm64 due to separate Xcode signing phase
Some tests fail because Xcode runs `POST_BUILD` commands before signing
the binaries they run.  Tell the linker to perform ad-hoc codesign even
though Xcode normally tells it not to.

Other tests fail because `install_name_tool` does not revise ad-hoc
signatures without the codesign `linker-signed` flag.  Add that flag
ourselves where needed by our tests.

For now these changes help our test suite pass so we can use it to cover
everything else.  Both of these cases may need further investigation to
update CMake to help projects in general.

Issue: #21845, #21854
2021-02-22 15:47:13 -08:00
Brad King 92418ac0ef Tests: Fix CTestTestCrash expected output on macOS arm64 2021-02-22 17:24:14 -05:00
Brad King 8b22d9b3c3 Tests: Remove explicit no-signing marks from BundleTest
These were added by commit e29a92f525 (Xcode: Make BundleTests
compatible with Xcode 11, 2019-09-01, v3.16.0-rc1~158^2).  The
real problem is that the `.app` is constructed with text files
under the `.app/Contents/MacOS/` folder.  Move those, and drop
the special no-signing configuration.
2021-02-22 13:58:24 -05:00
Brad King 483db3de56 Tests: Clarify internal project name in RunCMake.GoogleTest cases 2021-02-22 13:30:19 -05:00
Daan De Meyer 74fe16a292 Tests: Fix ExternalProject CONFIGURE_HANDLED_BY_BUILD on 1s filesystems
Following commit 7155e358c9 (ExternalProject: Add CONFIGURE_HANDLED_BY_BUILD
option, 2020-12-16, v3.20.0-rc1~168^2), modify the CONFIGURE_HANDLED_BY_BUILD
test to sleep 1.125 seconds to make sure the file timestamp is always
updated regardless of the resolution of the underlying filesystem.

Fixes: #21830
2021-02-22 11:17:20 -05:00
Brad King e9efa04d8d Merge topic 'fix-IS_NEWER_THAN-usage' into release-3.20
b0da671243 FetchContent: Don't update timestamps if files don't change
404cddb7bb ExternalProject: Fix misuse of IS_NEWER_THAN in timestamp checks

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5825
2021-02-22 11:05:45 -05:00
Craig Scott b0da671243 FetchContent: Don't update timestamps if files don't change
The refactoring in 17e5516e60 (FetchContent: Invoke steps directly and
avoid a separate sub-build, 2021-01-29) uses a different way of writing
out the step scripts and updating time stamps when steps are executed.
That inadvertently always wrote out the scripts for custom commands,
even when the contents didn't change. This caused their timestamp to
always be updated, resulting in those steps always being seen as
out-of-date and needing to be re-executed.

The way timestamps were checked to determine whether to re-execute
a step also did not adequately account for file systems which only have
second-resolution timestamps. The IS_NEWER_THAN if condition also
returns true when timestamps are the same, so one needs to use the
negative form to get a true "is newer than" test.

ExternalProject is not susceptible to this problem because it uses
file(GENERATE) to write out the script files and that only updates the file's
timestamp if the contents change. It also mostly leaves timestamp
checking to the build tool.
2021-02-22 11:02:20 -05:00