Commit Graph

1266 Commits

Author SHA1 Message Date
Wouter Klouwen
7ddc9e353b ExternalProject: option LOG_MERGED_STDOUTERR to combine stdout and stderr
In some circumstances the user of ExternalProject may not desire the
split log files for stdout and stderr. In particular with a project has
many errors it can be difficult to correlate the output error with the
command that it resulted from.

This commit adds the LOG_MERGED_STDOUTERR option that when enabled
outputs into a unified <name>-<step>.log for each step. If disabled it
will default to the previous behaviour of <name>-<step>-out.log and
<name>-<step>-err.log.
2018-10-19 15:32:51 +01:00
Brad King
d120ccd193 Merge topic 'find_fontconfig'
84e7920b3a FindFontconfig: Add module to find Fontconfig

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2487
2018-10-19 09:59:27 -04:00
Frederik Gladhorn
84e7920b3a FindFontconfig: Add module to find Fontconfig
This module is inspired by one from KDE's KWin.
2018-10-18 20:32:09 +02:00
Brad King
78681bf001 Merge topic 'better-empty-list-behavior'
121a036f73 cmListCommand: handle empty lists for list(REMOVE_AT)
acfe53c588 cmListCommand: make list(ACTION not_a_list) succeed when idempotent
bf572ac952 cmListCommand: check list(FILTER) operation before the list

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2478
2018-10-17 13:27:56 -04:00
Ben Boeckel
121a036f73 cmListCommand: handle empty lists for list(REMOVE_AT)
Treat an empty list as a list with no valid bounds and return an error
message indicating that any given indices are out-of-bounds.
2018-10-16 14:31:39 -04:00
Ben Boeckel
acfe53c588 cmListCommand: make list(ACTION not_a_list) succeed when idempotent
The operations changed here all are no-ops on empty lists anyways, so
just have them succeed when given non-extant lists.

  - `list(REMOVE_ITEM)`
  - `list(REMOVE_DUPLICATES)`
  - `list(SORT)`
  - `list(FILTER)`
  - `list(REVERSE)`
2018-10-16 14:31:39 -04:00
Brad King
7bacb22955 Merge topic 'cppcheck-exit-code'
3b80cd77fb Fail the build if cppcheck returns a non-zero exit code

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2459
2018-10-12 08:17:58 -04:00
Frederik Gladhorn
f76047f34a FindLibinput: Add module to find libinput
This module is inspired by one from KDE's KWin.
2018-10-11 10:43:45 -04:00
Harald Brinkmann
3b80cd77fb Fail the build if cppcheck returns a non-zero exit code
This allows the build failure to be tuned with cppcheck's
options --error-exitcode=<n> and --exitcode-suppressions=<file>.
2018-10-11 07:56:05 -04:00
Brad King
7d2ee4cb98 Merge topic 'install-subdirectory-order'
b56f2db87a Testing: Add test for CMP0082
fc8955e889 add_subdirectory: Run subdirectory install rules in correct order
514f0b572e Testing: Update hard-coded line numbers to [0-9]+ in some tests

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2434
2018-10-11 07:37:59 -04:00
Kyle Edwards
fc8955e889 add_subdirectory: Run subdirectory install rules in correct order
Before this change, install rules created by add_subdirectory()
would be executed after all of the top-level install rules, even
if they were declared before the top-level rules. This change
adds a new policy, CMP0082, which interleaves the add_subdirectory()
install rules with the other install rules so they are run in the
correct order.
2018-10-10 10:26:39 -04:00
Betsy McPhail
a6e0158712 ctest_submit: Add support for a "Done" part
Teach CTest to submit Done.xml. Submission of this file indicates to
CDash that a build is complete and no more files will be uploaded. It
contains the build id returned by CDash and the current time.

This file is submitted last for a given build when using the
`ctest_submit()` command.

If submitting by PARTS, use `ctest_submit(PARTS Done)`.
2018-10-10 06:55:59 -04:00
Brad King
8713e9cbbc Begin post-3.13 development 2018-10-03 12:55:56 -04:00
Brad King
f7722fc939 Help: Drop development topic notes to prepare release
Release versions do not have the development topic section of
the CMake Release Notes index page.
2018-10-03 12:52:15 -04:00
Brad King
2fd2c8cb7e Help: Consolidate 3.13 release notes
Run the `Utilities/Release/consolidate-relnotes.bash` script to move
notes from `Help/release/dev/*` into `Help/release/3.13.rst`.
2018-10-01 10:21:34 -04:00
Brad King
5cf36d3b0f Merge topic 'byproducts_make_clean'
80e2f8ee0c Ninja,Makefile: Add tests for handling of byproducts by clean operations
c7f1ed03d7 Help: Add release note for make clean and byproducts
4220962d18 Makefile: Add build events byproducts to clean rules
182d9597ec Makefile: Add custom command byproducts to clean rules
9c2b393cb7 Tests: Update CustomCommandWorkingDirectory to handle in-source byproducts

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2334
2018-10-01 09:22:03 -04:00
Brad King
3bb8dda047 Merge topic 'add_progress_summary_console_logging_mode'
b3d5b8b3fb ctest: Add option for live progress summary in terminal
62fbe5002a cmCTestRunTest: Thread number of completed tests through start APIs
02c5091c90 cmCTestRunTest: Simplify number width computation
6a285bb737 cmCTestRunTest: Buffer test result output before printing

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2240
2018-10-01 09:20:44 -04:00
Pedro Navarro
c7f1ed03d7 Help: Add release note for make clean and byproducts 2018-09-28 11:30:32 -04:00
Brad King
cac09cc52c Merge topic 'customcommandworkingdirectory'
f158ac19e1 add_custom_{command,target}: WORKING_DIRECTORY generator expressions

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2409
2018-09-28 11:17:09 -04:00
Jon Chronopoulos
f158ac19e1 add_custom_{command,target}: WORKING_DIRECTORY generator expressions
This teaches add_custom_command and add_custom_target WORKING_DIRECTORY
about generator expressions

Fixes: #14089
2018-09-28 11:15:33 -04:00
Brad King
4e98203c6c Merge topic 'vs-global-props-for-all-targets'
36489b85aa VS: Add test for CMAKE_VS_GLOBALS
22e670a306 VS: Add option to set VS_GLOBAL_* for all targets

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2345
2018-09-28 11:13:59 -04:00
Brad King
acf0627470 Merge topic 'FindMatlab-2018b'
62709beff8 FindMatlab: Add Matlab 2018a,b to version list
9a56ed3438 FindMatlab: Explicitly export mexFunction in MSVC
6c57f6b347 FindMatlab: Optionally allow linking to MatlabEngine and MatlabDataArray

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Raffi Enficiaud <raffi.enficiaud@free.fr>
Merge-request: !2407
2018-09-27 14:48:03 -04:00
Michael Wegner
b3d5b8b3fb ctest: Add option for live progress summary in terminal 2018-09-26 11:47:49 -04:00
Craig Scott
3181f8405b Merge topic 'link-directories'
f9717725f9 link_directories(): enhance capabilities
b5915744eb LINK_DIRECTORIES target property: add policy for absolute paths check.
a71caab46b LINK_DIRECTORIES: Add new properties and commands
5ca130e223 Refactoring: introduce function to check if a string is a generator expression

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2403
2018-09-26 08:11:40 -04:00
Sean Warren
62709beff8 FindMatlab: Add Matlab 2018a,b to version list 2018-09-26 07:54:50 -04:00
Sean Warren
9a56ed3438 FindMatlab: Explicitly export mexFunction in MSVC
Fixes: #18391
2018-09-26 07:54:01 -04:00
Sean Warren
6c57f6b347 FindMatlab: Optionally allow linking to MatlabEngine and MatlabDataArray
Fixes: #17971
2018-09-26 07:53:50 -04:00
Brad King
b16b254845 Merge topic 'dbgsym-packaging'
d8a3939aef CPack/Deb: Add ability to split out debug symbols into .ddeb package
42fbff45e4 CPack/Deb: Use CMAKE_COMMAND to set the environment
66ab24a4c5 Help: Fix typo

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2399
2018-09-26 06:52:06 -04:00
Marc Chevrier
f9717725f9 link_directories(): enhance capabilities 2018-09-25 23:59:59 +10:00
Marc Chevrier
b5915744eb LINK_DIRECTORIES target property: add policy for absolute paths check. 2018-09-25 23:59:59 +10:00
Marc Chevrier
a71caab46b LINK_DIRECTORIES: Add new properties and commands
These new capabilities enable to manage link directories

Two new properties:
* target properties: LINK_DIRECTORIES and INTERFACE_LINK_DIRECTORIES

One new command
* target_link_directories(): to populate target properties

Fixes: #17215
2018-09-25 23:59:58 +10:00
Mikhail Korolev
22e670a306 VS: Add option to set VS_GLOBAL_* for all targets
Fixes: #18287
2018-09-25 09:20:25 -04:00
Andrew Fuller
d8a3939aef CPack/Deb: Add ability to split out debug symbols into .ddeb package 2018-09-21 20:19:31 +00:00
Craig Scott
fe751ad1fb Merge topic 'deprecate-policy-old'
0c709cb2a2 Add deprecation warnings for policies CMP0063 and below

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2397
2018-09-20 11:30:24 -04:00
Kyle Edwards
b69159324a Help: Add release notes for new BundleUtilities policy 2018-09-19 11:23:16 -04:00
Brad King
a9df54ec31 Merge topic 'symlink'
afb7f6e4ff cmake: Add '-E create_symlink' support on Windows

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2144
2018-09-19 10:41:07 -04:00
Brad King
ec9ef691fe Merge topic 'provide_explicit_source_and_build_command_line_options'
638f00117a Add release note for the -S and -B options.
de962cc00d CMake: Internally uses -S instead of -H to specify source directory
a10d63d578 cmake: -S and -B can be used to specify source and build directories

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2358
2018-09-19 10:38:19 -04:00
Jon Chronopoulos
afb7f6e4ff cmake: Add '-E create_symlink' support on Windows
The allows `-E create_symlink` to work on Windows.  It utilizes
`uv_fs_symlink`.  I am still unsure exactly which Windows platforms will
work without requiring Administrator privileges or needing a user/group
with the "Create Symbolic Links" User Rights.  It does work with my
Windows 10 Pro with Developer Mode turned on.  In the test suite check
that the symlink either worked or failed with a permissions error.

Use recent changes in cmSystemTools::FileExists to check that a symlink
is broken.
2018-09-18 11:24:08 -04:00
Brad King
7162630bee Merge topic 'vs-ipo'
bef80e6623 VS: Do not specify incremental linking if LTCG is enabled
567fabe88e IPO: INTERPROCEDURAL_OPTIMIZATION (LTCG) for Visual Studio

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2363
2018-09-18 11:22:41 -04:00
Brad King
f9eac2ae4b Merge topic 'FindPython-updates'
329f6aeca5 FindPython*: Windows: add facility to select lookup order for registry.
ffb560adc9 FindPython*: MacOS: Fix erroneous handling of Frameworks.
b0b53921ce FindPython: clean-up lookup names strategy

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2369
2018-09-18 11:15:13 -04:00
Brad King
0c709cb2a2 Add deprecation warnings for policies CMP0063 and below
The OLD behaviors of all policies are deprecated, but only by
documentation.  Add an explicit deprecation diagnostic for some policies
to encourage projects to port away from setting policies to OLD.
2018-09-17 14:16:48 -04:00
Niels Dekker
567fabe88e IPO: INTERPROCEDURAL_OPTIMIZATION (LTCG) for Visual Studio
Add IPO support for Visual Studio (which is referred to by VS as
"Link Time Code Generation" and "Whole Program Optimization"), for
VS version >= 10.  This allows CMake/VS users to enable IPO by setting
property `INTERPROCEDURAL_OPTIMIZATION`.

Fixes: #16748
2018-09-17 10:53:10 -04:00
Robert Maynard
638f00117a Add release note for the -S and -B options. 2018-09-15 11:25:47 -04:00
Brad King
a1ad0a699b target_link_libraries: Allow use with targets in other directories
Previously the command did not allow naming targets on the LHS that
were not created in the calling directory.  Lift this restriction to
enable more flexible use by projects.

Targets named on the RHS will need to be looked up during generation in
the scope of the call site rather than the scope of the LHS target.
Introduce an internal syntax in `[INTERFACE_]LINK_LIBRARIES` properties
to specify target names that need to be looked up in a directory other
than that containing the target on which the property is set.  Add
minimal documentation of the syntax to help users that encounter it.

Unfortunately CMake previously did allow such calls in the case that
only `INTERFACE` libraries are specified, but those libraries would be
looked up in the target's directory rather than the caller's.  Add
policy `CMP0079` to enable the new behavior with new lookup scope in a
compatible way.

Fixes: #17943
2018-09-12 13:06:36 -04:00
Marc Chevrier
329f6aeca5 FindPython*: Windows: add facility to select lookup order for registry.
Fixes: #18302
2018-09-12 10:04:05 +02:00
Jason Heeris
68d015fc94 FindSubversion: Add Subversion_WC_INFO option to suppress failures
Subversion fails when the directory is not actually under its control.
Allow projects to tolerate this case optionally.

Fixes: #18264
2018-09-07 16:17:28 -04:00
Marc Chevrier
974de0e199 static library: add property STATIC_LIBRARY_OPTIONS
issue: #18251
2018-08-15 15:20:18 +02:00
Brad King
d7a1bcd2e6 Merge topic 'xcode_schemes_config'
6b7f1e1db0 Xcode: Add variables and properties to configure schemes
39c91d0703 cmGlobalGenerator: Add IsXcode query

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1803
2018-08-06 08:25:50 -04:00
Jason Heeris
f34f6eb3d1 FindMatlab: Add component to find MCC, the Matlab compiler
Add component `MCC_COMPILER` to request searching for the Matlab
compiler.  Report it in `Matlab_MCC_COMPILER` if it is found.

Issue: #18183
2018-08-01 09:23:46 -04:00
Gregor Jasny
6b7f1e1db0 Xcode: Add variables and properties to configure schemes
Add `XCODE_SCHEME_*` target properties and associated variables
`CMAKE_XCODE_SCHEME_*` to initialize them on target creation.
Map each target property value to an associated Xcode scheme entry.

Co-Author: Martin Sander <mail@martin-sander.de>
Fixes: #17919
2018-08-01 09:12:42 -04:00