summaryrefslogtreecommitdiffstats
path: root/Modules
Commit message (Collapse)AuthorAgeFilesLines
* FindMPI: Modernization from ground upChristian Pfeiffer2017-09-157-480/+1237
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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)
* Merge topic 'vs-clang-llvm-support'Brad King2017-09-121-2/+2
|\ | | | | | | | | | | | | 8a4755ca VS: Update support for LLVM-vs* toolsets from LLVM 5.0 Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1231
| * VS: Update support for LLVM-vs* toolsets from LLVM 5.0Konstantin Ivlev2017-09-111-2/+2
| | | | | | | | | | | | | | | | | | 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
* | Merge topic 'find-openssl'Brad King2017-09-111-0/+2
|\ \ | | | | | | | | | | | | | | | | | | d371b52f FindOpenSSL: Search 'ssld' and 'crypod' for debug variants Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1246
| * | FindOpenSSL: Search 'ssld' and 'crypod' for debug variantsRobert Dailey2017-09-081-0/+2
| |/ | | | | | | | | | | Release variant search already considered `ssl` and `crypto`, but similarly named libs with `d` postfix were not searched for debug variant.
* | Merge topic 'doc-find_dependency-return'Brad King2017-09-111-17/+28
|\ \ | | | | | | | | | | | | | | | | | | | | | e48acfc5 CMakeFindDependencyMacro: Document return() behavior and caveats 07a05079 CMakeFindDependencyMacro: Convert documentation to bracket comment Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1245
| * | CMakeFindDependencyMacro: Document return() behavior and caveatsBrad King2017-09-081-7/+18
| | | | | | | | | | | | | | | | | | | | | | | | The `find_dependency` macro is designed to be called from Package Configuration Files, not from Find Modules. The return() behavior is particularly problematic for find modules. Document this more clearly. Issue: #17257
| * | CMakeFindDependencyMacro: Convert documentation to bracket commentBrad King2017-09-081-17/+17
| |/
* | Merge topic 'findmatlab-remove-CMAKE_CL_64'Brad King2017-09-111-1/+8
|\ \ | |/ |/| | | | | | | | | f34ac1c6 FindMatlab: Don't use the deprecated variable CMAKE_CL_64 Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1234
| * FindMatlab: Don't use the deprecated variable CMAKE_CL_64Job Noorman2017-09-081-1/+8
| | | | | | | | | | The variable is not defined on 64-bit MinGW, causing a 32-bit Matlab version to be found. Check using CMAKE_SIZEOF_VOID_P instead.
* | Merge topic 'fphsa-version-cleanup'Brad King2017-09-081-29/+30
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 91935d9e FPHSA: lower-case for cmake_parse_arguments + move config-mode related code aec27c15 FPHSA: use more localized _FOUND_VERSION instead of VERSION. 0019bfeb FPHSA: Add (failing) unit test in case a cache variable VERSION is present 81844334 FPHSA: add (failing) unit test for found version being equal to 0. Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: Rolf Eike Beer <eike@sf-mail.de> Merge-request: !1224
| * | FPHSA: lower-case for cmake_parse_arguments + move config-mode related codeYves Frederix2017-09-051-16/+16
| | |
| * | FPHSA: use more localized _FOUND_VERSION instead of VERSION.Yves Frederix2017-09-051-13/+14
| | | | | | | | | | | | This fixes the failing unit tests in which a cache variable VERSION is present or the found version is 0.
* | | Merge topic 'boost-1.65.1'Brad King2017-09-081-1/+1
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | dbba53a5 FindBoost: Add version 1.65.1 Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1241
| * | | FindBoost: Add version 1.65.1Roger Leigh2017-09-061-1/+1
| | | |
* | | | Merge topic 'findfreetype-importedtargets'Brad King2017-09-081-12/+59
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | b1d1c56c Help: Add notes for topic 'FindFreetype-importedtargets' 457c2021 FindFreetype: Add imported target, docs, and test Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1219
| * | | | FindFreetype: Add imported target, docs, and testBen Morgan2017-09-071-12/+59
| | | | |
* | | | | Autogen: Pass RCC build names and function names in info fileSebastian Holtermann2017-09-071-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - The output file name of the `rcc` command get computed once in the AUTOGEN initializer and is passed in the info file. - The function name for the `-name` option of `rcc` gets computed once in the AUTOGEN initializer and is passed along with the other `rcc` options in the info file.
* | | | | Autogen: Iterate source files only onceSebastian Holtermann2017-09-071-1/+2
|/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a large commit that serves multiple purposes - Iterate source files only once and store all extracted information in a cmQtAutogenDigest class that can be reused. This is brings speed improvements because several properties are only evaluated once. More that that it helps to avoid duplication of code with non trivial files property checks. - Fix the Visual Studio generator to use PRE_BUILD when possible. - Convert `for( ... )` loops to C++11 range base loops where possible (cmQtAutogen*.cxx only). - String concatenation optimizations.
* | | | Merge topic 'FindBoost-limit-configs'Brad King2017-09-071-16/+32
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | e6159e18 FindBoost: Add option to prevent finding DEBUG/RELEASE Boost-libs Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1216
| * | | | FindBoost: Add option to prevent finding DEBUG/RELEASE Boost-libsDeniz Bahadir2017-09-061-16/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With the use of options `Boost_USE_DEBUG_LIBS` and `Boost_USE_RELEASE_LIBS` it is now possible to skip searching for either DEBUG or RELEASE Boost libraries. This is useful if Boost is installed on the system in multiple directories but only one of them should be used which only contains e.g. the RELEASE libraries. Without this change the DEBUG libraries might be found in the other directory which might not be desired at all.
* | | | | Merge topic 'findexpat-importedtargets'Brad King2017-09-071-7/+28
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 3a4f82e9 Help: Add notes for topic 'FindEXPAT-importedtargets' bfe51369 FindEXPAT: Add unit test of target and variables 78f166f8 FindEXPAT: Add imported target and documentation Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1207
| * | | | | FindEXPAT: Add imported target and documentationBen Morgan2017-09-011-7/+28
| | | | | |
* | | | | | Merge topic 'irsl-vs15-future'Brad King2017-09-071-19/+16
|\ \ \ \ \ \ | |_|_|/ / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 6dd0a593 Merge branch 'backport-irsl-vs15-future' into irsl-vs15-future 1dd2c08b InstallRequiredSystemLibraries: Add support for future VS 2017 toolchains Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: Christian Pfeiffer <cpfeiffer@live.de> Merge-request: !1240
| * | | | | Merge branch 'backport-irsl-vs15-future' into irsl-vs15-futureBrad King2017-09-061-19/+16
| |\ \ \ \ \
| | * | | | | InstallRequiredSystemLibraries: Add support for future VS 2017 toolchainsBrad King2017-09-061-19/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Assume that all cl 19.xx versions will use the same runtime DLL pattern. Suggested-by: Tomasz Słodkowicz <slodki@users.noreply.github.com>
| | * | | | | Merge branch 'InstallRequiredSystemLibraries-vs15.3' into release-3.9Brad King2017-08-221-11/+31
| | |\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | Merge-request: !1168
| | * \ \ \ \ \ Merge branch 'revert-macos-hidpi-qt-dialog' into release-3.9Brad King2017-08-221-4/+0
| | |\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | Merge-request: !1167
| | * \ \ \ \ \ \ Merge branch 'debian_clang_binutils' into release-3.9Brad King2017-08-151-0/+8
| | |\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Merge-request: !1127
| | * \ \ \ \ \ \ \ Merge branch 'cuda-device-link-ccbin' into release-3.9Brad King2017-08-151-2/+2
| | |\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Merge-request: !1138
* | | \ \ \ \ \ \ \ \ Merge topic 'msvc2015-cxx17'Brad King2017-09-061-1/+4
|\ \ \ \ \ \ \ \ \ \ \ | |/ / / / / / / / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 227e3535 MSVC: Extend C++ language standard support to Visual Studio 2015 Update 3 Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1227
| * | | | | | | | | | MSVC: Extend C++ language standard support to Visual Studio 2015 Update 3Nils Gladitz2017-09-011-1/+4
| | |_|_|_|_|_|_|_|/ | |/| | | | | | | |
* | | | | | | | | | Merge topic 'FindBoost-fix-policy-scope'Brad King2017-09-061-9/+5
|\ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ade45fa3 FindBoost: Revert "Simplify search in lists." Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1238
| * | | | | | | | | | FindBoost: Revert "Simplify search in lists."Brad King2017-09-051-9/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Revert commit v3.9.0-rc1~41^2 (FindBoost: Simplify search in lists, 2017-04-23). It regressed the module by exposing issue #17257, but the fix for that issue is not suitable for inclusion in a patch release. It is simplest to revert the commit until the larger problem can be addressed. Fixes: #17252
* | | | | | | | | | | Merge topic 'findopenmp-found'Brad King2017-09-061-0/+2
|\ \ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 91fbda82 FindOpenMP: Restore OpenMP_FOUND result variable Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1233
| * | | | | | | | | | | FindOpenMP: Restore OpenMP_FOUND result variableChristian Pfeiffer2017-09-051-0/+2
| |/ / / / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The overhaul in commit v3.9.0-rc1~207^2~1 (FindOpenMP: Complete overhaul, 2017-04-24) documented this variable but accidentally left it unset. Fixes: #17251
* | | | | | | | | | | Merge topic 'android-ndk-r16'Brad King2017-09-061-1/+1
|\ \ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 5a1a1177 Android: Update for NDK r16 Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: Daniel Seither <d@fdseither.de> Merge-request: !1237
| * | | | | | | | | | | Android: Update for NDK r16Brad King2017-09-051-1/+1
| |/ / / / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since NDK commit 90ec78ffd96b87cd75d82575587ead14d6494df1 (Remove Clang toolchain path from setup.mk, 2017-05-31) the `setup.mk` files for Clang no longer hold the path to the `toolchains/llvm` directory. It has been the same since NDK r11, so use that as the default. Fixes: #17253
* | | | | | | | | | | Merge topic 'csharp_fix_initial_flags'Brad King2017-09-061-1/+1
|\ \ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | a3388900 VS: Initialize CSharp flags consistently Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1232
| * | | | | | | | | | | VS: Initialize CSharp flags consistentlyMichael Stürmer2017-09-051-1/+1
| |/ / / / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use the same environment variable for the initial flags that we use for the compiler id. Fixes: #17250
* | | | | | | | | | | Merge topic 'ExternalProject-command'Brad King2017-09-051-0/+8
|\ \ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 15617484 ExternalProject: Prevent COMMAND from being treated as a true keyword Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1178
| * | | | | | | | | | | ExternalProject: Prevent COMMAND from being treated as a true keywordCraig Scott2017-09-021-0/+8
| | |_|_|_|_|_|_|/ / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The known keywords for each function are obtained by scraping the documentation for lines matching a particular regular expression. In commit 8842a027 (ExternalProject: Improve documentation, 2017-07-09), the docs were overhauled and the COMMAND docs subsequently matched the regular expression when they shouldn't have. This made COMMAND appear as a true keyword, which thwarted the special handling logic elsewhere for the intended use of COMMAND arguments. This commit contains a workaround for issue #17229 to force a dependency of the patch step on the update step to ensure a predictable step order. Fixes: #17198
* | | | | | | | | | | FindPatch: Add module to find 'patch' command-line toolJean-Christophe Fillion-Robin2017-09-011-0/+68
| |_|/ / / / / / / / |/| | | | | | | | |
* | | | | | | | | | Merge topic 'flang'Brad King2017-09-015-2/+25
|\ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | d8e03e9b FindOpenMP: Add Flang flag. 2f3a07a9 Flang: Add support for flang Fortran compiler Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1141
| * | | | | | | | | | FindOpenMP: Add Flang flag.Tin Huynh2017-08-311-0/+1
| | | | | | | | | | |
| * | | | | | | | | | Flang: Add support for flang Fortran compilerTin Huynh2017-08-314-2/+24
| | |_|_|_|_|_|_|_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | flang is a Fortran compiler built on top of clang [1]. Because flang shares a lot of commonalities with clang, the flang module piggybacks off the clang module and overrides certain options. Add flang to Fortran compiler auto find list. Update flang preprocessor macros to differentiate from PGI. Add Flang-FindBinUtils. [1] https://github.com/flang-compiler/flang
* | | | | | | | | | Merge topic 'FindThreads-cross-compile-no-try_run'Brad King2017-09-012-44/+11
|\ \ \ \ \ \ \ \ \ \ | |/ / / / / / / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | d4e551a9 FindThreads: Drop try_run to improve cross-compiling support Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1109
| * | | | | | | | | FindThreads: Drop try_run to improve cross-compiling supportSteffen Dettmer2017-08-302-44/+11
| |/ / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use `try_compile` instead of `try_run`. It is not clear why `try_run` was ever needed, and it does not work during cross-compiling. Update the check's source file to remove code associated with actually running things. Also remove the ancient `__CLASSIC_C__` code path and use a simple `int main(void)` as in `Modules/CheckIncludeFile.c.in`. Fixes: #16920
* | | | | | | | | Merge topic 'irsl-intel'Brad King2017-08-311-1/+139
|\ \ \ \ \ \ \ \ \ | |_|_|_|_|_|_|_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | fd4406f3 IRSL: Add Intel compiler support 8444252f IRSL: Install VC++ OpenMP libraries only for MSVC Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: Pelle <pbregener@gmail.com> Merge-request: !1121
| * | | | | | | | IRSL: Add Intel compiler supportChristian Pfeiffer2017-08-301-2/+133
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes: #16891 Fixes: #9903