Commit Graph

6330 Commits

Author SHA1 Message Date
Bill Hoffman 044dcf9f8d execute_process: Add option to echo command lines
Add COMMAND_ECHO option to the execute_process command. This will allow
execute_process to show the command it will run. Also add a cmake variable
CMAKE_EXECUTE_PROCESS_COMMAND_ECHO. Both the option and the variable can
be set to one of the following: STDERR|STDOUT|NONE. The command will be
printed to stderr or stdout or not at all.

Fixes: #18933
2019-04-19 13:32:08 -04:00
Brad King aa0692de67 Merge topic 'argument-parser'
b783e62533 cmExecuteProcessCommand: Port to cmArgumentParser
9bddb03f31 cmParseArgumentsCommand: Port to cmArgumentParser
45edf1ad66 Retire cmCommandArgumentsHelper
f5acecaa6f cmExportCommand: Port to cmArgumentParser
e6b6bb0618 cmInstallCommand: Port to cmArgumentParser
4336a29edd cmFileCommand: Port to cmArgumentParser
4359fe133b Introduce cmArgumentParser

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Leonid Pospelov <pospelovlm@yandex.ru>
Merge-request: !3137
2019-04-09 08:27:31 -04:00
Brad King 0e953e138b Merge topic 'implicit-includes-relative'
442f4c4902 Merge branch 'backport-implicit-includes-relative'
ef41d49812 Fix implicit include directory extraction for adaptive relative paths
6bc6fc2a7f Tests: Teach RunCMake.ParseImplicitIncludeInfo to match output by regex
82948805ec Tests: Clarify hand-written cases in RunCMake.ParseImplicitIncludeInfo

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3204
2019-04-09 07:59:52 -04:00
Sebastian Lipponer 698f51abac Genex: Add $<FILTER:list,INCLUDE|EXCLUDE,regex> 2019-04-08 19:57:22 +02: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
Brad King 6bc6fc2a7f Tests: Teach RunCMake.ParseImplicitIncludeInfo to match output by regex 2019-04-08 10:12:22 -04:00
Brad King 82948805ec Tests: Clarify hand-written cases in RunCMake.ParseImplicitIncludeInfo 2019-04-08 10:11:54 -04:00
Marc Chevrier 1889ed923e Genex: Add capability to retrieve base name for various target artifacts
This new capability is required to solve efficiently issue #18771
2019-04-08 07:49:08 -04:00
Brad King a9b38a1757 cmRST: Fix crash on empty markup block 2019-04-05 08:18:14 -04:00
Regina Pfeifer f5acecaa6f cmExportCommand: Port to cmArgumentParser 2019-04-04 13:24:39 -04:00
Regina Pfeifer 4359fe133b Introduce cmArgumentParser 2019-04-04 13:24:39 -04:00
Brad King 0dfb056cd3 Merge topic 'pr.projectbefore'
0761186949 project: Add variable CMAKE_PROJECT_INCLUDE_BEFORE

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3175
2019-04-04 11:32:41 -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
Brad King a63a50c77a Merge topic 'remove_duplicates'
abbb8a7b1d Genex: Add $<REMOVE_DUPLICATES:list>
11338389e5 Help: Fix description in cmake-generator-expressions(7) manual

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3154
2019-04-04 11:27:28 -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
Marc Chevrier 8a2f62cc18 FindPython*: Add capability to control virtual env handling.
Fixes: #19097
2019-04-03 09:16:17 +02:00
Sebastian Lipponer abbb8a7b1d Genex: Add $<REMOVE_DUPLICATES:list> 2019-04-01 21:52:17 +02:00
Ruslan Baratov 0761186949 project: Add variable CMAKE_PROJECT_INCLUDE_BEFORE 2019-04-01 20:30:19 +03:00
Brad King 3e129d71bc Merge topic 'project-include'
7d19b3091d Release note for CMAKE_PROJECT_INCLUDE variable
dda0190458 project: Add variable CMAKE_PROJECT_INCLUDE
390f14a244 Test ProjectInclude: Add NONE to avoid enabling languages

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3155
2019-04-01 10:49:02 -04:00
Brad King 922480e6f1 Merge topic 'allow_aliasing_unkown_targets'
6d5872a396 add_library: Now support aliasing unknown import targets

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3148
2019-04-01 10:31:11 -04: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
Brad King c690e11a56 Merge topic 'implicit-includes'
dad86f1873 ParseImplicitIncludeInfo: Canonicalize implicit include dirs

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Michel Zou <xantares09@hotmail.com>
Merge-request: !3157
2019-03-29 09:11:41 -04:00
Brad King e532052a0a Merge topic 'update-kwsys'
15be06a5ec Tests: Fix Plugin test for international characters on Windows
24da7da686 Merge branch 'upstream-KWSys' into update-kwsys
8166634958 KWSys 2019-03-28 (e92bdbe8)

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3158
2019-03-29 09:08:07 -04:00
Brad King 30159fe751 Merge branch 'implicit-includes' into release-3.14
Merge-request: !3157
2019-03-29 08:49:34 -04:00
Brad King dad86f1873 ParseImplicitIncludeInfo: Canonicalize implicit include dirs
The implicit include directory extraction added by commit 5990ecb741
(Compute implicit include directories from compiler output, 2018-12-07,
v3.14.0-rc1~108^2) leaves paths like `/usr/lib/../include` unchanged.
Fix the logic to canonicalize such paths (e.g. to `/usr/include`)
as we do for implicit link directories already.  This is important
to ensure the set of implicit directories is represented in the same
form as the include directories that will be compared to them.

Issue: #19095
2019-03-29 08:48:56 -04:00
Brad King 15be06a5ec Tests: Fix Plugin test for international characters on Windows
Build KWSys with `CP_UTF8` internal encoding so that we can dynamically
load modules by absolute paths that contain international characters.
This is needed now that KWSys DynamicLoader uses KWSys Encoding instead
of hard-coding `CP_UTF8` itself.
2019-03-29 08:19:20 -04:00
Ruslan Baratov dda0190458 project: Add variable CMAKE_PROJECT_INCLUDE 2019-03-27 22:39:02 +03:00
Ruslan Baratov 390f14a244 Test ProjectInclude: Add NONE to avoid enabling languages 2019-03-27 22:33:37 +03:00
Brad King 97c163f5f7 Merge branch 'FindFontconfig-var-case' into release-3.14
Merge-request: !3153
2019-03-27 14:20:53 -04:00
Brad King c03ee3ca71 Merge topic 'FindFontconfig-var-case'
a3a1e69f8a FindFontconfig: Convert module variables to camel case

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3153
2019-03-27 14:11:08 -04:00
Robert Maynard 6d5872a396 add_library: Now support aliasing unknown import targets
Fixes #18327
2019-03-26 15:54:48 -04:00
Brad King a3a1e69f8a FindFontconfig: Convert module variables to camel case
Our documented standard for find module variable names is to match the
case of the find module package name.  This was overlooked when the
module was added by commit 84e7920b3a (FindFontconfig: Add module to
find Fontconfig, 2018-09-27, v3.14.0-rc1~523^2).

The module was released with the upper case names in CMake 3.14.0, so
fix it to have camel case names in 3.14.1.  This is incompatible but
anyone using a given release series should be using the latest patch on
it and we've made breaking fixups on newly released features like this
before.

Reported-by: Christophe Giboudeaux <christophe@krop.fr>
Fixes: #19094
2019-03-26 14:14:09 -04:00
Brad King 8494bc2713 Merge topic 'toolchain-include_directories'
588fa1bb9e Restore support for include_directories() in toolchain files

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3140
2019-03-26 10:56:34 -04:00
Brad King 9fbad8b40b Merge topic 'ctest_submit_get_buildid'
ba7e44eb7a ctest_submit: Add option BUILD_ID

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Zack Galbreath <zack.galbreath@kitware.com>
Merge-request: !3120
2019-03-25 11:52:25 -04:00
Brad King 28ef639d2b Merge topic 'pkg-get-variable-prefix-path'
f401a57160 pkg_get_variable now sets PKG_CONFIG_PATH like pkg_check_modules
4d76941924 FindPkgConfig: hoist PKG_CONFIG_PATH ops out into _pkg_set_path_internal
78f23de70c More tests for pkg_get_variable

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3131
2019-03-25 11:51:29 -04:00
Brad King 588fa1bb9e Restore support for include_directories() in toolchain files
Any `include_directories()` calls in toolchain files are used during our
ABI detection step even though it does not include any system headers.
Since commit 5990ecb741 (Compute implicit include directories from
compiler output, 2018-12-07, v3.14.0-rc1~108^2), that check is also used
to detect implicit include directories.  Any `include_directories()` in
a toolchain file are detected as implicit and later excluded from
explicit specification on compiler command lines, thus breaking the
purpose of the calls in the first place.

Fix the implicit include directory detection step to avoid using paths
from `include_directories()` calls in the toolchain file.

Fixes: #19079
2019-03-25 11:48:17 -04:00
Zack Galbreath ba7e44eb7a ctest_submit: Add option BUILD_ID
Fixes: #18968
2019-03-22 09:37:08 -04:00
Brad King 89abbdd8c8 Merge topic 'ghs-linux'
2c43fb5be3 FindThreads: Fix pthread library check in GHS Multi Generator
0404efe786 GHS: Add support for GHS Multi Generator in Linux
2060a1445c Tests: Fix file name case in GHS object library test
ddad70c8a4 Tests: Run GHS tests in a separate ctest process
f7dca1fc97 GHS: Fix include-what-you-use and clang-tidy diagnostics

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3006
2019-03-22 09:22:44 -04:00
Brad King 3744bd0a0a Merge topic 'xcodescheme2'
413b71485a Xcode: Create Xcode schemes per target

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3098
2019-03-22 09:16:02 -04:00
Naren Manimohan 2060a1445c Tests: Fix file name case in GHS object library test 2019-03-21 12:57:38 -04:00
Brad King ddad70c8a4 Tests: Run GHS tests in a separate ctest process
These tests use a different compiler than the rest of the test suite.
Isolate the rest of our tests from their environment.
2019-03-21 12:57:38 -04:00
Harry Mallon 413b71485a Xcode: Create Xcode schemes per target 2019-03-21 16:50:41 +00:00
Kyle Edwards fac093802a Merge topic 'tar-improve-error-handling'
ea9a2c1759 cmake: tar: Parse 'cmake -E tar' arguments

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3081
2019-03-21 10:50:38 -04:00
Dan Kegel f401a57160 pkg_get_variable now sets PKG_CONFIG_PATH like pkg_check_modules
Fixes: #15805
2019-03-20 17:21:47 -04:00
Dan Kegel 78f23de70c More tests for pkg_get_variable
Issue: #15805
2019-03-20 17:18:01 -04:00
Bartosz Kosiorek ea9a2c1759 cmake: tar: Parse 'cmake -E tar' arguments 2019-03-20 09:28:49 -04:00
Regina Pfeifer 35e09c7aef testRange: Make sure tests can actually fail 2019-03-20 06:16:58 +01:00
Kyle Edwards 8c0b7aa17d Merge topic 'cmake--install'
73f23d1e00 cmake: add '--install <dir>' option

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Alex Turbov <i.zaufi@gmail.com>
Acked-by: Bartosz <gang65@poczta.onet.pl>
Acked-by: Cristian Adam <cristian.adam@gmail.com>
Rejected-by: Alex Turbov <i.zaufi@gmail.com>
Merge-request: !3069
2019-03-19 13:39:18 -04:00
Kyle Edwards f1e53266e9 Merge topic 'improve-tar-command'
8634576dcb cmake: Don't interrupt archive creation if unable to read a file.
c7c6a4a2cc Help: Update 'tar' documentation with supported arguments
7c47fd8cd1 cmake: tar: Display warning when no files provided during archive creation

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3080
2019-03-19 13:37:59 -04:00