Commit Graph

50524 Commits

Author SHA1 Message Date
Brad King
c30bde0b50 Merge topic 'ninja-no-cleandead' into release-3.19
1144d25094 Merge branch 'backport-ninja-no-cleandead' into ninja-no-cleandead
73a961eaba Ninja: Remove cleandead on regeneration

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5614
2020-12-15 07:36:07 -05:00
Brad King
f206f47936 Merge topic 'rel-macos-apple-silicon' into release-3.19
23de430545 Utilities/Release: Update macOS Qt 5.9 build for platform versioning

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5615
2020-12-15 07:35:00 -05:00
Craig Scott
a65506d56b Merge topic 'CMakePackageConfigHelpers-version-range' into release-3.19
7f44760991 CMakePackageConfigHelpers: Relax restrictions on version range

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5613
2020-12-15 07:16:26 -05:00
Brad King
23de430545 Utilities/Release: Update macOS Qt 5.9 build for platform versioning
Backport the upstream Qt patch [1] to link Qt binaries using the
`-isysroot` flag instead of `-Wl,-syslibroot`.  This is needed so that
the binaries have a SDK version set, which is needed for runtime
validation on modern macOS versions.

[1] https://code.qt.io/cgit/qt/qtbase.git/commit/?id=6387138a7991b4588639dc48847f175b5afaff84
2020-12-14 11:33:30 -05:00
Brad King
1144d25094 Merge branch 'backport-ninja-no-cleandead' into ninja-no-cleandead 2020-12-14 10:14:19 -05:00
Brad King
73a961eaba Ninja: Remove cleandead on regeneration
Remove the `cleandead` tool invocation added by commit fb18215904
(Ninja: clean ninja metadata once generated, 2019-05-13,
v3.17.0-rc1~207^2).  The tool deletes files that were not previously
deleted by regenerating the build system.  Also, there are use cases
where no-longer-generated files should not be removed, such as Qt's TS
files.

Fixes: #21549
2020-12-14 10:08:14 -05:00
Marc Chevrier
7f44760991 CMakePackageConfigHelpers: Relax restrictions on version range 2020-12-14 14:42:26 +01:00
Brad King
6aff058ab4 Merge topic 'FindGLUT-macos-tbd' into release-3.19
d29d034e2e FindGLUT: Handle Mojave and Big Sur 'tbd' framework files

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5601
2020-12-14 07:11:07 -05:00
Brad King
7be4b24ae6 Merge topic 'macos-homebrew-apple-silicon' into release-3.19
1a5c1a68b6 macOS: Add /opt/homebrew to CMAKE_SYSTEM_PREFIX_PATH on Apple Silicon

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Fons Rademakers <fons.rademakers@cern.ch>
Merge-request: !5602
2020-12-14 07:10:04 -05:00
Brad King
4cdf951f07 Merge topic 'install-properties' into release-3.19
63db7ae9c4 cmake: Clear INSTALL file properties between runs

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5603
2020-12-14 07:08:49 -05:00
Brad King
04ed1e73dd Merge topic 'execute_process-command-error' into release-3.19
e5a4ffaad1 execute_process: Improve COMMAND_ERROR_IS_FATAL error capture scenarios

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5588
2020-12-14 07:07:46 -05:00
Brad King
1a5c1a68b6 macOS: Add /opt/homebrew to CMAKE_SYSTEM_PREFIX_PATH on Apple Silicon
According to https://brew.sh/2020/12/01/homebrew-2.6.0/ the `/opt/homebrew`
directory is recommended for installing ARM architecture brew packages.

Fixes: #21585
2020-12-11 13:07:17 -05:00
Brad King
23df57a3a7 Merge topic 'apple-silicon-host-arch' into release-3.19
b7f0327dcd Tests: Cover macOS host architecture selection on Apple Silicon hosts
5f882f6ce5 macOS: Offer control over host architecture on Apple Silicon hosts

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5589
2020-12-11 13:05:34 -05:00
Brad King
0a5a883d53 Merge topic 'doc-3_19_release-fixes' into release-3.19
ff4d1d44f2 Help: Clarify scope details of deferred call ids for cmake_language()
b4c02a0a1d Help: Re-sort indexes in the manuals
2c33949c64 Help: Mention how OPTIMIZE_DEPENDENCIES is initialized
0816482302 Help: xref variable that cmake_minimum_required() sets

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5598
2020-12-11 13:04:36 -05:00
Brad King
63db7ae9c4 cmake: Clear INSTALL file properties between runs
Do not keep state across separate project configurations.
This is particularly important in `cmake-gui` where those
configurations can be for separate projects.

Fixes: #21580
2020-12-11 12:30:27 -05:00
Robert Maynard
d29d034e2e FindGLUT: Handle Mojave and Big Sur 'tbd' framework files 2020-12-11 11:01:30 -05:00
Craig Scott
ff4d1d44f2 Help: Clarify scope details of deferred call ids for cmake_language()
Fixes: #21586
2020-12-11 18:25:42 +11:00
Craig Scott
b4c02a0a1d Help: Re-sort indexes in the manuals 2020-12-11 11:19:04 +11:00
Craig Scott
2c33949c64 Help: Mention how OPTIMIZE_DEPENDENCIES is initialized 2020-12-11 11:19:04 +11:00
Craig Scott
0816482302 Help: xref variable that cmake_minimum_required() sets
The CMAKE_MINIMUM_REQUIRED_VERSION has long been set by
the cmake_minimum_required() command, but the command docs
never mentioned this. Only the variable's own docs stated this but
the variable isn't very discoverable without it being mentioned in
the command's docs as well.
2020-12-11 11:19:04 +11:00
Brad King
b7f0327dcd Tests: Cover macOS host architecture selection on Apple Silicon hosts
Add test cases verifying that `CMAKE_APPLE_SILICON_PROCESSOR` set as
either a cache or environment variable causes that to be selected as the
host architecture.  Also verify that sources compile using whatever is
selected as the host architecture, even when the explicit setting is not
used.

Issue: #21554
2020-12-10 12:08:15 -05:00
Brad King
5f882f6ce5 macOS: Offer control over host architecture on Apple Silicon hosts
Since commit b6c60f14b6 (macOS: Default to arm64 architecture on Apple
Silicon hosts, 2020-09-28, v3.19.0-rc1~63^2) we use `sysctl` to detect
that we are running on Apple Silicon in a way that pierces Rosetta.
This always sets `CMAKE_HOST_SYSTEM_PROCESSOR` to be `arm64` on such
hosts.  However, macOS offers strong support for running processes under
an emulated `x86_64` architecture.

Teach CMake to select either `arm64` or `x86_64` as the host
architecture on Apple Silicon based on the architecture of its own
process.  When CMake is built as a universal binary, macOS will select
whichever slice (architecture) is appropriate under the user's shell,
and `CMAKE_HOST_SYSTEM_PROCESSOR` will match.

Also offer a `CMAKE_APPLE_SILICON_PROCESSOR` variable and environment
variable to provide users with explicit control over the host
architecture selection regardless of CMake's own architecture.

Finally, if `CMAKE_OSX_ARCHITECTURES` is not set, pass explicit flags to
the toolchain to use selected host architecture instead of letting the
toolchain pick.

Fixes: #21554
2020-12-10 12:08:13 -05:00
Brad King
0334a3c68f Merge topic 'rel-macos-apple-silicon' into release-3.19
56a075eb5d ci: update macOS package to produce universal binaries
b184cc256b ci: do not use sccache for macOS packaging
41bddf1028 ci: update to pre-built Qt 5.9.9 universal binaries for macOS packages
b201dc0d42 Utilities/Release: Add script to build Qt 5.9.9 macOS universal binaries

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Ben Boeckel <ben.boeckel@kitware.com>
Merge-request: !5595
2020-12-10 12:05:16 -05:00
Brad King
56a075eb5d ci: update macOS package to produce universal binaries
Update our deployment target to macOS 10.10.
This is required by Qt 5.9.

Fixes: #21565
Issue: #20825
2020-12-10 10:55:17 -05:00
Brad King
b184cc256b ci: do not use sccache for macOS packaging
It is not compatible with building for multiple architectures.
2020-12-10 10:53:59 -05:00
Brad King
41bddf1028 ci: update to pre-built Qt 5.9.9 universal binaries for macOS packages 2020-12-10 10:09:29 -05:00
Brad King
b201dc0d42 Utilities/Release: Add script to build Qt 5.9.9 macOS universal binaries
These may be used to build a CMake universal binary for macOS that supports
both architectures on Apple Silicon and is compatible with OS X 10.10.
2020-12-10 10:03:52 -05:00
Brad King
020e1e2031 Merge topic 'test-macos-version' into release-3.19
55193c8013 ci: Hard-code XCTest deployment target to 10.15
40877903ac Tests: Remove outdated exclusion of tests on OS X 10.3
c404d7f221 Tests: Add cache entry to control XCTest deployment target

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5593
2020-12-10 06:57:53 -05:00
Brad King
9f66eb74a5 Merge topic 'ispc-system-includes' into release-3.19
8da25e4a3c ISPC: Treat system includes as '-I' includes

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5591
2020-12-10 06:57:04 -05:00
Asit Dhal
e5a4ffaad1 execute_process: Improve COMMAND_ERROR_IS_FATAL error capture scenarios
1.  COMMAND_ERROR_IS_FATAL ANY will capture errors if the exit code is
    non zero, there is a timeout or an abnormal exit.

2.  COMMAND_ERROR_IS_FATAL LAST
    will capture if only the last process has an exit code non zero, there
    is a timeout or an abnormal exit.

Fixes: #21562
2020-12-10 06:09:59 -05:00
Brad King
55193c8013 ci: Hard-code XCTest deployment target to 10.15
Avoid using the macOS version running on the CI job host that happens
to run the build job.
2020-12-09 13:28:52 -05:00
Brad King
40877903ac Tests: Remove outdated exclusion of tests on OS X 10.3 2020-12-09 13:10:44 -05:00
Brad King
c404d7f221 Tests: Add cache entry to control XCTest deployment target 2020-12-09 13:10:17 -05:00
Robert Maynard
8da25e4a3c ISPC: Treat system includes as '-I' includes
ISPC doesn't have specific syntax for system includes.
2020-12-09 11:33:44 -05:00
Brad King
8a3ecb484f Merge topic 'update_cmp112' into release-3.19
cf0c71dae3 Document CMP0112 covers $<TARGET_FILE_NAME,tgt>

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5582
2020-12-08 10:20:11 -05:00
Brad King
61cd587ef3 Merge topic 'FindPython-python2-soabi-suffix-fix' into release-3.19
afb0ffcac7 FindPython2: avoid doubling the extension in CPython2 SOABI

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5574
2020-12-08 10:18:28 -05:00
Brad King
d00d5ac0cd Merge topic 'correct_ispc_path_computation' into release-3.19
9af93fef11 ISPC: Handle OBJECT sources in different directories
72ae15ebcb ISPC: Ninja properly compute ISPC_HEADER_DIRECTORY location

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5581
2020-12-08 10:17:33 -05:00
Brad King
6aa3c3206e Merge topic 'remove-partial-intel-compiler-support' into release-3.19
41b69348a5 Revert "Intel: Add Intel DPC++ compiler identification"
f0babb53b3 Revert "Intel: Add Intel Clang compiler identification"

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Axel Huebl <axel.huebl@plasma.ninja>
Merge-request: !5583
2020-12-08 10:16:20 -05:00
Brad King
41b69348a5 Revert "Intel: Add Intel DPC++ compiler identification"
Revert commit 887f3a88a6 (Intel: Add Intel DPC++ compiler
identification, 2020-09-21, v3.19.0-rc1~124^2).  The compiler has
already been released, and is more usable with CMake by pretending to be
upstream Clang than by identifying it as a compiler for which we have
not implemented support.

Fixes: #21551
2020-12-07 10:46:27 -05:00
Brad King
f0babb53b3 Revert "Intel: Add Intel Clang compiler identification"
Revert commit 5c3a93ab88 (Intel: Add Intel Clang compiler
identification, 2020-09-29, v3.19.0-rc1~68^2).  The compiler has already
been released, and is more usable with CMake by pretending to be
upstream Clang than by identifying it as a compiler for which we have
not implemented support.

Issue: #21551
2020-12-07 10:46:22 -05:00
Brad King
70c9a3e294 Merge topic 'asm_arch' into release-3.19
fcabf4a47e macOS: Add architecture flags only for native ASM dialect

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5572
2020-12-07 10:28:18 -05:00
Robert Maynard
cf0c71dae3 Document CMP0112 covers $<TARGET_FILE_NAME,tgt>
Fixes #21559
2020-12-07 09:50:39 -05:00
Robert Maynard
9af93fef11 ISPC: Handle OBJECT sources in different directories 2020-12-07 09:14:54 -05:00
Robert Maynard
72ae15ebcb ISPC: Ninja properly compute ISPC_HEADER_DIRECTORY location 2020-12-07 09:14:13 -05:00
Ben Boeckel
afb0ffcac7 FindPython2: avoid doubling the extension in CPython2 SOABI
Commit 951640f1f9 (FindPython: manage SOABI for all Python versions,
2020-08-11) extended support for Python2's SOABI variable in order to
support the PyPy interpreter as well. This caused a regression in the
way that the SOABI variable was built up for the CPython interpreter.
This caused the variable to be set to `.so` which ended up causing a
doubling of the resulting `SOABI` variable in the end.

Co-Author: Marc Chevrier <marc.chevrier@gmail.com>
Fixes: #21548
2020-12-04 14:01:27 -05:00
Raul Tambre
fcabf4a47e macOS: Add architecture flags only for native ASM dialect
ASM dialects like NASM have languages names such as ASM_NASM.
However such ASM dialects don't support the architecture flags, so match only
the full name.

Fixes #21553.
2020-12-04 17:29:14 +02:00
Brad King
1525385b20 Merge topic 'compiler-id-extra-text' into release-3.19
f25ac39dee CMakeDetermineCompilerId: Tolerate stray text around INFO strings
5cb66f17ca CMakeDetermineCompilerId: Add whitespace to clarify logic
1ee99104f7 CMakeDetermineCompilerId: Filter IAR-AVR format INFO strings earlier

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5570
2020-12-04 08:27:02 -05:00
Brad King
22b4bea318 Merge topic 'test-vs-windows-hosts' into release-3.19
dca8800cb5 Tests: Look for Visual Studio only on Windows hosts

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5569
2020-12-04 08:25:42 -05:00
Brad King
f25ac39dee CMakeDetermineCompilerId: Tolerate stray text around INFO strings
When cross-compiling with Xcode our compiler id test binary may be
compiled with multiple architectures.  The INFO strings should be
identical and therefore de-duplicated.  However, this can be broken by
stray text that happens to sit immediately before or after an INFO
string.  Filter out such text so we can match clean INFO strings.

Fixes: #21526
2020-12-03 14:37:21 -05:00
Brad King
5cb66f17ca CMakeDetermineCompilerId: Add whitespace to clarify logic
Also initialize a variable closer to its use.
2020-12-03 14:37:08 -05:00