Commit Graph

50539 Commits

Author SHA1 Message Date
Hi Key e14fb01c41 Utilities/Release: Add docker specs for Linux aarch64 binaries
Base them on the existing `x86_64` specs.  Update the centos
base image from centos 6 to centos 7 to get aarch64 support.
The resulting binaries require GLIBC 2.17.

Fixes: #17923
2020-12-22 14:04:39 -05:00
Brad King 595551a805 gitlab-ci: consolidate Linux release package job spec for x86_64 2020-12-22 14:04:39 -05:00
Brad King 3e05e26296 Merge topic 'test-ConfigSources-config' into release-3.19
3af0671019 Tests: Fix ConfigSources test with empty CMAKE_BUILD_TYPE

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5643
2020-12-22 13:49:29 -05:00
Brad King 3af0671019 Tests: Fix ConfigSources test with empty CMAKE_BUILD_TYPE
The test requires a non-empty `CMAKE_BUILD_TYPE` to function on
single-config generators.  Force a non-empty configuration if the test
is configured explicitly with empty `-DCMAKE_BUILD_TYPE=`.
2020-12-21 21:27:35 -05:00
Brad King 81809d1485 Merge topic 'revert-write-through' into release-3.19
92021198e5 cmSystemTools: Revert use of MOVEFILE_WRITE_THROUGH by RenameFile on Windows

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5628
2020-12-21 10:00:18 -05:00
Craig Scott 4a6074821e Merge topic 'doc-fix-XCODE_LINK_BUILD_PHASE_MODE' into release-3.19
2d84b9d145 Help: Fix Sphinx not recognising list in XCODE_LINK_BUILD_PHASE_MODE

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5634
2020-12-21 06:03:38 -05:00
Craig Scott 2d84b9d145 Help: Fix Sphinx not recognising list in XCODE_LINK_BUILD_PHASE_MODE 2020-12-20 20:13:23 +11:00
Brad King 92021198e5 cmSystemTools: Revert use of MOVEFILE_WRITE_THROUGH by RenameFile on Windows
Revert commit d78c22aa64 (cmSystemTools: Improve RenameFile on Windows
with MOVEFILE_WRITE_THROUGH, 2020-08-25, v3.19.0-rc1~243^2~3).  Using
this flag causes the operation to fail frequently in some environments.
Drop it for now pending further investigation.

Fixes: #21571
2020-12-17 08:35:38 -05:00
Brad King 0932b1c2b2 CMake 3.19.2 v3.19.2 2020-12-16 07:35:29 -05:00
Brad King cd107321f7 Merge topic 'cmake-gui-completion' into release-3.19
854f5ea1cb cmake-gui: Restore completion during path editing

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5619
2020-12-16 06:17:07 -05:00
Brad King 854f5ea1cb cmake-gui: Restore completion during path editing
Revert commit 0fc1818831 (QCMakeWidgets: replace QDirModel, 2020-06-15,
v3.19.0-rc1~696^2).  `QFileSystemModel` is not a drop-in replacement for
`QDirModel`.  Additional changes are needed to make it work fully.
Revert the change and suppress the `QDirModel` deprecation warning
pending further investigation.

Fixes: #21589
2020-12-15 08:40:13 -05:00
Brad King 7932e0a46e Merge topic 'ispc_control_header_suffixes' into release-3.19
c9a50f3556 ISPC: Generated Headers suffix configurable with a better default

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5597
2020-12-15 07:40:34 -05:00
Brad King 795c5fe239 Merge topic 'support_CMAKE_VFS_OVERLAY_for_rc_compilation' into release-3.19
18ee6d7e32 llvm-rc: Add CMAKE_VFS_OVERLAY to the preprocessing flags

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5604
2020-12-15 07:38:19 -05:00
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
Robert Maynard c9a50f3556 ISPC: Generated Headers suffix configurable with a better default
The target property `ISPC_HEADER_SUFFIX` and associated global
variable now can control the suffix used when generating the
C/C++ interoperability ISPC headers.

In addition the default suffix is now "_ispc.h" which matches the
common convention that the ISPC compiler team uses and recommends.
2020-12-14 13:13:09 -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
Thomas Bernard 18ee6d7e32 llvm-rc: Add CMAKE_VFS_OVERLAY to the preprocessing flags
Issue: #20658
2020-12-14 11:08:12 -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