Commit Graph

50604 Commits

Author SHA1 Message Date
Brad King 263fd22fd8 Merge topic 'xcode12-ios_install_combined' into release-3.19
0110aa018d IOS_INSTALL_COMBINED: Support Xcode 12 (command line only)

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5785
2021-02-09 08:23:29 -05:00
Brad King 58167b3eb0 Merge topic 'lexer-posix-source' into release-3.19
a8b41e2c68 LexerParser: Do not override existing _POSIX_C_SOURCE definition
82cfeeb484 Merge branch 'backport-3.18-ci-wix-download' into release-3.18

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5776
2021-02-08 11:44:15 -05:00
Craig Scott 0110aa018d IOS_INSTALL_COMBINED: Support Xcode 12 (command line only)
Xcode 12 doesn't allow nested builds within the same build directory.
That means we can no longer do an install by building the install target
when IOS_INSTALL_COMBINED is true. We can, however, still do an install
by running the cmake_install.cmake script or executing cmake --install,
since there is no outer build and therefore the associated SDK can be
built as a sub-build.

The non-build methods previously didn't work when
IOS_INSTALL_COMBINED was true because the generated install script
and the CMakeIOSInstallCombined script both made certain assumptions
that relied on being part of a build. Those assumptions are now
removed. A side-effect of this work is that cpack now also works from the
command line when IOS_INSTALL_COMBINED is true.

Relates: #21282
Fixes: #20023
2021-02-08 18:02:46 +11:00
Brad King a8b41e2c68 LexerParser: Do not override existing _POSIX_C_SOURCE definition
In commit f034b0f663 (CMake compilation: do not use compiler extensions,
2020-03-14, v3.18.0-rc1~494^2) we explicitly defined `_POSIX_C_SOURCE`
to ensure availability of POSIX APIs even when compiler extensions are
not enabled.  Update the code to avoid redefining `_POSIX_C_SOURCE` if
it is already defined.  This occurs when building our release binaries
as configured in `Utilities/Release/linux`, where we define
`_POSIX_C_SOURCE` explicitly on the compiler command line.
2021-02-05 07:43:59 -05:00
Brad King f0257a87a3 Merge topic 'doc-find-env-vars' into release-3.19
c40e81ce80 Help: Restore docs that find_library considers LIB, not INCLUDE

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5772
2021-02-05 06:55:36 -05:00
Brad King c40e81ce80 Help: Restore docs that find_library considers LIB, not INCLUDE
Documentation updates in commit 02f527c66a (Find: Provide global
controls for the `NO_[]_PATH` call options, 2019-06-12,
v3.16.0-rc1~541^2) accidentally switched the `find_library`
documentation to mention `INCLUDE` where it should be `LIB`.

While at it, update `find_file` and `find_path` to mention
`INCLUDE` and `PATH` in the order they are considered.
2021-02-04 09:09:25 -05:00
Brad King 7a76b4b19d Merge topic 'FindBoost-1.75' into release-3.19
8293064760 FindBoost: Add support for Boost 1.75

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5768
2021-02-04 08:19:16 -05:00
Brad King 7b9ea201fc Merge topic 'xcode-framework-path' into release-3.19
5389bb4274 Xcode: Don't hard-code SDK-provided implicit framework search paths
df08f8df30 cmComputeLinkInformation: Fix misspelt private variable name
375b307bae Apple: Fix linking to frameworks that do not exist until build time

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5760
2021-02-04 08:18:20 -05:00
Brad King 8293064760 FindBoost: Add support for Boost 1.75
Update the list of known versions.

Run the command

    cmake -DBOOST_DIR=/path/to/boost_1_75_0 \
      -P Utilities/Scripts/BoostScanDeps.cmake

to extract dependencies from the 1.75.0 source tree.
They differ from 1.74's dependencies by the addition of
dependencies of the json component, so add a new version
block to FindBoost.

Fixes: #21773
2021-02-03 12:10:40 -05:00
Brad King c131afc190 Merge topic 'findcudatoolkit_env_path' into release-3.19
4ea6d3c3ae FindCUDAToolkit: Restore use of CUDA_PATH environment variable

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Raul Tambre <raul@tambre.ee>
Merge-request: !5761
2021-02-03 10:51:28 -05:00
Robert Maynard 4ea6d3c3ae FindCUDAToolkit: Restore use of CUDA_PATH environment variable
Refactoring in commit 7cc815a2a6 (CUDAToolkit: Detect CUDA SDK that
don't have nvcc, 2020-07-24, v3.19.0-rc1~366^2) accidentally broke
use of the `CUDA_PATH` environment variable.

Fixes: #21740
2021-02-03 10:35:21 -05:00
Craig Scott 5389bb4274 Xcode: Don't hard-code SDK-provided implicit framework search paths
When a framework is linked to a target by its full path and that
framework is located in one of the implicit framework search directories,
CMake 3.18.5 and earlier discarded that path.
ce2dee9e5b (Xcode: Don't add framework as -framework argument in
linker info list, 2020-09-28) introduced a regression which resulted in
the framework path always being added to the search path even if it
matched one of the implicit search paths. This broke the ability to do
device and simulator builds from the same configured project.

Fixes: #21678
2021-02-03 23:11:21 +11:00
Craig Scott df08f8df30 cmComputeLinkInformation: Fix misspelt private variable name 2021-02-03 23:10:08 +11:00
Brad King 375b307bae Apple: Fix linking to frameworks that do not exist until build time
Fixes: #21621
2021-02-03 10:08:48 +11:00
Brad King 0c86d15459 CMake 3.19.4 v3.19.4 2021-01-28 10:28:45 -05:00
Brad King 6cc6d464e1 Merge topic 'doc-multi-config-prop' into release-3.19
1d7daa668c Help: Add Ninja Multi-Config to list in GENERATOR_IS_MULTI_CONFIG

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kyle Edwards <kyle.edwards@kitware.com>
Merge-request: !5737
2021-01-25 11:40:50 -05:00
Brad King 4ed5af7a3c Merge topic 'intel-fortran-nofor-main' into release-3.19
2a5955ac09 Intel: Replace deprecated Fortran flag -nofor_main with -nofor-main

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5729
2021-01-25 11:40:13 -05:00
Brad King 1d7daa668c Help: Add Ninja Multi-Config to list in GENERATOR_IS_MULTI_CONFIG
Fixes: #21739
2021-01-25 10:52:49 -05:00
Brad King 2a5955ac09 Intel: Replace deprecated Fortran flag -nofor_main with -nofor-main
The `-nofor_main` flag was originally added by commit ccdd3e943d (Fix
Intel Fortran SHARED libraries on Linux, 2009-10-27, v2.8.2~915).  Since
then, Intel Fortran renamed the option to `-nofor-main` and deprecated
the old name.  The new name has been available for a long time, so
we can just switch to it.

Fixes: #21735
2021-01-22 09:38:57 -05:00
Brad King 82cfeeb484 Merge branch 'backport-3.18-ci-wix-download' into release-3.18
Merge-request: !5725
2021-01-21 13:04:24 -05:00
Brad King 0df1fd9d43 Merge topic 'ci-wix-download' into release-3.19
127864aa9c Merge branch 'backport-3.18-ci-wix-download' into ci-wix-download
8efbb0c95f ci: download WiX on Windows
5e5fecb7bc ci: speed up cmake and ninja downloads on Windows
6c34835a26 Merge branch 'backport-ninja-no-cleandead' into release-3.18
41ec2a4fac Merge branch 'FindPython-python2-soabi-suffix-fix' into release-3.18
035a0c497a Merge branch 'cuda_detect_vs_codegen' into release-3.18

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Ben Boeckel <ben.boeckel@kitware.com>
Merge-request: !5725
2021-01-21 13:01:19 -05:00
Brad King 127864aa9c Merge branch 'backport-3.18-ci-wix-download' into ci-wix-download 2021-01-21 12:20:54 -05:00
Brad King 8efbb0c95f ci: download WiX on Windows
Avoid requiring Windows CI hosts to have WiX installed.
2021-01-21 11:53:11 -05:00
Brad King 5e5fecb7bc ci: speed up cmake and ninja downloads on Windows
Invoke-WebRequest uses a progress bar by default, but we have no
interactive session anyway.  Turn it off to speed up downloads.
2021-01-21 11:49:49 -05:00
Brad King 9d6e6b7d3b Merge topic 'vs-sdk-selection' into release-3.19
1e67482daf VS: Generalize Win10 max SDK version to all VS generators

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5721
2021-01-21 09:18:31 -05:00
Brad King 7838a065a6 Merge topic 'FindHDF5-silence-output' into release-3.19
b924669385 FindHDF5: silence STATUS messages when found with QUIET
2439a048b0 FindHDF5: avoid writing to the output when testing h5cc

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5722
2021-01-21 09:17:39 -05:00
Brad King 15fe8cf8a5 Merge topic 'macos-include-weak-dependencies' into release-3.19
7e615a540e file(GET_RUNTIME_DEPENDENCIES): Fix weak macOS libraries not detected
f2d92b983b GetPrerequisites: Include weak macOS dependencies

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5703
2021-01-21 09:16:37 -05:00
jonathan molinatto 1e67482daf VS: Generalize Win10 max SDK version to all VS generators
The `CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION_MAXIMUM` variable added in
CMake 3.19 by commit ba497111f6 (VS: Add option for custom Win10 SDK
version maximum, 2020-08-20, v3.19.0-rc1~262^2) was documented as if it
worked for all generators but implemented only to override CMake's
builtin default for the VS 2015 max SDK version.  Generalize the
variable to set a custom max SDK version for later VS versions too.

Fixes: #21720
2021-01-20 14:46:34 -05:00
Ben Boeckel b924669385 FindHDF5: silence STATUS messages when found with QUIET 2021-01-20 14:05:14 -05:00
Ben Boeckel 2439a048b0 FindHDF5: avoid writing to the output when testing h5cc
The execution of this tool can output error logs to the output during
configure. This can then be caught by CTest and flagged as an error
during the build.
2021-01-20 14:04:25 -05:00
Bianca van Schaik 7e615a540e file(GET_RUNTIME_DEPENDENCIES): Fix weak macOS libraries not detected
Starting with Clang 12, `otool -l` reports `LC_LOAD_WEAK_DYLIB` instead
of `LC_LOAD_DYLIB` for weakly linked libraries.  Update the
implementation of `file(GET_RUNTIME_DEPENDENCIES)` to recognize these.

Fixes: #21684
2021-01-20 10:26:54 -05:00
Bianca van Schaik f2d92b983b GetPrerequisites: Include weak macOS dependencies
Starting with Clang 12, `otool -L` adds `, weak` to weakly linked
libraries.  Update GetPrerequisites to recognize these.

Issue: #21684
2021-01-20 10:26:54 -05:00
Brad King 2c0e4c3762 Merge topic 'CMake-cross-compiling' into release-3.19
6cee4c6a8b Restore support for cross-compiling CMake itself

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5713
2021-01-19 09:06:52 -05:00
Marc Chevrier 6cee4c6a8b Restore support for cross-compiling CMake itself
In commit eb583b0a66 (cmake_path command: path management, 2020-07-23,
v3.19.0-rc1~216^2~1) we added a `try_run`.  In cross-compilation mode,
C++ features tests must avoid running tests if there is no emulator
defined.
2021-01-18 12:23:23 -05:00
Brad King 16ad286ead Merge topic 'irsl-msvcp_atomic_wait_dll' into release-3.19
6718caaa2f IRSL: Install msvcp${v}${d}_atomic_wait.dll if available with CRT

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5702
2021-01-18 11:14:22 -05:00
Kelly Walker 6718caaa2f IRSL: Install msvcp${v}${d}_atomic_wait.dll if available with CRT
VS now distributes these additional runtime libraries.  Install them
if available.

Fixes: #21675
2021-01-15 10:41:17 -05:00
Brad King 19ff734e76 CMake 3.19.3 v3.19.3 2021-01-13 07:58:18 -05:00
Brad King 4304767ae4 Merge topic 'trace_expand_bracket' into release-3.19
e6e7f2cab9 cmMakefile: Don't expand bracket arguments in --trace-expand

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5687
2021-01-12 10:20:26 -05:00
Brad King c3c63801f8 Merge topic 'cmake-gui-qrc-fix' into release-3.19
e20560a2dc cmake-gui: Restore linking of Qt resources

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5691
2021-01-12 10:19:28 -05:00
Kyle Edwards e20560a2dc cmake-gui: Restore linking of Qt resources
Refactoring in commit 41e223deb3 (CMake GUI: Split up into libraries,
add test shim, 2020-09-14, v3.19.0-rc1~116^2~2) broke linking of Qt
resources, such as the Add/Remove Entry button icons.

Fixes: #21682
2021-01-11 14:57:53 -05:00
Raul Tambre e6e7f2cab9 cmMakefile: Don't expand bracket arguments in --trace-expand
Bracket arguments are literal and shouldn't be expanded.

Fixes #21671.
2021-01-11 19:54:18 +02:00
Brad King fb79784136 Merge topic 'rel-macos-modern' into release-3.19
6410425e5b ci: build separate macOS packages for macOS 10.13+ and macOS 10.10+
bbec5a03c8 Utilities/Release: Add script to build Qt 5.15.2 macOS universal binaries
97e238f61b Utilities/Release: Fix macOS Qt 5.9 build script umask
2c5f30b472 cmake-gui: Fix macOS styling for binaries distributed with Qt 5.10+
3679b74a69 gitlab-ci: update upload jobs to go to cmake.org

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5672
2021-01-08 09:10:24 -05:00
Brad King 48f5b36aee Merge topic 'xcode-object-ids' into release-3.19
b8b6573db8 Xcode: Use deterministic object ids for script build phases
2892228dc9 cmGlobalXCodeGenerator: Add infrastructure for deterministic object ids
d250b67722 cmGlobalXCodeGenerator: Adopt pbxproj object id generation

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5671
2021-01-08 09:07:18 -05:00
Brad King 6410425e5b ci: build separate macOS packages for macOS 10.13+ and macOS 10.10+
In order to support modern macOS features like Dark Mode, we need to use
Qt 5.15, which requires macOS 10.13.  However, we still want to support
macOS 10.10 as well, for which we need to use Qt 5.9.  Build separate
macOS packages for these use cases.

Fixes: #21606
Issue: #20825
2021-01-07 16:56:05 -05:00
Brad King bbec5a03c8 Utilities/Release: Add script to build Qt 5.15.2 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.13.
2021-01-07 16:10:07 -05:00
Brad King 97e238f61b Utilities/Release: Fix macOS Qt 5.9 build script umask
Produce a tarball with world-readable permissions.
2021-01-07 16:10:07 -05:00
Brad King 2c5f30b472 cmake-gui: Fix macOS styling for binaries distributed with Qt 5.10+
According to https://bugreports.qt.io/browse/QTBUG-59428, Qt 5.10 and
above moved macOS style handling into a separate `qmacstyle` plugin.
Install the plugin in our `CMake.app` package on macOS.

Issue: #21606
2021-01-07 16:10:07 -05:00
Brad King 3679b74a69 gitlab-ci: update upload jobs to go to cmake.org
Upload binaries to `cmake.org` through its own name rather than
through the `public.kitware.com` alias.
2021-01-07 16:09:28 -05:00
Brad King b8b6573db8 Xcode: Use deterministic object ids for script build phases
The Xcode "new build system" only considers a script build phase up to
date if it has run before, even if outputs are newer than inputs.  Use a
deterministic object id for script build phases associated with custom
commands so that they do not need to re-run after CMake re-generates the
project.

Fixes: #21669
2021-01-06 18:46:30 -05:00
Brad King 2892228dc9 cmGlobalXCodeGenerator: Add infrastructure for deterministic object ids 2021-01-06 16:24:12 -05:00