Commit Graph

9302 Commits

Author SHA1 Message Date
Christian Pfeiffer
7db32efbab FindMPI: Don't retain libdirs for Win32
On Windows systems, the need to retain library directories should not
nomrally occur. This can only occur on Unix like systems where a shared
library is being linked that has a dependency on another library which
is not being found in the default directories (e.g. libgfortran on BSD)

This also works around an issue introduced by !1694 in that the Visual
Studio generator does not handle link flags passed in
`INTERFACE_LINK_LIBRARIES` correctly, causing problems when using that
generator with Intel MPI in certain circumstances.
2019-04-20 20:45:09 +02:00
Brad King
a000ec7a08 Merge topic 'add_xl_cxx14_support'
458ea9d76c XL: Add C++14 language level flags

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3235
2019-04-18 11:03:12 -04:00
Brad King
2ed688a863 Merge topic 'msvc-runtime-library'
fb3370b6a1 MSVC: Add abstraction for runtime library selection
f621e7fa5d VS: Fix Fortran runtime library flag map special case for '-' options

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Ben Boeckel <ben.boeckel@kitware.com>
Acked-by: Leonid Pospelov <pospelovlm@yandex.ru>
Merge-request: !3211
2019-04-17 11:01:37 -04:00
Brad King
fb3370b6a1 MSVC: Add abstraction for runtime library selection
Replace our hard-coded defaults for `/MD` and `/MDd` with a first-class
abstraction to select the runtime library from an enumeration of logical
names.  We've long hesitated to do this because the idea of "runtime
library selection" touches on related concepts on several platforms.
Avoid that scope creep by simply defining an abstraction that applies
only when targeting the MSVC ABI on Windows.

Removing the old default flags requires a policy because existing
projects may rely on string processing to edit them and choose a runtime
library under the old behavior.  Add policy CMP0091 to provide
compatibility.

Fixes: #19108
2019-04-17 11:00:44 -04:00
Brad King
5cd187147e Merge topic 'memorize_msvc_like_compilers_C_support'
8e4899fd6c CompileFeatures: Record which C features the MSVC compiler supports

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3226
2019-04-17 10:58:49 -04:00
Brad King
87609eebf3 Merge topic 'libglvnd-subdir'
844050adaf FindOpenGL: look for GLVND libraries with a libglvnd suffix

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3236
2019-04-17 10:44:05 -04:00
Ben Boeckel
844050adaf FindOpenGL: look for GLVND libraries with a libglvnd suffix
On CentOS 6.10, the libglvnd package from EPEL installs its libraries
under a libglvnd subdirectory.
2019-04-17 10:16:46 -04:00
Brad King
7f9e93aa05 Merge topic 'vs2019-redist'
a0b6448c85 IRSL: Update redist directory for VS 2019 update 1

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3233
2019-04-16 13:35:39 -04:00
Brad King
fc4324a27c Merge topic 'Boost-Gentoo'
0b54f72e94 FindBoost: Fix detection with version suffixes on Gentoo

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3237
2019-04-16 13:34:41 -04:00
Rolf Eike Beer
0b54f72e94 FindBoost: Fix detection with version suffixes on Gentoo
The Gentoo case added by commit 1673923c30 (FindBoost: Add support for
Boost 1.67 with Python version suffixes, 2018-03-18, v3.11.0~3^2) left
out the `.` version component separator and instead duplicated the RPM
case.  Add the missing `.` now.

Fixes: #18743
2019-04-16 13:31:27 -04:00
Robert Maynard
458ea9d76c XL: Add C++14 language level flags 2019-04-15 12:38:03 -04:00
Brad King
a0b6448c85 IRSL: Update redist directory for VS 2019 update 1
VS 2019 Update 1 will fix its redist directories to be named `VC142`
instead of `VC141`.  It will also use cl `19.21` instead of `19.20`
so we can use that to distinguish the versions.

Fixes: #19131
2019-04-15 10:59:02 -04:00
Brad King
8b667f24d4 Merge topic 'iar-generalize'
ea83d0f8fb IAR: Generalize and add support for IAR RX compiler

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3196
2019-04-15 10:53:35 -04:00
Brad King
0793464d95 Merge topic 'ghs_custom'
2bae6a1346 GHS: Update tests and notes
3b415c60c1 GHS: Update ExternalProject for GHS tools
83c47ef5b8 GHS: Update project layout to accommodate gbuild inconsistencies
5d2e1404bd GHS: Update project layout to build targets correctly
b6bfa7eeb2 GHS: Support add_dependencies() command
39ee9718d9 GHS: Support add_custom_target() command
8d3dad9a76 GHS: Support add_custom_command( OUTPUT ) signature
37acc9e229 GHS: Update custom command build events

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Narendhar Manimohan <narendhar15@gmail.com>
Merge-request: !3119
2019-04-15 10:52:21 -04:00
Brad King
6aab5e0ef9 Merge topic 'FindBoost-msvc-toolset-14.2'
032e969879 Merge branch 'backport-FindBoost-msvc-toolset-14.2'
717e85418b FindBoost: Add support for MSVC toolset version 14.2
9010f5c18a FindBoost: Add support for MSVC toolset version 14.2

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3221
2019-04-15 10:49:54 -04:00
Robert Maynard
8e4899fd6c CompileFeatures: Record which C features the MSVC compiler supports
Use the infrastructure added by commit f92ccbc306
(CompileFeatures: memoize C compilers with full language level support)
to avoid using a `try_compile` to check for C 90/99/11 feature support when the running compiler is known to have a fixed set of feature support.
2019-04-12 14:39:57 -04:00
Brad King
717e85418b FindBoost: Add support for MSVC toolset version 14.2
Generalize the logic to express compatibility among 14.x versions.
2019-04-12 11:35:19 -04:00
Stefan Andersson
ea83d0f8fb IAR: Generalize and add support for IAR RX compiler
Moved common ASM setup to the common macros and changed version check.
2019-04-12 09:10:02 +02:00
Fred Baksik
3b415c60c1 GHS: Update ExternalProject for GHS tools
-- When using default values for the external project forward GHS platform
   variables so that the external project builds with the same tools as
   the original project.

-- Fix issue with bad top level project when GHS_PRIMARY_TARGET is set but has
   no value.  In this case treat it as unset and use default value.
2019-04-11 13:15:51 -04:00
Robert Maynard
239a8a0266 CompileFeatures: Record when CXX compilers have gained full support for 98
Use the infrastructure added by commit 646fb1a646 (CompileFeatures:
memoize C++ compilers with full language level support, 2019-03-27) to
avoid using a `try_compile` to check for C++98 feature support when the
running compiler is known to have all features.
2019-04-11 11:20:48 -04:00
Brad King
876680e94b Merge topic 'meta-feature_only_infer_granular_support'
613ac56e50 Add a test to verify meta-feature parity with granular features
b0f46c48f6 CompileFeatures: Now able to presume full language level support
646fb1a646 CompileFeatures: memoize C++ compilers with full language level support
0d641fcfad Tests: Remove outdated portion of CompileFeatures genex test

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3176
2019-04-10 08:49:21 -04:00
Craig Scott
0a29875313 Merge topic 'fix-submit-url'
b8cb63457e Modules/CTest: Fix SubmitURL

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3206
2019-04-09 17:55:34 -04:00
Craig Scott
127d0ea2a6 Merge branch 'fix-submit-url' into release-3.14
Merge-request: !3206
2019-04-10 07:54:29 +10:00
Regina Pfeifer
b8cb63457e Modules/CTest: Fix SubmitURL
Problem appeared in d6475daa79 (Modules/CTest: Set SubmitURL, 2018-12-08).

Fixes: #19099
2019-04-10 07:43:20 +10:00
Robert Maynard
b0f46c48f6 CompileFeatures: Now able to presume full language level support
Previously compilers that only supported the meta-level flags
would not have any of the granular features listed. Now we
presume that they have full support and enable all the features.

Update granular feature tests to skip the actual compilation
checks for the presumed features.
2019-04-09 08:44:56 -04:00
Robert Maynard
646fb1a646 CompileFeatures: memoize C++ compilers with full language level support
Previously compilers that had full support for a language standard level
were still verified every time a new build directory was created.  Now
we record this information and insert the correct granular compile
features instead of doing a `try_compile`.
2019-04-09 08:44:56 -04:00
Brad King
a289d79517 Merge topic 'improve-formatting-of-help'
cb33befe2d Modules: Update documentation formatting
0e4fbb4a1f Help: Improve formatting of Help documentation

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Ben Boeckel <ben.boeckel@kitware.com>
Merge-request: !3199
2019-04-09 08:30:15 -04:00
Brad King
30f68934e9 Merge branch 'backport-implicit-includes-relative' into release-3.14
Merge-request: !3204
2019-04-08 10:44:46 -04:00
Brad King
442f4c4902 Merge branch 'backport-implicit-includes-relative' 2019-04-08 10:16:47 -04:00
Brad King
ef41d49812 Fix implicit include directory extraction for adaptive relative paths
In some cases GCC reports *relative* implicit include directories.  They
are computed adaptively with respect to the current working directory
such that the effective implicit include directory is an unchanging
absolute path.  Teach our implicit include directory extraction to
recognize such paths and normalize them.

Fixes: #19133
2019-04-08 10:12:22 -04:00
Bartosz Kosiorek
cb33befe2d Modules: Update documentation formatting 2019-04-08 14:55:56 +02:00
Brad King
c756fbce9b Merge topic 'ghs_os_dir'
a1e6b414b9 GHS: Update GHS_BSP_NAME processing
266dadf868 GHS: Print status message regarding GHS_OS_DIR

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3123
2019-04-08 07:45:13 -04:00
Brad King
cf70b87143 Merge topic 'armcc-compiler-id'
f28e7fc1a5 ARMCC: Do not identify ARMClang as ARMCC

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3187
2019-04-04 11:44:02 -04:00
Brad King
5c1ead795d Merge topic 'vs2019-redist'
33ee779330 IRSL: Fix discovery of VS 2019 v142 toolset redistributables
d8cf8380fb MSVC: Fix MSVC_TOOLSET_VERSION for VS 2019 v142 toolset

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3186
2019-04-04 11:43:18 -04:00
Brad King
192aa506c6 Merge branch 'vs2019-redist' into release-3.14
Merge-request: !3186
2019-04-04 11:40:22 -04:00
Brad King
33ee779330 IRSL: Fix discovery of VS 2019 v142 toolset redistributables
Since VS 2017's v141 toolset there is no longer a simple equation to
calculate the redist name, dll version, and VS IDE version from just the
MSVC toolset version.  Refactor the logic to use hard-coded values and
warn when a new version is not supported.

Fixes: #19125
2019-04-04 11:35:38 -04:00
Brad King
85b26a7254 Merge topic 'FindGLEW-lib-suffixes'
14c7396fb9 FindGLEW: fix CMAKE_FIND_LIBRARY_SUFFIXES

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3179
2019-04-04 11:34:43 -04:00
Brad King
a15ed54dca Merge topic 'FindBoost-clang-cl'
d48bf97fd3 FindBoost: Consider boost suffixes suitable for clang-cl

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3164
2019-04-04 11:33:37 -04:00
Brad King
d1c2f8787c Merge topic 'FindPython-handle-virtual-env'
8a2f62cc18 FindPython*: Add capability to control virtual env handling.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3173
2019-04-04 11:28:49 -04:00
Douman
d48bf97fd3 FindBoost: Consider boost suffixes suitable for clang-cl
When compiling with `clang-cl` we can use either the MSVC- or
Clang-built boost libraries.
2019-04-03 14:30:11 -04:00
Brad King
058217669f Merge topic 'find-dependency-fix-17583'
37da6af17d find_dependency: Always search dependencies

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3161
2019-04-03 14:05:57 -04:00
Brad King
f28e7fc1a5 ARMCC: Do not identify ARMClang as ARMCC
Since commit 8f8d056051 (ARMCC: Fix identification of ARM compiler when
it defines GNU macros, 2019-03-20, v3.14.1~10^2) we consider ARMCC
before Clang or GNU compilers.  Since armclang also defines
`__ARMCC_VERSION` it is now mistaken for ARMCC.  Extend the check for
ARMCC to also verify that `__clang__` is not defined.

Issue: #19065
2019-04-03 12:50:10 -04:00
Brad King
d8cf8380fb MSVC: Fix MSVC_TOOLSET_VERSION for VS 2019 v142 toolset
This was forgotten in commit 626c51f47b (VS: Update for Visual Studio
2019 Preview 2, 2019-01-24, v3.14.0-rc1~74^2) when the toolset was
first renumbered to `v142`.

Issue: #19125
2019-04-03 12:27:29 -04:00
Marc Chevrier
8a2f62cc18 FindPython*: Add capability to control virtual env handling.
Fixes: #19097
2019-04-03 09:16:17 +02:00
Claudio Fantacci
14c7396fb9 FindGLEW: fix CMAKE_FIND_LIBRARY_SUFFIXES
FindGLEW temporarily changes the content of CMAKE_FIND_LIBRARY_SUFFIXES
to look for static and dynamic GLEW library.
However, it wasn't storing and restoring the initial content of such
variable, causing possible issues in user project.
2019-04-03 09:06:16 +02:00
Brad King
81985b7c6c Merge topic 'nasm-fix'
9e4de543d0 Modules: Check nasm compile object variable

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3167
2019-04-02 14:17:57 -04:00
Brad King
afa2614eea Merge topic 'memorize_c_compilers_with_full_standard_support'
983533a4b8 Record when C compilers have gained full support for 90,99,11
f92ccbc306 CompileFeatures: memoize C compilers with full language level support

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3146
2019-04-01 10:41:49 -04:00
Connor Davis
9e4de543d0 Modules: Check nasm compile object variable
Check if the CMAKE_ASM_NASM_COMPILE_OBJECT variable is set
before modifying it. Only modify if not previously set.
2019-03-29 21:57:28 -06:00
Damien R
37da6af17d find_dependency: Always search dependencies
When a dependency was already found, find_dependency did not search it
again. While this works in basic case, it does not when there are
components as the check does not take components into account.

Given the fact that there is no documentation about this optimization and
that the correct implementation is not trivial as it would require
changes in find_package to have the list of components already found we
always search dependencies.

Fix #17583.
2019-03-29 22:03:21 +01:00
Fred Baksik
266dadf868 GHS: Print status message regarding GHS_OS_DIR
-- Rename platform script so it runs before initial try_compile() in
   project() command.
-- Fix incorrect variable name GHS_OS_DIR_OPTION
-- Remove unnecessary ".*" from REGEX expression for GHS_CANDIDATE_OS_DIRS
-- Forward GHS_OS_DIR_OPTION to try_compile() and preserve trailing
   whitespace of the variable.
2019-03-29 12:38:12 -04:00