Commit Graph

690 Commits

Author SHA1 Message Date
Cristian Adam
729d997f10 Precompile Headers: Add REUSE_FROM signature
Add the ability to share precompiled headers artifacts between
targets.

Fixes: #19659
2019-09-17 11:58:38 +02:00
Daniel Eiband
f6574c9a81 Depend: Hook up automatic target-level dependencies via byproducts
Target-level dependencies to utility targets are added from another target if
the other target requires a byproduct of the utility target or if it requires a
byproduct of PRE_BUILD, PRE_LINK, or POST_BUILD build events of a target.

Issue: #19005
2019-09-12 16:03:12 +02:00
Cristian Adam
8da78d4efe Precompile headers: Update documentation 2019-08-28 11:47:51 -04:00
Zack Galbreath
2a71a0390c ctest: rename TRACK to GROUP
Update command-line options, script variables, and documentation to use
the term "group" instead of "track". The old terms are still available
for now, but they are now undocumented.

This makes our terminology more consistent with CDash. The goal of this
change is to make it more clear to our users how CTest and CDash interact
with each other.
2019-08-22 13:10:18 -04:00
Sylvain Joubert
ccefe9798d Help: Fix typo in ctest_coverage synopsis 2019-08-20 10:23:44 +02:00
Hong Xu
d192caefff CMakeDependentOption: Document that 4th parameter follows if-syntax 2019-08-05 10:15:21 -04:00
Robert Maynard
609fe39043 FindPackage: Support NO_[]_PATH global call options 2019-07-22 17:17:02 -04:00
Brad King
303cf2791a Merge topic 'doc-string-multibyte'
b97673f54b Help: Add note to each string() subcommand that assumes ASCII input
26cd64d977 Help: Fix language and formatting inconsistencies for string() command

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3559
2019-07-22 08:19:39 -04:00
Craig Scott
f4131e4e1b Merge topic 'feature/message-indent'
5f6fd917a3 message(): Control indentation via CMAKE_MESSAGE_INDENT

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3464
2019-07-22 07:02:50 -04:00
Alex Turbov
5f6fd917a3 message(): Control indentation via CMAKE_MESSAGE_INDENT 2019-07-21 10:19:30 +10:00
Craig Scott
b97673f54b Help: Add note to each string() subcommand that assumes ASCII input
Fixes: #19465
2019-07-19 20:47:21 +10:00
Craig Scott
26cd64d977 Help: Fix language and formatting inconsistencies for string() command 2019-07-19 20:47:21 +10:00
Gabor Bencze
407dd1a910 Help: Add documentation for SKIP_REGULAR_EXPRESSION test property 2019-07-18 15:45:09 -04:00
Brad King
2fa920c0cd AIX: Create import library for executables with exports
On AIX, plugins meant to be loaded into executables via `dlopen` must be
linked with access to a list of symbols exported from the executable in
order to use them (when not using runtime linking).  The AIX linker
supports specifying this list as an "import file" passed on the command
line either via the `-bI:...` option or (with a leading `#! .` line) as
a normal input file like any other library file.

The linker import file plays the same role on AIX as import libraries do
on Windows.  Teach CMake to enable its import library abstraction on AIX
for executables with the `ENABLE_EXPORTS` target property set.  Teach
our internal `ExportImportList` script to optionally generate a leading
`#! .` line at the top of the generated export/import list.  Update our
rule for linking an executable with exports to generate a public-facing
"import library" implemented as an AIX linker import file.

With this approach, our existing infrastructure for handling import
libraries on Windows will now work for AIX linker import files too:

* Plugins that link to their executable's symbols will be automatically
  linked using the import file on the command line.

* The executable's import file will be (optionally) installed and
  exported for use in linking externally-built plugins.

This will allow executables and their plugins to build even if we later
turn off runtime linking.

Issue: #19163
2019-07-16 14:15:13 -04:00
Craig Scott
24722b7860 Merge topic 'docs-file-GLOB-case-sensitivity'
c65f296960 Help: Mention file(GLOB)'s case-sensitivity

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3516
2019-07-11 06:07:26 -04:00
Steve Mokris
c65f296960 Help: Mention file(GLOB)'s case-sensitivity
Based on the KWSYS_GLOB_CASE_INDEPENDENT flag in `Source/kwsys/Glob.cxx`.
2019-07-10 09:29:29 -04:00
Craig Scott
3b62d5e677 Merge topic 'docs-message-cmake-gui'
42a9e61056 message() help: Clarify how logs are displayed in various tools

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3523
2019-07-10 06:44:17 -04:00
Frank Dana
42a9e61056 message() help: Clarify how logs are displayed in various tools 2019-07-10 09:40:11 +10:00
Craig Scott
f7eb765012 Merge topic 'add_cmake_find_use_package_registry'
447a96f590 vim: Update cmake.vim to include the CMAKE_FIND_USE variables
1d00ba9ccf Find: find_package prefers variable CMAKE_FIND_USE_REGISTRY
704e3a2ca8 Find: Correct spelling and layout issues in CMAKE_FIND_USE_ docs

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3487
2019-07-09 19:32:54 -04:00
Robert Maynard
1d00ba9ccf Find: find_package prefers variable CMAKE_FIND_USE_REGISTRY
CMake's find control flags should all have a consistent name.
To make this happen we are introducing `CMAKE_FIND_USE_REGISTRY`
and deprecating `CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY`.
2019-07-09 09:38:35 -04:00
Robert Maynard
704e3a2ca8 Find: Correct spelling and layout issues in CMAKE_FIND_USE_ docs 2019-07-09 09:37:55 -04:00
Craig Scott
12e46dc413 Merge branch 'docs-misc-trivial-cleanups' into release-3.15
Merge-request: !3498
2019-07-04 22:29:39 +10:00
Craig Scott
01c0d863f4 Merge topic 'docs-misc-trivial-cleanups'
d5b722bbbd Help: Remove mention of CMAKE_INSTALL_DO_STRIP
ddc7ea4696 Help: Clarify how to provide multiple targets with cmake --target
c509f38b7b Help: Add missing xref for CMAKE_EXECUTE_PROCESS_COMMAND_ECHO
9cc6befe1b Help: Improve formatting of list(TRANSFORM) sub-options
074fbdb73f Help: Clean up trivial typos and grammar

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Brad King <brad.king@kitware.com>
Merge-request: !3498
2019-07-04 08:25:25 -04:00
Craig Scott
c509f38b7b Help: Add missing xref for CMAKE_EXECUTE_PROCESS_COMMAND_ECHO 2019-07-03 23:38:25 +10:00
Craig Scott
9cc6befe1b Help: Improve formatting of list(TRANSFORM) sub-options 2019-07-03 23:38:25 +10:00
Craig Scott
074fbdb73f Help: Clean up trivial typos and grammar 2019-07-03 23:38:25 +10:00
Craig Scott
7ea18c02c3 Merge topic 'docs-project-code-injection'
42294f43bd Help: move code injection vars to their own section
9e0775cb6a Help: Remove self-references from project() docs

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3494
2019-07-01 07:43:08 -04:00
Craig Scott
42294f43bd Help: move code injection vars to their own section
The docs for CMAKE_PROJECT_<projName>_INCLUDE and
CMAKE_PROJECT_INCLUDE did not define the order of
inclusion if both were set.
2019-07-01 08:01:49 +10:00
Craig Scott
9e0775cb6a Help: Remove self-references from project() docs 2019-06-29 22:21:18 +10:00
Brad King
394adf63c6 Merge topic 'doc-typos-cmake_parse_arguments'
264612c013 Help: Typo and grammar fixes in cmake_parse_arguments() docs

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Brad King <brad.king@kitware.com>
Merge-request: !3468
2019-06-24 09:43:50 -04:00
Craig Scott
264612c013 Help: Typo and grammar fixes in cmake_parse_arguments() docs 2019-06-23 21:10:16 +10:00
Robert Maynard
02f527c66a Find: Provide global controls for the NO_[]_PATH call options 2019-06-21 11:06:39 -04:00
Brad King
f07200fe16 Merge topic 'add-test-command-expand-lists'
e791ffac61 add_test: Add COMMAND_EXPAND_LISTS option

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3422
2019-06-12 12:48:13 -04:00
Kyle Edwards
1f9ef25130 file: Add GET_RUNTIME_DEPENDENCIES mode
Co-Authored-by: Bryon Bean <bryon.bean@kitware.com>
2019-06-10 14:35:28 -04:00
Sergey Bobrenok
e791ffac61 add_test: Add COMMAND_EXPAND_LISTS option
Add a `COMMAND_EXPAND_LISTS` option to the `add_test` command to cause
`;`-separated lists produced by generator expressions to be expanded
into multiple arguments.  The `add_custom_command` command already
has such an option.

Fixes: #17284
2019-06-07 13:14:29 -04:00
Cristian Adam
4127f82179 add_library: Document UNKNOWN type of imported targets 2019-06-02 08:44:47 +02:00
John Freeman
b7b7f1806a Help: Fix typo in install(EXPORT_ANDROID_MK) example 2019-05-26 09:09:07 -05:00
Brad King
c024e44abe Merge topic 'find-package-prefer-config'
26a99da206 find_package: Add option to prefer Config mode
c365243a3a find_package: Factor out module and config find_package methods

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Ruslan Baratov <ruslan_baratov@yahoo.com>
Merge-request: !3339
2019-05-22 10:28:59 -04:00
Cristian Adam
26a99da206 find_package: Add option to prefer Config mode
Add a `CMAKE_FIND_PACKAGE_PREFER_CONFIG` variable to tell
`find_package` calls to look for a package configuration file
first even if a find module is available.

Fixes: #16805, #19236
2019-05-21 10:29:47 -04:00
Brad King
a1eb03569d file: Change REMOVE to ignore empty names
Previously code like

    file(REMOVE_RECURSE "${accidentally_missing_variable}")

treated the empty string as a relative path with respect to the
current directory and removed its contents.  Change this behavior
to ignore the empty string with a warning instead.

Normally such behavior changes are done with a policy, but in this case
such code is likely a real bug in project code that can delete data.

Fixes: #19274
2019-05-21 09:25:32 -04:00
Kyle Edwards
e3ff7ced63 file(INSTALL): Add FOLLOW_SYMLINK_CHAIN argument 2019-05-16 15:25:33 -04:00
Rosen Matev
9f76961de8 Support job pools in custom commands and targets
Provide a way for custom commands and targets to set the pool variable
of the ninja build statement. Setting `JOB_POOL` is not compatible with
`USES_TERMINAL`, which implies the `console` pool.

The option is silently ignored with other generators.

Closes: #18483
2019-05-14 15:58:00 +02:00
Craig Scott
4aace9b015 Merge topic 'ctest-update-version-override'
2a34d0ac36 ctest: Add new variable CTEST_UPDATE_VERSION_OVERRIDE
7ddac95121 Help: cross-ref and wording of docs related to ctest_update()
a0d04d8810 testing: Update terminology in ctest_update tests

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Zack Galbreath <zack.galbreath@kitware.com>
Merge-request: !3277
2019-05-08 08:49:34 -04:00
Brad King
fa077acba5 Merge topic 'enforce-explicit-use-of-project'
1527defbfe cmMakefile: Enforce explicit use of project() command

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3245
2019-05-07 11:17:26 -04:00
Bartosz Kosiorek
1527defbfe cmMakefile: Enforce explicit use of project() command
Fixes: 17714
2019-05-06 10:58:10 +02:00
Craig Scott
a6a543ced6 Help: Clarify that link options don't apply to static library targets 2019-05-05 19:05:14 +10:00
Zack Galbreath
7ddac95121 Help: cross-ref and wording of docs related to ctest_update()
Provide better motivation for users to click through to the CTest manual
from the ctest_update command help page.
2019-05-03 20:26:50 +10:00
Craig Scott
e138207c42 Merge topic 'message-new-types-and-logging'
599587feb1 message(): Minor code modernization
6cc93b370e message(): Add support for log levels
377d1b7896 cmSystemTools: Remove unused message-related code, simplify logic

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Brad King <brad.king@kitware.com>
Merge-request: !3268
2019-04-30 18:35:06 -04:00
Brad King
60b28de5c8 Merge topic 'add-execute_process-command-echo'
044dcf9f8d execute_process: Add option to echo command lines
d350fb6889 execute_process: Manage KWSys Process lifetime with unique_ptr

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3165
2019-04-30 10:05:09 -04:00
Alex Turbov
6cc93b370e message(): Add support for log levels
Relates: #18943
Co-Authored-By: Craig Scott <craig.scott@crascit.com>
2019-04-28 22:45:44 +10:00