Commit Graph

41367 Commits

Author SHA1 Message Date
Jakub Benda b4edf7b5d2 FindBLAS: Support 32bit Intel MKL 10.3+
The module FindBLAS now correctly finds Intel MKL distributions that do
not have the (long deprecated) library "libguide", but use "libiomp5"
instead.
2018-11-18 17:00:37 +00:00
Jakub Benda fc149a72f7 FindBLAS: Support combination of gfortran and Intel MKL
The module FindBLAS now correctly chooses MKL BLAS libraries to search,
based on the compiler ID. The MKL libraries needed for BLAS functionality
are the following:

  libmkl_{gf|intel}_{lp64|ilp64}.{a|so}
  libmkl_{gnu|intel}_thread.{a|so}       (or libmkl_sequential.{a|so})
  libmkl_core.{a|so}
  libm
  libdl
  lib{gomp|iomp5}.{a|so}                 (only with libmkl_*_thread.*)

To achieve the goal, the following internal variables are defined and used:

  BLAS_mkl_INTFACE   = "gf" or "intel"   (based on compiler ID)
  BLAS_mkl_THREADING = "gnu" or "intel"  (based on compiler ID)
  BLAS_mkl_OMP       = "gomp" or "iomp5" (based on compiler ID)
  BLAS_mkl_LM        = "-lm"             (not set on Windows)
  BLAS_mkl_DL        = "-ldl"            (not set on Windows)

The default values for the first three of them are "intel" and "iomp5",
unless a Fortran compiler is loaded with CMAKE_Fortran_COMPILER_ID
equal to "GNU"; in such case the "gf", "gnu" and "gomp" values are used.

In non-Windows systems, the thread library as well as libm and libdl are
now added to the linker line to allow static linking of libgomp.
2018-11-18 16:59:03 +00:00
Jakub Benda f0d52f55f1 FindBLAS: Consolidate duplicated code related to MKL on Windows
The code that decides which library suffix to use for MKL libraries
in Windows was in two places. This commit consolidates it in one place.
2018-11-18 14:52:13 +00:00
Kitware Robot 6f5cdc0c83 CMake Nightly Date Stamp 2018-11-18 00:01:11 -05:00
Kitware Robot be9ad8279a CMake Nightly Date Stamp 2018-11-17 00:01:03 -05:00
Kitware Robot 7aa41095fd CMake Nightly Date Stamp 2018-11-16 00:01:04 -05:00
Brad King b324743229 Merge topic 'cpack'
a26ac919ef Help: Explain interaction of cpack(1) and CPack.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2617
2018-11-15 13:49:58 -05:00
Joachim Wuttke (l) a26ac919ef Help: Explain interaction of cpack(1) and CPack.
In particular, make clear that package/installer generators
are not the makefile generators of the cmake command.

Also insert sections in CPack doc, and capitalize section titles.
2018-11-15 16:50:52 +01:00
Brad King 1763f04281 Merge topic 'test-WriteBasicConfigVersionFile'
f3a381115f Tests: Simplify RunCMake.WriteBasicConfigVersionFile
0dbcc1afbf Tests: Factor out RunCMake.WriteBasicConfigVersionFile test

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2612
2018-11-15 10:41:07 -05:00
Brad King 20aab1a4e7 Merge topic 'configure_file-canonical-deps'
6199637e95 configure_file: canonicalize input and output path in dependencies

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2586
2018-11-15 10:40:33 -05:00
Brad King 59fc717c25 Merge topic 'deprecate-findqt'
0f5c1b404b find_package(): Add policy to remove the FindQt module

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: noo mook <noomook2519@gmail.com>
Merge-request: !2554
2018-11-15 10:39:55 -05:00
Brad King 64df9ef33a Merge topic 'autogen_info_write'
e0c26406aa Autogen: Sort tests
83bbfb1d53 Autogen: Add a definitions test to the MocOnly test
01d5e5c460 Autogen: Add and use cmQtAutoGenInitializer::InfoWriter class

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2610
2018-11-15 08:38:12 -05:00
Brad King f21bad80a2 Merge topic 'test-XcodeProject-timeout'
ca355d92d8 Tests: Add option for custom RunCMake.XcodeProject timeout

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2614
2018-11-15 08:37:32 -05:00
Brad King b3d1d6d895 Merge topic 'doc-developer-to-source-guide'
a82282a08c Help/dev: Factor out a CMake Documentation Guide for developing the docs
bfbc5241e9 Help: Fix policy markup example in cmake-developer(7)
3e5a047f1a Help: Drop compile features section from cmake-developer(7) manual
06cc050c1f Help/dev: Drop 'size_t' preference from source code guide

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2615
2018-11-15 08:36:52 -05:00
Brad King bd2c17d614 Merge topic 'macro3'
22cca9b810 Help: describe differences between macro and function.
b90ae70a3b Help: in macro vs function example, use lowercase names.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2616
2018-11-15 08:36:02 -05:00
Kitware Robot 44a5400d10 CMake Nightly Date Stamp 2018-11-15 00:01:04 -05:00
Joachim Wuttke (l) 22cca9b810 Help: describe differences between macro and function. 2018-11-14 21:56:23 +01:00
Brad King a786062db2 Merge topic 'WIN32'
254a849864 Help: Spell out MFC
b173c641c4 Help: Add links to variables

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2613
2018-11-14 15:18:15 -05:00
Kyle Edwards 0f5c1b404b find_package(): Add policy to remove the FindQt module
Removing FindQt.cmake gives Qt upstream a path forward to export its
own QtConfig.cmake files which can be found by find_package()
without having to explicitly specify CONFIG. Projects that still
want to use Qt3/4 can call find_package(Qt[34]), include(FindQt),
or add FindQt.cmake to their CMAKE_MODULE_PATH.
2018-11-14 15:05:06 -05:00
Brad King a82282a08c Help/dev: Factor out a CMake Documentation Guide for developing the docs
Remove this content from the `cmake-developer(7)` manual because it
is relevant only to developers working on CMake itself.  Move it to
a guide in the developer documentation.
2018-11-14 14:38:13 -05:00
Joachim Wuttke (l) b90ae70a3b Help: in macro vs function example, use lowercase names.
Follow our own advise not to change cases.

Omit the leading underscore.
2018-11-14 20:33:12 +01:00
Brad King bfbc5241e9 Help: Fix policy markup example in cmake-developer(7) 2018-11-14 14:29:13 -05:00
Brad King 3e5a047f1a Help: Drop compile features section from cmake-developer(7) manual
We no longer add granular compile features.  Only language standard
meta features like `cxx_std_##`` need to be added, and these can
be done by following existing patterns.
2018-11-14 14:29:13 -05:00
Brad King 06cc050c1f Help/dev: Drop 'size_t' preference from source code guide
We now use `std::size_t` in several places and it is fully supported by
C++11 compilers.  Drop the recommendation to prefer plain `size_t`.
2018-11-14 14:28:57 -05:00
Sebastian Holtermann e0c26406aa Autogen: Sort tests 2018-11-14 19:21:03 +01:00
Sebastian Holtermann 83bbfb1d53 Autogen: Add a definitions test to the MocOnly test 2018-11-14 19:21:03 +01:00
Sebastian Holtermann 01d5e5c460 Autogen: Add and use cmQtAutoGenInitializer::InfoWriter class
The new ``cmQtAutoGenInitializer::InfoWriter`` class provides an
interface to write strings/vectors/sets/maps in CMake format
into a file.  Its use replaces various `cmJoin` calls that
failed to address escaping of semicolons in list elements.

Closes #18554
2018-11-14 19:21:03 +01:00
Joachim Wuttke (o) 254a849864 Help: Spell out MFC
And shorten text that was hard to understand and redundant.
2018-11-14 17:50:45 +01:00
Joachim Wuttke (o) b173c641c4 Help: Add links to variables 2018-11-14 17:50:45 +01:00
Brad King ca355d92d8 Tests: Add option for custom RunCMake.XcodeProject timeout
The test has many cases and can take a long time on busy machines.
2018-11-14 11:50:36 -05:00
Brad King f3a381115f Tests: Simplify RunCMake.WriteBasicConfigVersionFile 2018-11-14 10:46:39 -05:00
Brad King 0dbcc1afbf Tests: Factor out RunCMake.WriteBasicConfigVersionFile test
The `WriteBasicConfigVersionFile` section of the `FindPackageTest`
is independent of the rest.
2018-11-14 10:46:08 -05:00
Brad King 117272412e Merge topic 'GNUInstallDirs-FreeBSD-info'
f835f189ae GNUInstallDirs: Update FreeBSD "info" destination to share/info
4c0d97dd98 GNUInstallDirs: Split "info" and "man" default logic
1b8f0ca515 Tests: Split GNUInstallDirs expectations for FreeBSD

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Rolf Eike Beer <eike@sf-mail.de>
Merge-request: !2588
2018-11-14 08:59:19 -05:00
Kitware Robot aa4ab1f904 CMake Nightly Date Stamp 2018-11-14 00:01:04 -05:00
Frank Benkstein 6199637e95 configure_file: canonicalize input and output path in dependencies
Represent the input file path internally in canonical form.  Otherwise
multiple `configure_file` calls that share the same input file but specify
it relative to different directories (e.g. via `../`) result in multiple
copies of the dependency on the rule to re-run CMake.  This causes the
Ninja generator to emit duplicate phony build statements for these
dependencies, which generates an error with `-w dupbuild=err`, which
will be default in Ninja 1.9.

Also canonicalize the output path for consistency.

Add a test case.

Fixes: #18584
2018-11-13 15:01:17 -05:00
Brad King 64bc4bda74 Merge topic 'deprecate-modules2'
df780bcc01 Help: Move deprecated modules to appropriate section.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2603
2018-11-13 14:25:58 -05:00
Brad King dc551c2b0d Merge topic 'macro+function-invocation'
abb5945bd0 Help: Document that function invocation is case-insensitive
357cdee3a1 Help: Document that macro invocation is case-insensitive

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2607
2018-11-13 14:25:10 -05:00
Joachim Wuttke (l) abb5945bd0 Help: Document that function invocation is case-insensitive 2018-11-13 13:47:26 -05:00
Joachim Wuttke (l) 357cdee3a1 Help: Document that macro invocation is case-insensitive 2018-11-13 13:47:24 -05:00
Brad King 3603b3964b Merge topic 'macro'
dcf11cbcdc Help: Mention endmacro argument as legacy only.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2606
2018-11-13 13:40:55 -05:00
Tobias C. Berner f835f189ae GNUInstallDirs: Update FreeBSD "info" destination to share/info
FreeBSD ports commit r484628 (Install texinfo files (GNU info) into
${PREFIX}/share/info, 2018-11-10) changed the "info" destination
from "info" to "share/info".  The commit included a patch to their
distribution of CMake to fix the `GNUInstallDirs` module too.
Apply a similar logic change to our upstream version of the module.

We already made a similar change for GNU/kFreeBSD in commit
v3.13.0-rc2~8^2 (GNUInstallDirs: Don't use BSD info and man paths on
GNU/kFreeBSD, 2018-10-21).

Fixes: #18585
2018-11-13 13:35:50 -05:00
Brad King 4c0d97dd98 GNUInstallDirs: Split "info" and "man" default logic
The conditions may soon differ.
2018-11-13 13:35:35 -05:00
Brad King 1b8f0ca515 Tests: Split GNUInstallDirs expectations for FreeBSD 2018-11-13 13:35:19 -05:00
Brad King 9fee704227 Merge topic 'SelectLibraryConfigurations'
fe15a1029c Help: Revise documentation of SelectLibraryConfigurations

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2608
2018-11-13 10:46:54 -05:00
Brad King fb93f7f230 Merge topic 'env2'
26a70449cc Help: Describe environment variables as such.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2609
2018-11-13 10:46:07 -05:00
Brad King 06ef9edd51 Merge topic 'DeployQt4'
3a7f02197b Help: Downcase function names in DeployQt4 doc.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2600
2018-11-13 10:41:20 -05:00
Brad King bd04db899f Merge topic 'WriteCompilerDetectionHeader'
0470ee96b1 Help: Remove duplication of function name.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2605
2018-11-13 10:40:38 -05:00
Brad King 4fd97bbc2c Merge branch 'release-3.13' 2018-11-13 10:39:12 -05:00
Brad King 9bb203ed0f Merge topic 'FindBoost-1.69'
5045cd82d0 FindBoost: Additional fixes for 1.69

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2601
2018-11-13 10:38:54 -05:00
Brad King ad6ef6c1d5 Merge branch 'FindBoost-1.69' into release-3.13
Merge-request: !2601
2018-11-13 10:37:23 -05:00