Commit Graph

50518 Commits

Author SHA1 Message Date
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 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
Brad King 1ee99104f7 CMakeDetermineCompilerId: Filter IAR-AVR format INFO strings earlier
Remove the bytes between characters from the entire list at once.
2020-12-03 14:34:04 -05:00
Brad King dca8800cb5 Tests: Look for Visual Studio only on Windows hosts
Update logic added by commit 6051a49c78 (Visual Studio: Add Android
support, 2020-06-12, v3.19.0-rc1~619^2) to only look for VS
installations using `cmake_host_system_information` on Windows hosts.
Otherwise the `VS_*_DIR` keys are not available.

Fixes: #21547
2020-12-03 10:21:56 -05:00
Brad King 6cf88734a5 Merge topic 'llvm-rc-preprocess-as-c' into release-3.19
f7ff0d34f0 llvm-rc: Force C language for the clang gnu frontend

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5564
2020-12-03 08:37:21 -05:00
Brad King 79077df26b Merge topic 'FindHDF5-hdf5hl_fortran-variable' into release-3.19
175beadd4c FindHDF5: support the hdf5hl_fortran-based variable names
adf108441e FindHDF5: improve error messages when a location variable isn't known

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5563
2020-12-02 09:22:52 -05:00
Brad King 859ecbe446 Merge topic 'ti-c-only-standard' into release-3.19
8eeddb1f0a Compiler/TI: Fix C standard flags in C-only project

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5558
2020-12-02 09:21:30 -05:00
Brad King c14d1f1be5 Merge topic 'cray-compiler-detection' into release-3.19
9ee4a42813 Cray: Fix Cray compiler detection on new platforms

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5561
2020-12-02 09:20:07 -05:00