Commit Graph

46389 Commits

Author SHA1 Message Date
Kyle Edwards 310b58e961 Ninja Multi-Config: Rename variable to be more consistent
Also make some tweaks to the documentation.
2020-01-16 10:34:43 -05:00
Kitware Robot 1e728706de CMake Nightly Date Stamp 2020-01-16 00:01:15 -05:00
Brad King 9f1ce93d92 Merge topic 'add_cuda_toolkit_tests'
6e474364d1 CUDAToolkit: No targets now depend on the CUDA runtime
907bb7df57 CUDAToolkit: Gracefully handle missing SDK components
e500eb80cd CUDAToolkit: add_cuda_link_dependency correctly sets dependencies

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4183
2020-01-15 13:40:07 -05:00
Brad King 6c23cbca37 Merge branch 'release-3.16' 2020-01-15 13:37:33 -05:00
Brad King 6e6f5afd03 Merge topic 'unity-lang-filename'
274a6f3699 Unity Build: include language in generated source file name

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4223
2020-01-15 13:37:33 -05:00
Brad King 3b3f2474da Merge topic 'unity-lang-filename' into release-3.16
274a6f3699 Unity Build: include language in generated source file name

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4223
2020-01-15 13:37:33 -05:00
Brad King c2d1e78603 Merge branch 'release-3.16' 2020-01-15 13:36:36 -05:00
Brad King f0986f62a8 Merge topic 'python39' into release-3.16
f6474214b3 FindPython: Add support for version 3.9

Acked-by: Kitware Robot <kwrobot@kitware.com>
Reviewed-by: Marc Chevrier <marc.chevrier@gmail.com>
Acked-by: Björn Esser <besser82@fedoraproject.org>
Merge-request: !4225
2020-01-15 13:36:35 -05:00
Brad King 513c7bf515 Merge topic 'python39'
f6474214b3 FindPython: Add support for version 3.9

Acked-by: Kitware Robot <kwrobot@kitware.com>
Reviewed-by: Marc Chevrier <marc.chevrier@gmail.com>
Acked-by: Björn Esser <besser82@fedoraproject.org>
Merge-request: !4225
2020-01-15 13:36:35 -05:00
Brad King 2272d256fb Merge topic 'ctest-timeout-on-pipe'
d1976cd1f2 CTest: Fix timeout when grandchild keeps pipes open
2f5eb1800b Tests: Add RunCMake.CTestTimeout test

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4217
2020-01-15 13:35:51 -05:00
Brad King 204c0a65af Merge topic 'cmake-self-rpath'
d92bf9e84f Enable RPATH for CMake's own binaries by default

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4222
2020-01-15 13:34:35 -05:00
Brad King 601af8f2b4 Merge topic 'avoid-getcwd'
22f38c0d6b cmake: avoid getcwd in `CollapseFullPath`

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4218
2020-01-15 13:32:52 -05:00
Brad King f11b8342a0 Merge topic 'modernize-memory-management'
328f586be7 cmAlgorithms.h: remove obsolete helpers
f466cea3c9 cmMakefile: modernize memory management

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4215
2020-01-15 13:32:00 -05:00
Kitware Robot e125d50ddf CMake Nightly Date Stamp 2020-01-15 00:01:17 -05:00
Kyle Edwards 93526fd913 Merge topic 'ninja_multi_config_support_cuda'
c7ac13e8ed CUDA: Mult-Config Ninja generator now supports CUDA

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4187
2020-01-14 15:11:35 -05:00
Miro Hrončok f6474214b3 FindPython: Add support for version 3.9
Development versions of Python 3.9.0 are already out there.

See PEP 596 -- Python 3.9 Release Schedule:
https://www.python.org/dev/peps/pep-0596/
2020-01-14 15:02:19 -05:00
Robert Maynard 6e474364d1 CUDAToolkit: No targets now depend on the CUDA runtime
It is not a requirement to have shared|static consistent across your
CUDA libraries (e.g curand, nppc ) and your CUDA runtime library.
It is entirely allowable to use a static nppc and a shared runtime.
2020-01-14 13:50:37 -05:00
Cristian Adam 274a6f3699 Unity Build: include language in generated source file name
Fixes: #20206
2020-01-14 18:48:08 +01:00
Brad King d92bf9e84f Enable RPATH for CMake's own binaries by default
Reconcile the changes made by:

* commit ae62f66033 (ENH: CMake does not need RPATHs at all for its own executables, 2006-03-01, v2.4.0~380)
* commit a056cffc5b (COMP: enable RPATH if any of the CMAKE_USE_SYSTEM_XXX variables is enabled, 2007-08-28, v2.6.0~1183)
* commit c0108d1e07 (COMP: use RPATH is building QtDialog and the Qt libs are not in /lib or /usr/lib, 2007-11-05, v2.6.0~915)

The overall goal of those changes was to get the RPATH set for external
libraries when needed and also to avoid re-linking or other RPATH
editing on installation.  We can use a simpler approach to satisfy both
goals: always use RPATH entries for libraries found externally.  If
there are no such libraries we will get no RPATH.  If there are such
libraries that are not in standard paths we will get a RPATH that points
at them.  This will work for running either from the build tree or the
install tree, so we can use the same for both to avoid editing on
installation.

Fixes: #20185
2020-01-14 12:03:06 -05:00
Brad King d1976cd1f2 CTest: Fix timeout when grandchild keeps pipes open
When a test's process creates its own child and exits, the grandchild
may keep pipes open.  Fix CTest logic to correctly timeout if the
grandchild does not exit and close the pipes before the timeout expires.
This was broken by commit b5e21d7d2e (CTest: Re-implement test process
handling using libuv, 2017-12-10, v3.11.0-rc1~117^2) which added an
unnecessary condition to the timeout handling.

Fixes: #20116
2020-01-14 10:29:05 -05:00
Brad King 2f5eb1800b Tests: Add RunCMake.CTestTimeout test
This test will consolidate CTest timeout-related tests.
2020-01-14 10:28:51 -05:00
Brad King 710371ca2f Merge topic 'tutorial'
a7d25358a0 Tutorial: Add the PRIVATE keyword to target_link_libraries command
cf2afb1065 Tutorial: Remove 'Consumer' example
77b515f3eb Tutorial: Improve "MultiPackage" example
3a510a47b0 Tutorial: Add links to relevant CMake documentation

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4113
2020-01-14 09:06:40 -05:00
Brad King a2a91eb141 Merge topic 'cross-ninja-improve-error-handling'
ca9100c5ce Ninja Multi-Config: Improve error handling when not doing cross-config build

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4214
2020-01-14 09:03:09 -05:00
Brad King e74049b388 Merge topic 'vs-Fortran-link-flags' into release-3.16
a3c827b2ea VS: Add Fortran link flag table entries for /OPT:*

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4210
2020-01-14 09:01:21 -05:00
Brad King 03acdadb8a Merge branch 'release-3.16' 2020-01-14 09:01:21 -05:00
Brad King c42ade942d Merge topic 'vs-Fortran-link-flags'
a3c827b2ea VS: Add Fortran link flag table entries for /OPT:*

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4210
2020-01-14 09:01:21 -05:00
Brad King 4aa8397a4f Merge topic 'fix-global-autogen-target-help'
3104dc059c Help: Fix variable name on CMAKE_GLOBAL_AUTOGEN_TARGET page

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4212
2020-01-14 09:00:21 -05:00
Brad King 47dac86c08 Merge topic 'xcode-default-warnings'
b7b8331d68 Xcode: Drop hard-coded default warning flags like -Wmost

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4213
2020-01-14 08:59:37 -05:00
Brad King f1af6d5baf Merge topic 'doc-user-interaction'
bd681fee7a Help: Add guides for user interaction
6185265800 Utilities/Sphinx: Index guide-level documents for cross-referencing
b1b7d01172 Utilities/Sphinx: Index document types only by top level directory

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Mateusz Łoskot <mateusz@loskot.net>
Acked-by: Daan De Meyer <daan.j.demeyer@gmail.com>
Merge-request: !4097
2020-01-14 08:58:38 -05:00
Brad King 09c43466e5 Merge branch 'release-3.16' 2020-01-14 08:57:19 -05:00
Brad King ba0ae1261a Merge topic 'FindMatlab-r2019'
edb6fe3b6a FindMatlab: add R2019a and R2019b MATLAB_VERSIONS_MAPPING

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4207
2020-01-14 08:57:19 -05:00
Brad King e6c5bed2aa Merge topic 'FindMatlab-r2019' into release-3.16
edb6fe3b6a FindMatlab: add R2019a and R2019b MATLAB_VERSIONS_MAPPING

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4207
2020-01-14 08:57:18 -05:00
Brad King 18b9eafed8 Merge branch 'release-3.16' 2020-01-14 08:55:58 -05:00
Brad King 11b6a315af Merge topic 'FindMatlab-only-CXX'
b704d58f41 FindMatlab: in matlab_add_mex use the correct version file

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Patrik Huber <patrikhuber@gmail.com>
Merge-request: !4206
2020-01-14 08:55:58 -05:00
Brad King 789bbcddc0 Merge topic 'FindMatlab-only-CXX' into release-3.16
b704d58f41 FindMatlab: in matlab_add_mex use the correct version file

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Patrik Huber <patrikhuber@gmail.com>
Merge-request: !4206
2020-01-14 08:55:57 -05:00
Brad King 3617e26d8c Merge topic 'vs_populate_CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES'
ef4a66d694 CUDA: MSVC generators fill CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4179
2020-01-14 08:54:57 -05:00
Tim Blechmann 22f38c0d6b cmake: avoid getcwd in CollapseFullPath
`CollapseFullPath` calls getcwd, which is a rather expensive system
call. we can replace it with `GetHomeOutputDirectory()` to save us from
the calling overhead
2020-01-14 18:20:39 +08:00
Marc Chevrier 328f586be7 cmAlgorithms.h: remove obsolete helpers 2020-01-14 11:03:09 +01:00
Marc Chevrier f466cea3c9 cmMakefile: modernize memory management 2020-01-14 11:03:07 +01:00
Kitware Robot 2d5e9f3d8c CMake Nightly Date Stamp 2020-01-14 00:01:16 -05:00
Robert Maynard c7ac13e8ed CUDA: Mult-Config Ninja generator now supports CUDA 2020-01-13 12:50:37 -05:00
Kyle Edwards ca9100c5ce Ninja Multi-Config: Improve error handling when not doing cross-config build 2020-01-13 11:58:07 -05:00
Brad King b7b8331d68 Xcode: Drop hard-coded default warning flags like -Wmost
The `-Wmost` flag was added by commit 97a51d2172 (ENH: add more xcode
stuff, 2005-01-27, v2.4.0~2396), along with a couple others, as part of
very early work on the Xcode generator.  I suspect that the flags were
part of Xcode's project creation wizard.  However, they are not
appropriate for CMake-based projects because we already have our own
mechanisms for specifying flags desired by the project or user.
Simply drop the flags.

Fixes: #13516
2020-01-13 11:45:23 -05:00
Joerg Bornemann 3104dc059c Help: Fix variable name on CMAKE_GLOBAL_AUTOGEN_TARGET page
CMAKE_GLOBAL_AUTORCC_TARGET was mentioned accidentally.
2020-01-13 17:41:06 +01:00
Pavel Liavonau a3c827b2ea VS: Add Fortran link flag table entries for /OPT:*
Fixes: #20190
2020-01-13 11:14:00 -05:00
Stephen Kelly bd681fee7a Help: Add guides for user interaction
Add some prose to the documentation index page to guide readers to the
major manuals and guides.

Add a new "User Interaction Guide" to help the class of new user
who wishes to build a project with CMake for the first time, such as
after cloning a repo from a git repository.

Add a new "Using Dependencies Guide" to help the class of new
user who wishes to consume a SDK provided by a third party and needs a
starting point.  This is a different type of user to the user who wishes
to create their own project from scratch (addressed by the
`cmake-buildsystem(7)` manual) as each will encounter needs for
information discovery in a different order.
2020-01-13 11:04:55 -05:00
Silvio Traversaro b704d58f41 FindMatlab: in matlab_add_mex use the correct version file
Before this modification, the c_mexapi_version.c file was added to
all mex libraries. However, if the C language was not enabled
in the CMake project configuration, the c_mexapi_version.c file
was ignored, creating linking errors in Windows and macOS.
This commit ensures that in the case only the CXX languages is enabled,
the correct version is passed.

Fixes: #19382
2020-01-13 10:52:57 -05:00
Silvio Traversaro edb6fe3b6a FindMatlab: add R2019a and R2019b MATLAB_VERSIONS_MAPPING
Reference for versions: https://www.mathworks.com/products/compiler/matlab-runtime.html

Fixes: #20087
2020-01-13 10:45:54 -05:00
Brad King 4bac5b628e Merge topic 'target_compile_options-BEFORE-keyword'
2678e31053 target_compile_options: ensure BEFORE keyword is handled in all scopes

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4203
2020-01-13 10:38:00 -05:00
Brad King 041e58d195 Merge topic 'ninja-cross-build-disable'
e8032e202e Ninja Multi-Config: Make cross-config building opt-in

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4205
2020-01-13 10:34:18 -05:00