7891 Commits

Author SHA1 Message Date
Brad King
10fb805987 Merge topic 'FindOpenACC'
d3b6f291 FindOpenACC: Add module to detect compiler support for OpenACC

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1209
2017-09-25 09:00:59 -04:00
Brad King
62bdc587eb Merge topic 'cpackifw-options'
9a24ab6b CPackIFW: Add some options

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1298
2017-09-25 08:58:25 -04:00
Brad King
bb535bedc0 Merge topic 'FindOpenMP-CMP0054'
dd5324ab FindOpenMP: Avoid CMP0054 warnings

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1303
2017-09-25 08:56:00 -04:00
Craig Scott
c3877b892a Merge topic '16839-better-tvos-support'
45e30d12 Xcode: Add team to compiler-id project
0be0e02c Xcode: Add tvOS and watchOS toolchain file support

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1278
2017-09-24 08:02:57 -04:00
Craig Scott
de5dd4f4fa Merge topic 'graphviz-link-type'
5b46cc91 graphviz: distinguish target dependency types

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1229
2017-09-22 18:28:59 -04:00
Brad King
dd5324ab1e FindOpenMP: Avoid CMP0054 warnings
When invoked in projects that don't set CMP0054 to NEW, FindOpenMP
triggers a warning:

    CMake Warning (dev) at .../Modules/FindOpenMP.cmake:... (if):
      Policy CMP0054 is not set...Quoted variables like "c" will no
      longer be dereferenced when the policy is set to NEW.  Since
      the policy is not set the OLD behavior will be used.

Set the policy within the module's scope to avoid this.

Fixes: #17292
2017-09-22 13:50:35 -04:00
Tin Huynh
d3b6f29140 FindOpenACC: Add module to detect compiler support for OpenACC 2017-09-22 10:42:27 -04:00
Brad King
33eec57232 Merge topic 'cpack-rpm-deb-version'
74b7457f CPack RPM and DEB: improved package version handling

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1296
2017-09-22 10:14:49 -04:00
Domen Vrankar
545d9a17e5 CPack/RPM: new CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST exclude paths
Patch adds `/usr/share/aclocal` path to exclude list and
and documents `/usr/libx32` and `/usr/include` paths that
were already on the list.

Closes: #17056
2017-09-21 20:59:13 +02:00
Nico Müller
5b46cc91d9 graphviz: distinguish target dependency types
- The output graph of graphviz differs now between target link types
- Updated documentation
- Fixes: #17192
2017-09-21 20:49:44 +02:00
Konstantin Podsvirov
9a24ab6b63 CPackIFW: Add some options
The `CPackIFW` module `cpack_ifw_configure_component` and
`cpack_ifw_configure_component_group` commands gained a new
`REPLACES` and `CHECKABLE` options.
2017-09-21 21:34:33 +03:00
Domen Vrankar
74b7457f12 CPack RPM and DEB: improved package version handling
Adds support for epoch version to CPackRPM and
CPackDeb packagers.
Also adds better version checking to CPackDeb
that complies with Debian rules.

Fixes: #17057
2017-09-21 19:54:17 +02:00
Brad King
aa8ad21ea5 Merge topic 'midipix-support'
0df43496 Midipix: Add minimal platform file

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1294
2017-09-21 08:26:32 -04:00
Brad King
6f666f4335 Merge topic 'freebsd-compiler-name'
3cf3bb71 Help: Add notes for topic 'freebsd-compiler-name'
a0508dee FreeBSD prefers to call the C++ compiler c++ (just like Linux, Darwin, ..)

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1293
2017-09-21 08:25:23 -04:00
midipix
0df434967c Midipix: Add minimal platform file
Add Midipix.cmake (UnixPaths, no overrides, no special cases).
2017-09-20 14:44:30 -04:00
Brad King
7f8999dfc6 Merge topic 'pgi-fortran-flag-fix'
485a6f0e PGI-Fortran: Add -Mipa=fast,inline as IPO option.
97f0b177 PGI-Fortran: Remove -Kieee and -Mpreprocess

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1239
2017-09-20 13:21:21 -04:00
Adriaan de Groot
a0508dee93 FreeBSD prefers to call the C++ compiler c++ (just like Linux, Darwin, ..) 2017-09-20 10:52:29 +02:00
Gregor Jasny
45e30d128c Xcode: Add team to compiler-id project
Closes #16839
2017-09-19 20:44:31 +02:00
Gregor Jasny
0be0e02cfb Xcode: Add tvOS and watchOS toolchain file support
Issue #16839
2017-09-19 20:44:31 +02:00
Brad King
f23def2cf3 Improve formatting of compiler failure error message
When we report that a compiler was unable to build a simple test
program, indent the output of the attempt so that our message formatting
will show it as a pre-formatted block.
2017-09-19 09:14:40 -04:00
Brad King
71c752a63b Merge topic 'gtest-fix-windows-linking'
e2cca9f8 FindGTest: Avoid macro name collision
4636c64b FindGTest: Improve test to catch link error
35061791 FindGTest: Fix shared linking on Windows
9fd9e448 FindGTest: Avoid using find_dependency in a find module

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1267
2017-09-19 08:24:25 -04:00
Alex Turbov
a929dd166e FindBoost: Simplify search in lists
Instead of `list(FIND...)` and then checking result for `-1`
(found/not-found), nowadays `if` command has the `IN_LIST` test for
that.

This change was originally made by commit v3.9.0-rc1~41^2 (FindBoost:
Simplify search in lists, 2017-04-23) but then had to be reverted by
commit v3.9.2~3^2 (FindBoost: Revert "Simplify search in lists.",
2017-09-05) due to problems related to using `find_dependency`.  Those
problems were addressed by commit 3080a0a611 (FindBoost: Improve
behavior when thread dependency is missing, 2017-09-15), so now we can
restore the original change.

Issue: #17252
2017-09-18 13:44:25 -04:00
Brad King
bc2009b724 Merge topic 'findmpi-overhaul'
bf1e606f FindMPI: Add support for FreeBSD and SLES
2f673da6 FindMPI: Support components for various languages
9a58e69c FindMPI: Modernization from ground up

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !893
2017-09-18 10:11:04 -04:00
Matthew Woehlke
e2cca9f8ee FindGTest: Avoid macro name collision
Use two _'s for private function/macro names rather than one. This
avoids a potential collision if a function/macro with no leading _ that
otherwise matches the name of a private function/macro also overrides a
built-in function or is defined twice.
2017-09-18 10:01:36 -04:00
Matthew Woehlke
3506179145 FindGTest: Fix shared linking on Windows
Add logic to FindGTest.cmake to attempt to determine if the libraries
are shared or static. If the libraries are shared, add an interface
compile definition that is needed in some cases for successful linking
on Windows.

See also https://github.com/google/googletest/issues/877.
2017-09-18 10:01:13 -04:00
Tin Huynh
485a6f0ef2 PGI-Fortran: Add -Mipa=fast,inline as IPO option.
Remove -Mipa=fast as a default flag and add it as an option instead.
-Mipa=fast is a flag that speeds up runtime but at the cost of significant
compile time increase and therefore, shouldn't be a default flag.
In addition, -Mipa isn't supported on PGI OpenPOWER or x86/llvm compilers.
2017-09-15 15:27:21 -07:00
Brad King
3080a0a611 FindBoost: Improve behavior when thread dependency is missing
The `find_dependency` macro is not meant for use in find modules and
`return()`s from the caller when the package is not found.  Avoid using
it in FindBoost.  Instead use plain `find_package` for the Threads
package and manually forward the `QUIET` argument.  When the Threads
package is missing then treat the Boost `thread` component as missing.

Issue: #17257
2017-09-15 10:42:14 -04:00
Christian Pfeiffer
bf1e606f60 FindMPI: Add support for FreeBSD and SLES
Fixes: #17117
2017-09-15 14:55:08 +02:00
Christian Pfeiffer
2f673da69f FindMPI: Support components for various languages 2017-09-15 14:55:08 +02:00
Christian Pfeiffer
9a58e69cc8 FindMPI: Modernization from ground up
This is a near-total rewrite of FindMPI implementing the following
features:

Environmental improvements:

- C++ settings can now be picked from C settings if no dedicated C++
  settings are found (some installs of IBM Platform MPI)
- Fortran settings can now be found on MPICH-1, MVAPICH-1, Microsoft
  MPI and MPICH-2 on Windows.

- Improved flag procession logic: Flags related to security enhancements
  of MPI itself, and unrelated to MPI usage (-fstack-protector-strong on
  e.g. RHEL 7 for MPICH and MVAPICH) will be filtered out properly now.
  -pthread is now being handled. -fno-strict-aliasing, which may be needed
  while compiling MVAPICH (e.g. RHEL 7's MVAPICH package) is also
  filtered.

Features added:

- MPI version can be determined for each language and is exposed as the
  package version
- MPI functionality is being tested to ensure the correctness of
  settings
- MPI-2 C++ bindings can be suppressed if desired by the project or
  user. For older MPIs, this often resolves issues and eliminated the
  infamous SEEK_SET trouble.
- MPI-2 C++ bindings are now being searched for and exposed by a
  variable if detected.
- Fortran support now does not make assumptions over the MPI present and
  works with ILP64 MPI implementations.
- Fortran now exposes which bindings (mpif.h, mpi/mpi_f08 modules) are
  available
- MPI detection can now work hybridly, which for example permits using the
  Fortran modules shipped with some compiler suites together with MPI
  (e.g. PGI on Windows shipping MSMPI modules)
- Ability to determine MPI library version (*requires* try_run, caution)
  upon request
- Ability to determine Fortran capabilities from MPI-3 for each of the
  bindings (subarrays, asynchronous attribute protecting entities) (also
  requires try_run)

Fine grained control over the search process:

- Possibility to selectively enable and disable steps like compiler
  wrapper search and guessing. Permits picking Microsoft MPI over Intel
  MPI if both are loaded (previously not possible without removing the
  IMPI compiler wrappers from the environment)
- Ability to pick MPICH2 over MSMPI (previously the first one located
  was taken)
- A user may now pass compiler flags to the compiler wrapper script,
  enabling much more flexibility. This permits for example linking the
  Intel MPI debug runtime, static linking, ILP64 with Fortran,
  linking tracing, ...
- A user may define a suffix for all MPI binaries that are being looked
  for (useful on Debian/Ubuntu where the alternative MPI installs are each
  appended with their name, e.g. mpicc.mpich and mpicc.lam)

Cache variable improvements

- Instead of the previous plural cache variables a list-of-variables
  approach is now in place. Permits correcting individual variables
  instead of having to wade through a list, also speeds up the search
  process and increases comfort by eliminating duplicate entries in
  LIBRARIES over languages
- MPIEXEC was corrected to MPIEXEC_EXECUTABLE in order to fix the
  grouping in the CMake GUI for the variable (previously ungrouped)
2017-09-15 14:55:08 +02:00
Brad King
3449c18c36 Merge topic 'findopenmp-components'
d25f30a6 FindOpenMP: Add support for components
23530151 FindOpenMP: Minor environmental improvements

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1266
2017-09-15 08:54:03 -04:00
Brad King
ead879df20 Merge topic 'fphsa-fix-version-exact'
5dc215e0 FPHSA: fix typo in comment
a8f70b32 FPHSA: replace left-over VERSION by _FOUND_VERSION.
549366cb FPHSA: Add (failing) unit test when checking EXACT on full version number

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1259
2017-09-15 08:42:16 -04:00
Matthew Woehlke
9fd9e448d0 FindGTest: Avoid using find_dependency in a find module
The `find_dependency` macro is not meant for use in find modules.
Instead use plain `find_package` for the Threads package.  Assume that
if it is not found then it isn't needed on the current platform.

Issue: #17257
2017-09-14 14:20:13 -04:00
Christian Pfeiffer
d25f30a6f8 FindOpenMP: Add support for components
Language specific components are added to FindOpenMP to ease consumption
of the module's results.
2017-09-14 18:11:28 +02:00
Christian Pfeiffer
23530151b2 FindOpenMP: Minor environmental improvements
A backup flag for Cray compilers was added and the OpenMP 5.0 Preview 1
document was added to the specification map.
2017-09-14 18:02:50 +02:00
Yves Frederix
a8f70b32fb FPHSA: replace left-over VERSION by _FOUND_VERSION.
This was accidentally left out of commit aec27c152e (FPHSA: use more
localized _FOUND_VERSION instead of VERSION, 2017-09-05).

Fixes: #17281
2017-09-14 08:21:38 -04:00
Brad King
9c7bf6974f Merge topic 'remove-nmcl'
c2cc91a4 Platforms: Remove Windows-NMcl

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1255
2017-09-14 07:38:29 -04:00
Craig Scott
dd67b65188 Merge topic 'improve-graphviz-doc'
7ed35aa3 Docs: Improve markup for graphviz related documentation

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1236
2017-09-13 20:38:40 -04:00
Christian Pfeiffer
c2cc91a4a5 Platforms: Remove Windows-NMcl
Since commit v2.8.10~148^2~2 (Modernize MSVC compiler information files,
2012-08-23), the Windows-NMcl platform has been broken.
It's most likely not needed anymore.
2017-09-13 14:52:45 +02:00
Brad King
420874bfaa Merge topic 'msvc-base-features'
39be8a9d MSVC: Avoid unnecessary C++ feature detection steps

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1253
2017-09-13 08:38:11 -04:00
Brad King
7315a46c83 Merge topic 'MsvcArm64'
bc7c94fe MSVC: Add support for ARM64 architecture

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1215
2017-09-13 08:37:02 -04:00
Minmin Gong
bc7c94fe13 MSVC: Add support for ARM64 architecture
Visual Studio 15.4 adds support for this architecture.

Fixes: #17213
2017-09-12 09:54:29 -04:00
Brad King
3ea87bce69 Merge topic 'vs-clang-llvm-support'
8a4755ca VS: Update support for LLVM-vs* toolsets from LLVM 5.0

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1231
2017-09-12 09:39:40 -04:00
Brad King
39be8a9d19 MSVC: Avoid unnecessary C++ feature detection steps
Since commit v3.9.0-rc1~17^2~4 (Compilers: Port to use default
cmake_record_lang_compile_features macros, 2017-05-10) we run full
per-language-standard feature detection for MSVC.  This is not necessary
because the base mode for MSVC has all features we define except for the
meta-features for C++14 and above.  Override the default C++ feature
detection macro for MSVC to run detection only once as before.

Fixes: #17274
2017-09-12 09:13:44 -04:00
Konstantin Ivlev
8a4755ca57 VS: Update support for LLVM-vs* toolsets from LLVM 5.0
Revert commit v3.7.0-rc1~25^2 (VS: Recognize VS/LLVM toolset names as
Clang, 2016-09-28).  Since at least LLVM 5.0 the VS integration of the
LLVM toolchain now mimics cl and accepts MSVC-style command-line
arguments (unlike Microsoft Clang/C2).

Fixes: #17193, #17235
2017-09-11 09:58:22 -04:00
Jano Svitok
7ed35aa331 Docs: Improve markup for graphviz related documentation
- add hyperlink to CMakeGraphVizOptions.cmake in cmake(1)
- improve markup in CMakeGraphVizOptions.cmake
2017-09-11 14:45:36 +02:00
Brad King
71676863bc Merge topic 'find-openssl'
d371b52f FindOpenSSL: Search 'ssld' and 'crypod' for debug variants

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1246
2017-09-11 08:00:03 -04:00
Brad King
1c9d3c0d32 Merge topic 'doc-find_dependency-return'
e48acfc5 CMakeFindDependencyMacro: Document return() behavior and caveats
07a05079 CMakeFindDependencyMacro: Convert documentation to bracket comment

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1245
2017-09-11 07:56:02 -04:00
Brad King
e8463e3570 Merge topic 'findmatlab-remove-CMAKE_CL_64'
f34ac1c6 FindMatlab: Don't use the deprecated variable CMAKE_CL_64

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1234
2017-09-11 07:47:31 -04:00
Robert Dailey
d371b52fdf FindOpenSSL: Search 'ssld' and 'crypod' for debug variants
Release variant search already considered `ssl` and `crypto`, but
similarly named libs with `d` postfix were not searched for debug
variant.
2017-09-08 13:57:55 -05:00