Commit Graph

9616 Commits

Author SHA1 Message Date
Brad King
6f3c429ee8 Merge topic 'soname-darwin'
2171f6ec0e Swift: correct SONAME flag for Darwin targets

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3640
2019-08-09 10:30:45 -04:00
Brad King
1a901ed09e Merge topic 'fphsa-components-space'
e45187d525 FPHSA: Remove extra space in module components report

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Alex Turbov <i.zaufi@gmail.com>
Merge-request: !3655
2019-08-09 10:28:45 -04:00
Brad King
dd53122be5 Merge topic 'FindPython-virtual-env'
7ed84b1e8f FindPython: ensure virtual environments are correctly handled

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3649
2019-08-07 11:52:57 -04:00
Brad King
26f0f8bfca Merge topic 'FindGLEW-macOS'
feeb0381bc FindGLEW: Fix typo in verbose log message
ab822a9b48 FindGLEW: Add required OpenGL dependency in macOS
a8a3efa3be FindGLEW: Fix macOS library suffix selection

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3656
2019-08-07 09:58:56 -04:00
Brad King
a09d14bbce Merge topic 'cmake-dependent-option-doc'
d192caefff CMakeDependentOption: Document that 4th parameter follows if-syntax

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3643
2019-08-06 09:57:19 -04:00
Claudio Fantacci
feeb0381bc FindGLEW: Fix typo in verbose log message 2019-08-06 09:49:03 -04:00
Claudio Fantacci
ab822a9b48 FindGLEW: Add required OpenGL dependency in macOS
macOS requires OpenGL as INTERFACE_LINK_LIBRARIES dependency
in the GLEW targets. This commit fixes this issue.
2019-08-06 09:49:03 -04:00
Claudio Fantacci
a8a3efa3be FindGLEW: Fix macOS library suffix selection
Fix logic added by commit a7d853868b (FindGLEW: Update implementation,
2019-03-13, v3.15.0-rc1~375^2~1) on macOS.  macOS is recognized as both
UNIX and APPLE.  Consequently, the library suffix for shared and static
library was set, respectively, as `.so` and `.a`, just like UNIX systems.
Fix this by properly checking the OS type.

Fixes: #19542
2019-08-06 09:47:35 -04:00
Brad King
6f359e120f Merge topic 'clang-frontend-variant'
a245479372 clang: Work around toolchain file use of internal CMake variables

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3650
2019-08-06 09:41:38 -04:00
Sylvain Joubert
e45187d525 FPHSA: Remove extra space in module components report 2019-08-06 12:42:06 +02:00
Saleem Abdulrasool
2171f6ec0e Swift: correct SONAME flag for Darwin targets
Adjust the build rules for Swift to fix the SONAME handling for Darwin.
2019-08-05 17:29:41 -07:00
Marc Chevrier
7ed84b1e8f FindPython: ensure virtual environments are correctly handled
Fixes: #19525
2019-08-05 18:20:29 +02:00
Hong Xu
d192caefff CMakeDependentOption: Document that 4th parameter follows if-syntax 2019-08-05 10:15:21 -04:00
Brad King
a245479372 clang: Work around toolchain file use of internal CMake variables
Since commit d44c0db0b2 (clang: setup correct configuration in gnu mode,
2019-02-20, v3.15.0-rc1~41^2~5) our Clang compiler information modules
need the `CMAKE_<LANG>_COMPILER_FRONTEND_VARIANT` variable that we
compute during compiler detection.  However, some existing toolchain
files set our internal `CMAKE_<LANG>_COMPILER_ID_RUN` variables and
block that detection, but do not set the new frontend variant variable.
Help them out by setting `CMAKE_<LANG>_COMPILER_FRONTEND_VARIANT` anyway.

Fixes: #19515, #19539
2019-08-05 09:43:00 -04:00
Brad King
f6d6dbc293 Make CMAKE_LINK_LIBRARY_FILE_FLAG work like CMAKE_LINK_LIBRARY_FLAG
The `CMAKE_LINK_LIBRARY_FILE_FLAG` variable is meant for linkers that
want library file paths to be preceded by a flag.  This is used only
for OpenWatcom to add the `library` argument before library file paths.
Refactor the approach to treat `CMAKE_LINK_LIBRARY_FILE_FLAG` as a
command-line string fragment to add just before the library file path.
This has two advantages:

* `CMAKE_LINK_LIBRARY_FILE_FLAG` now works like `CMAKE_LINK_LIBRARY_FLAG`.
* `CMAKE_LINK_LIBRARY_FILE_FLAG` can now be an attached flag whose value
  is the library file path.

Technically this is a change in behavior, but this setting was created
for internal use and should be rarely used outside of CMake itself.

Fixes: #19541
2019-08-02 13:37:39 -04:00
Brad King
fa722a8792 Merge topic 'clang-cl-non-windows'
863f7eb6d7 clang: Restore support for clang-cl on non-Windows hosts

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3634
2019-08-02 10:37:57 -04:00
Brad King
863f7eb6d7 clang: Restore support for clang-cl on non-Windows hosts
The frontend variant detection logic added by commit 53fbe23f3f (clang:
introduce CMAKE_<lang>_COMPILER_FRONTEND_VARIANT, 2019-02-20,
v3.15.0-rc1~41^2~8) assumes that `clang-cl` only runs on a Windows host.
It is also available on non-Windows hosts.  Fix the condition.

Fixes: #19544
2019-07-31 12:52:35 -04:00
Brad King
3cf89d18c3 Merge topic 'ExternalProject-avoid-extra-checkout'
627fc5b44f ExternalProject: Avoid unnecessary checkout on clone

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3626
2019-07-31 11:47:09 -04:00
Brad King
800c3ab2e0 FindPythonInterp: Document lack of version filtering for plain python
Also drop the `CMakeOnly.MajorVersionSelection-PythonInterp_2` test
because some environments now have a plain `python` executable for
Python 3.

Fixes: #19536
2019-07-30 12:09:43 -04:00
Tetragramm
627fc5b44f ExternalProject: Avoid unnecessary checkout on clone
The clone step checks out the cloned branch but is always followed by an
explicit checkout of the desired `GIT_TAG`.  Tell `git clone` not to
check out.
2019-07-30 11:45:33 -04:00
Brad King
a21bccfd30 Merge topic 'find_more_binutils'
993fe2b4af CMakeFindBinUtils: add some more binutils
5412d63714 CMakeFindBinUtils: add missing llvm alternatives
3a82ef78eb CMakeFindBinUtils: Rename and unset variables for additional names

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3584
2019-07-30 11:39:38 -04:00
Brad King
f22a2a1fa5 Merge topic 'CheckCXXSymbolExists-c++-syntax'
72fcadb007 CheckCXXSymbolExists: Make C++-syntax symbols work on more compilers

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3545
2019-07-29 11:50:42 -04:00
Hong Xu
72fcadb007 CheckCXXSymbolExists: Make C++-syntax symbols work on more compilers
On some compilers the syntax `#ifndef std::fopen` will always lead to
compilation error.  Avoid generating it in the check.
2019-07-26 15:09:28 -04:00
Brad King
97bca2f9fa Android: Use unified toolchain in NDK r19+
The NDK build system now uses only a single toolchain in

    <ndk>/toolchains/llvm/prebuilt/<host>

Its compilers are always `bin/{clang,clang++}` and its binutils are
always `bin/<triple>-*`.  It is a standalone toolchain:

* The Anrdoid API level is specified at the end of `--target=`.
* The standard library may be specified via `-stdlib=`.
* No need to pass system includes or libraries explicitly.
* No need to pass `--sysroot` or `-gcc-toolchain`.

Teach CMake to recognize NDK versions that have a unified
toolchain with its own sysroot and use the above approach.

Fixes: #18739
2019-07-26 14:17:07 -04:00
Brad King
f3e32ddae9 Android: Re-order system initialization to select sysroot last 2019-07-26 14:17:07 -04:00
Brad King
9a0720b819 Android: Clarify name of internal variable for arch triple
The triple applies to more than just header locations.
2019-07-26 14:17:07 -04:00
Brad King
4e6c58d937 Android: Select NDK host tag while determining system
The host tag is tied to the host platform and does not depend on any
specific language or compiler.
2019-07-26 14:17:07 -04:00
Kyle Edwards
8fd481a899 Merge topic 'ep_support_no_submodule_init'
d6be117ca0 ExternalProject: Support not initializing any submodules

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3579
2019-07-26 12:02:34 -04:00
Brad King
f54c9f6cc3 Merge topic 'FindMPI-link-flags'
cf04da7e70 FindMPI: make sure computed link flags are not de-duplicated

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: Ben Boeckel <ben.boeckel@kitware.com>
Tested-by: Robert Maynard <robert.maynard@kitware.com>
Acked-by: Axel Huebl <axel.huebl@plasma.ninja>
Merge-request: !3605
2019-07-26 07:12:08 -04:00
Brad King
693a9b382a Merge branch 'FindMPI-link-flags' into release-3.15
Merge-request: !3605
2019-07-25 13:09:25 -04:00
Robert Maynard
cf04da7e70 FindMPI: make sure computed link flags are not de-duplicated
In commit f7eaa342de (FindMPI: Store imported target link flags as a
list instead of a string, 2019-06-14, v3.15.0-rc2~2^2) we used
`separate_arguments` to parse the extracted link flags and add them to
`INTERFACE_LINK_LIBRARIES`.  That property is not meant for link flags
and CMake may de-duplicate them.  This is particularly problematic for
flags like `-Wl,-rpath -Wl,/path1 -Wl,-rpath -Wl,/path2`.

In commit 39c572c9c9 (FindMPI: Updated to use INTERFACE_LINK_OPTIONS,
2019-06-24) we moved the parsed flags over to `INTERFACE_LINK_OPTIONS`,
but that may still perform de-duplication.  Avoid the parsing and
de-duplication of flags by passing the original string via `SHELL:`
instead.

Fixes: #19516
2019-07-25 12:59:21 -04:00
Robert Maynard
d6be117ca0 ExternalProject: Support not initializing any submodules
Fixes #15592
2019-07-24 09:36:30 -04:00
Brad King
420073e536 Merge branch 'backport-clang-gnulike-support' into release-3.15
Merge-request: !3592
2019-07-24 08:12:51 -04:00
Brad King
5cfc39127e Merge branch 'backport-clang-gnulike-support' into clang-gnulike-support 2019-07-24 08:00:53 -04:00
Brad King
d50b31be35 Clang: For MSVC ABI do not use modes older than C++14
Since commit d44c0db0b2 (clang: setup correct configuration in gnu mode,
2019-02-20, v3.15.0-rc1~41^2~5) we support the GNU-like Clang that
targets the MSVC ABI.  However, Clang cannot compile with the MSVC
standard library unless it runs in a mode aware of C++14 (since MSVC
itself does not even have a lower mode).  When `CMAKE_CXX_STANDARD` is
set to 98 or 11, use C++14 anyway.

Since Clang's default mode is aware of C++14, another option is to not
add any flags for 98 or 11.  However, if a future Clang version ever
defaults to a higher C++ standard, setting the standard to 98 or 11
should at least not use a mode higher than 14.

Also revert test updates from commit 4819ff9647 (Tests: fix failures
with gnu mode clang on windows, 2019-03-21, v3.15.0-rc1~41^2~3) that
were meant to work around the standard selection problem.

Fixes: #19496
2019-07-24 07:40:30 -04:00
Norbert Lange
993fe2b4af CMakeFindBinUtils: add some more binutils 2019-07-24 00:16:12 +02:00
Norbert Lange
5412d63714 CMakeFindBinUtils: add missing llvm alternatives
LLVM 8.0 already ships with alternatives for all
current Binutils. Enable them.
2019-07-24 00:06:14 +02:00
Norbert Lange
3a82ef78eb CMakeFindBinUtils: Rename and unset variables for additional names
use the name pattern `_CMAKE_ADDITIONAL_<PROGRAM_NAME>_NAMES`,
and unset those variables at the end of the function
2019-07-23 23:57:45 +02:00
Brad King
452419efb9 Merge topic 'InstallRequiredSystemLibraries-redist'
13c3ec545b IRSL: Fix discovery of VS 2019 v141 toolset redistributables
0484165da0 IRSL: Fix typo in v143 toolset version check

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3585
2019-07-23 07:38:12 -04:00
Brad King
4cac01c63a Merge branch 'InstallRequiredSystemLibraries-redist' into release-3.15
Merge-request: !3585
2019-07-22 10:20:06 -04:00
James Butler
13c3ec545b IRSL: Fix discovery of VS 2019 v141 toolset redistributables
Since VS 2019, the v141 toolset redistributables can be found in
either the VS 2019 or VS 2017 install directory. Update the logic
to search multiple versions of VS.

Fixes: #19488
2019-07-22 10:06:45 -04:00
James Butler
0484165da0 IRSL: Fix typo in v143 toolset version check
Fix the toolset v143 check from commit 33ee779330 (IRSL: Fix discovery
of VS 2019 v142 toolset redistributables, 2019-04-03, v3.14.2~6^2) to
check the correct variable.
2019-07-22 10:06:44 -04:00
Craig Scott
9e42075498 Merge topic 'cpack-install-scripts'
5f96601675 CPack: Introduce CPACK_INSTALL_SCRIPTS variable

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3531
2019-07-22 07:04:00 -04:00
Alex Turbov
5f96601675 CPack: Introduce CPACK_INSTALL_SCRIPTS variable
The singular name `CPACK_INSTALL_SCRIPT` has existed but was not linked
from the CPack documentation.  Also, it supported multiple values and
should have had a plural name.  Add a plural-named alternative now.
If both `CPACK_INSTALL_SCRIPTS` and `CPACK_INSTALL_SCRIPT` are set then
ignore the latter with a warning.

Signed-off-by: Alex Turbov <i.zaufi@gmail.com>
2019-07-22 02:01:44 +03:00
Brad King
123384da2e Merge topic 'swift-deduplicate'
151ef7cef4 Swift: refactor rule construction to reduce duplication

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3551
2019-07-19 12:08:08 -04:00
Brad King
a6cc72595f Merge topic 'FindProtobuf-DLLs'
3bbd85d5ff FindProtobuf: Fix usage of protobuf dynamic libraries on Windows

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3555
2019-07-19 12:05:31 -04:00
NeroBurner
6cc4ca31d5 Fix repeated word in FindVulkan.cmake 2019-07-18 17:25:04 -04:00
Brad King
1a2d260634 Merge branch 'backport-swift-improvements' into release-3.15
Merge-request: !3568
2019-07-18 07:47:05 -04:00
gnaggnoyil
3bbd85d5ff FindProtobuf: Fix usage of protobuf dynamic libraries on Windows
Define `PROTOBUF_USE_DLLS` on Windows when linking against dynamic
protobuf libraries so that we import symbols from them.

We use the condition `MSVC` to enable this because that is what
the upstream buildsystem uses.
2019-07-18 07:40:40 -04:00
Brad King
ae84427e32 Merge topic 'FindPython-interpreter-crosscompiling'
696d0f9caf FindPython: ensure interpreter is founded when cross-compiling

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3564
2019-07-18 07:15:48 -04:00