Commit Graph

11083 Commits

Author SHA1 Message Date
Haibo Huang cbc51a8be3 Android: restructure android search paths
1. Set CMAKE_FIND_ROOT_PATH unconditionally.

Revise the implementation from commit a7f41a7ee4 (Android: Fix find_*
search order within NDK for unified toolchains, 2020-10-13).  In the old
implementation, if people set CMAKE_FIND_ROOT_PATH, CMAKE_ANDROID_NDK
won't be added to find root. And all paths added to CMAKE_SYSTEM_*_PATH
below will be rerooted to the user specified root.

2. Add api level specific library path to CMAKE_SYSTEM_PREFIX_PATH.

As the discussion in [1], some people want the paths added by
UnixPaths.cmake. They install their libraries according to
GNUInstallDirs [2].

As a result, we cannot clear CMAKE_SYSTEM_PREFIX_PATH. It includes /usr
so no matter what we specify in CMAKE_SYSTEM_LIBRARY_PATH,
/usr/lib/<arch> will be searched first.

The author also pointed out a way to solve this issue [3]. In addition
to other paths, CMake also searches <root>/<prefix> [4]. So we can add
the API specific lib path to the beginning of CMAKE_SYSTEM_PREFIX_PATH,
to have it searched first.

[1] https://android-review.googlesource.com/c/platform/ndk/+/1486800
[2] https://cmake.org/cmake/help/latest/module/GNUInstallDirs.html
[3] https://github.com/android/ndk/issues/1179#issuecomment-613435081
[4] https://gitlab.kitware.com/cmake/cmake/-/blob/11425041f04fd0945480b8f9e9933d1549b93981/Source/cmSearchPath.cxx#L202
2020-11-09 08:15:46 -05:00
Brad King 7b6a9ac8e7 Merge topic 'android-build-type'
3dae826e43 Android: default to RelWithDebInfo

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5465
2020-11-06 08:03:27 -05:00
Brad King 5696be33a6 Merge topic 'FindICU-naming'
21cb588629 FindICU: Correct variable names to match documentation

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5451
2020-11-06 08:02:30 -05:00
Brad King 02d6c98210 Merge topic 'cpack-nuget'
41ae7c4e51 CPack/NuGet: Add settings for the license, icon, and language

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5415
2020-11-06 08:01:41 -05:00
Brad King e0438b05de Merge topic 'apple-v4-tbd-file-arch-lookup'
4c6797e03e Apple: Update SDK architecture detection for tbd file version 4

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5470
2020-11-06 07:58:55 -05:00
Brad King b065b1ad09 Merge topic 'FindPostgreSQL-13'
f3f09f1c96 FindPostgreSQL: support version 13

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5468
2020-11-06 07:55:48 -05:00
Craig Scott 9201b3fa40 Merge topic 'help_ctest_cuda_memcheck'
e620bb7293 Help: Add cuda-memcheck to CTest documentation
fb98883e2b CTest: Add cuda-memcheck to Dart and CTest module

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5469
2020-11-06 05:50:53 -05:00
Bob Apthorpe 41ae7c4e51 CPack/NuGet: Add settings for the license, icon, and language
Also update the XML Schema.

Fixes: #21348
2020-11-05 10:49:25 -05:00
Tor Arne Vestbø 4c6797e03e Apple: Update SDK architecture detection for tbd file version 4
Extend the `.tbd` parsing from commit 170e598add (iOS: Fix detection of
supported SDK architectures, 2020-04-16, v3.17.2~11^2) to support `.tbd`
file version 4.
2020-11-05 10:21:23 -05:00
Tobias Ribizel fb98883e2b CTest: Add cuda-memcheck to Dart and CTest module
Issue: #21388
2020-11-05 10:04:44 -05:00
Pavel Cernohorsky f3f09f1c96 FindPostgreSQL: support version 13 2020-11-05 07:59:45 -05:00
Brad King d416b0996a Merge topic 'GNUInstallDirs-dir'
a61007b3b0 Tests: Add RunCMake.GNUInstallDirs case for get_absolute_install_dir
229b5ee994 GNUInstallDirs: Add dir argument to GNUInstallDirs_get_absolute_install_dir

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5450
2020-11-05 07:56:30 -05:00
Brad King a9e2b18bf3 Merge topic 'android-stl'
4dca078829 Android: Link c++abi and android_support when necessary
738caa4d48 Android: Add options to control exceptions/rtti

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5444
2020-11-05 07:55:46 -05:00
Craig Scott 73974d84c2 Merge topic 'abi-byte-order'
f511a1c009 CMakeDetermineCompilerABI: Detect byte order as part of check
606b34b3a6 CMakeDetermineCompilerABI: Look for more INFO strings in test binary

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Juan Ramos <juan.ramos@amd.com>
Acked-by: John Palmer <juanr0911@gmail.com>
Merge-request: !5460
2020-11-05 07:47:59 -05:00
Haibo Huang 3dae826e43 Android: default to RelWithDebInfo 2020-11-04 14:20:13 -08:00
Roger Leigh 229b5ee994 GNUInstallDirs: Add dir argument to GNUInstallDirs_get_absolute_install_dir
Fixes: #21152
2020-11-04 15:10:21 -05:00
Haibo Huang 4dca078829 Android: Link c++abi and android_support when necessary
For older NDKs we used `__android_stl_lib` to link these libraries, but
the `CMAKE_ANDROID_NDK_TOOLCHAIN_UNIFIED` code path does not use that.
Link the libraries the way the NDK toolchain file does:

  https://android.googlesource.com/platform/ndk/+/43b2de34ef9e3a70573fe51a9e069f985a4be5b9/build/cmake/android.toolchain.cmake#368
2020-11-04 14:21:26 -05:00
Haibo Huang 738caa4d48 Android: Add options to control exceptions/rtti
With the NDK's `android.toolchain.cmake`, the user can control whether
exceptions/rtti is enabled using `ANDROID_CPP_FEATURES`:

  https://android.googlesource.com/platform/ndk/+/43b2de34ef9e3a70573fe51a9e069f985a4be5b9/build/cmake/android.toolchain.cmake#548

Add `CMAKE_ANDROID_RTTI` and `CMAKE_ANDROID_EXCEPTIONS` to support that.
2020-11-04 14:18:03 -05:00
Brad King f511a1c009 CMakeDetermineCompilerABI: Detect byte order as part of check
We already detect `sizeof(void*)`.  Detect the byte order as part of the
same check.

Issue: #21392
2020-11-04 10:08:13 -05:00
Brad King 606b34b3a6 CMakeDetermineCompilerABI: Look for more INFO strings in test binary
Explicitly use only the first occurrence of each matched INFO string
since previously we only extracted the first two anyway.
2020-11-04 09:45:28 -05:00
Marc Chevrier 1c912056a1 cmake_path: remove new command from 3.19
Defer adding this command until post-3.19 development so that it
has more time to mature before being included in a release.

Issue: #21385
2020-11-03 09:55:35 -05:00
Marc Chevrier e452f6e2cf FindPython: Adds control over artifact names to search
Fixes: #21371
2020-11-03 15:12:58 +01:00
Brad King 622ac065d2 Merge topic '19128_ICU_case_consistency'
ec23338187 FindICU: Improve case consistency in documentation

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5452
2020-11-03 07:32:20 -05:00
Brad King 23d379674b Merge topic 'android-hooks'
707a06761f Android: add NDK hooks

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5436
2020-11-03 07:27:13 -05:00
Brad King e8adc3654a Merge topic 'fix-cuda-qnx'
0832516bec Help: Add 3.19 release note about CUDA support on QNX
bcdd486bf7 CUDA: Enable support on QNX

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Raul Tambre <raul@tambre.ee>
Merge-request: !5446
2020-11-03 07:22:55 -05:00
Brad King 37d75e5fdd Merge topic 'fix-cuda-qnx' into release-3.19
0832516bec Help: Add 3.19 release note about CUDA support on QNX
bcdd486bf7 CUDA: Enable support on QNX

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Raul Tambre <raul@tambre.ee>
Merge-request: !5446
2020-11-03 07:22:54 -05:00
Craig Scott 15578c465a Merge topic 'doc-cpack-pre-post-scripts' into release-3.19
b77dfa441f Help: Clarify variables specifying scripts to execute during packaging

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Alex Turbov <i.zaufi@gmail.com>
Merge-request: !5454
2020-11-03 04:21:15 -05:00
Craig Scott a18903a655 Merge topic 'doc-cpack-pre-post-scripts'
b77dfa441f Help: Clarify variables specifying scripts to execute during packaging

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Alex Turbov <i.zaufi@gmail.com>
Merge-request: !5454
2020-11-03 04:21:15 -05:00
Craig Scott b77dfa441f Help: Clarify variables specifying scripts to execute during packaging
Relates: #19077
2020-11-03 20:11:38 +11:00
Brad King 81e27967d9 Merge topic 'FindBoost-config-mode' into release-3.19
685fa8bec0 FindBoost: Avoid leaking internal Boost_ROOT setting

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5445
2020-11-02 09:43:33 -05:00
Brad King fa60d56c87 Merge topic 'FindBoost-config-mode'
685fa8bec0 FindBoost: Avoid leaking internal Boost_ROOT setting

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5445
2020-11-02 09:43:33 -05:00
janbernloehr bcdd486bf7 CUDA: Enable support on QNX
This fixes the following two issues with the CUDA support on QNX:

* cuda target name is not derived correctly (should be `aarch64-qnx`).
* linking `cudart` must not be linked against `rt`, `dl`, `pthread`.

This enables to use cmake's native cuda support on QNX.

Fixes: #21381
2020-11-02 09:39:36 -05:00
Roger Leigh ec23338187 FindICU: Improve case consistency in documentation 2020-10-31 12:13:30 +00:00
Roger Leigh 21cb588629 FindICU: Correct variable names to match documentation
* Add "ICU_" suffix to all _FOUND variables
* Ensure cache variables can also be used with correct
  ICU_ suffix and compatibility name
* Improve ICU_DEBUG messages to verify compatibility and
  corrected variable names are set to the correct values
2020-10-31 11:06:41 +00:00
Brad King 013c4133f7 Merge topic 'CheckSourceRuns-compatibility' into release-3.19
a524bf3aa7 CheckSourceRuns: do not fail on unrecognized arguments

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5426
2020-10-30 09:51:35 -04:00
Brad King 301d82a6ae Merge topic 'CheckSourceRuns-compatibility'
a524bf3aa7 CheckSourceRuns: do not fail on unrecognized arguments

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5426
2020-10-30 09:51:35 -04:00
Brad King 685fa8bec0 FindBoost: Avoid leaking internal Boost_ROOT setting
Since commit 4b2a61946f (FindBoost: Honor BOOST_ROOT when finding
upstream BoostConfig, 2020-10-22, v3.19.0-rc2~14^2) we accidentally leak
our internal setting of `Boost_ROOT`.  Revise the logic to unset our
temporary value.

Fixes: #21379
2020-10-30 09:42:43 -04:00
Haibo Huang 707a06761f Android: add NDK hooks
This change adds hooks to key Android support files, so that NDK can
inject information or change cmake behaviors.
2020-10-29 17:52:41 -07:00
Brad King 32d369aa70 Merge topic 'llvm-rc-CMAKE_RC_FLAGS'
ea03f50842 llvm_rc: add llvm_rc option filter to correctly pick up all options

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5412
2020-10-29 10:14:20 -04:00
Ben Boeckel a524bf3aa7 CheckSourceRuns: do not fail on unrecognized arguments
The old `check_X_source_runs` modules did not verify the arguments, so
we cannot start doing it now. Downgrade the hard error introduced in
commit 357e2ef429 (CheckSoureRuns: Add a unified way to check if a
source runs, 2020-09-14) via !5223 into a noisy warning.
2020-10-28 15:06:02 -04:00
Brad King e596b0e68e Merge topic 'FindRuby-restore-VENDORLIB_DIR'
80e693152c Merge branch 'release-3.19' into FindRuby-restore-VENDORLIB_DIR
4c0ef57e8c FindRuby: Restore compatibility variable RUBY_VENDORLIB_DIR

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5434
2020-10-28 07:27:49 -04:00
Thomas Bernard ea03f50842 llvm_rc: add llvm_rc option filter to correctly pick up all options
Fixes: #21315
2020-10-28 07:19:31 -04:00
Brad King 80e693152c Merge branch 'release-3.19' into FindRuby-restore-VENDORLIB_DIR 2020-10-27 12:25:41 -04:00
Brad King 4c0ef57e8c FindRuby: Restore compatibility variable RUBY_VENDORLIB_DIR
Since commit e672db628b (FindRuby: Rename variables to match case of
module name, 2020-03-11, v3.18.0-rc1~546^2), the result variables named
with the old `RUBY_` prefix are provided by compatibility code that maps
from the new `Ruby_` prefix variables.  This variable was accidentally
left out.

Fixes: #21369
2020-10-27 12:18:05 -04:00
Brad King 96ea613f16 Merge topic 'correct_msvc_cuda_flag_warning' into release-3.19
2b0d3c3524 CUDA: Use MSVC version to determine supported C++ standard levels

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5423
2020-10-27 07:05:18 -04:00
Brad King 6739e8560c Merge topic 'correct_msvc_cuda_flag_warning'
2b0d3c3524 CUDA: Use MSVC version to determine supported C++ standard levels

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5423
2020-10-27 07:05:18 -04:00
Brad King 967fb42d47 Merge topic 'check-module-name-conflicts'
d192918586 Modules: Do not implicitly add new functions via old Check Modules

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5424
2020-10-27 07:02:50 -04:00
Robert Maynard 2b0d3c3524 CUDA: Use MSVC version to determine supported C++ standard levels
Fixes: #21335
2020-10-26 11:36:55 -04:00
Robert Maynard d192918586 Modules: Do not implicitly add new functions via old Check Modules
The conversion of Check<Lang>CompilerFlag, SourceCompiles, and
SourceRuns over to the new functions has the possibility of breaking
projects that had functions with those existing names.

To reduce the possibility of collisions we now have all the
legacy code call functions that start with `cmake_`, and users
will need to explicitly include the new modules to get the
non-prefixed versions

Fixes: #21359
2020-10-26 10:57:55 -04:00
Brad King d67f47109c Merge topic 'ExternalData-suppress-progress'
ae7c81c622 ExternalData: add support for suppressing progress during the build

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5413
2020-10-26 10:31:11 -04:00