Commit Graph

4195 Commits

Author SHA1 Message Date
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
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
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
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
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
Brad King
9a5d399725 Merge topic 'out-of-dir-link-keyword'
09721ca078 target_link_libraries: Fix out-of-dir calls with debug/optimized keywords
c40229968c target_link_libraries: Add FIXME comment for out-of-dir genex list

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4202
2020-01-13 10:29:10 -05:00
Marc Chevrier
2678e31053 target_compile_options: ensure BEFORE keyword is handled in all scopes
Fixes: #20200
2020-01-11 01:25:25 +01:00
Kyle Edwards
e8032e202e Ninja Multi-Config: Make cross-config building opt-in
Many users will want to use the Ninja Multi-Config generator like a
traditional Visual Studio-style multi-config generator, which doesn't
mix configurations - custom commands are built using target executables
of the same configuration the command is for. We do not want to force
these people to generate an N*N build matrix when they only need N*1,
especially if they have lots of targets. Add a new variable,
CMAKE_NINJA_CROSS_CONFIG_ENABLE, to opt-in to the cross-config build
matrix.
2020-01-10 16:31:29 -05:00
Kyle Edwards
78f9c9dd0e Merge topic 'nsis-headerimage'
ebfffc609e CPack/NSIS: Add option for setting MUI_HEADERIMAGE_BITMAP

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4157
2020-01-10 13:48:47 -05:00
Brad King
2ee6baef4f Merge topic 'ninja-postgen-commands'
fb18215904 Ninja: clean ninja metadata once generated

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Jan Niklas Hasse <jhasse@bixense.com>
Merge-request: !3316
2020-01-10 13:30:35 -05:00
Brad King
eb672da7d4 Merge topic 'objc-compiler-launcher'
f6ef6e5a73 Merge branch 'backport-3.16-objc-compiler-launcher'
1a9f6bad98 ObjC: Add _COMPILE_LAUNCHER support
a05b9d4239 ObjC: Add _COMPILE_LAUNCHER support

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4189
2020-01-10 13:18:35 -05:00
Brad King
09721ca078 target_link_libraries: Fix out-of-dir calls with debug/optimized keywords
In commit a1ad0a699b (target_link_libraries: Allow use with targets in
other directories, 2018-09-07, v3.13.0-rc1~94^2) we added use of `<...>`
to encode a directory id, but the closing `>` can incorrectly terminate
a surrounding generator expression early.  Encode the directory id using
`(...)` instead.

Fixes: #20202
2020-01-10 11:40:34 -05:00
Betsy McPhail
a7d25358a0 Tutorial: Add the PRIVATE keyword to target_link_libraries command 2020-01-10 11:38:00 -05:00
Betsy McPhail
cf2afb1065 Tutorial: Remove 'Consumer' example
This example was incomplete and did not follow the format of the tutorial.
2020-01-10 11:38:00 -05:00
Betsy McPhail
77b515f3eb Tutorial: Improve "MultiPackage" example
Rename to Step 12 and ensure that it follows Step 11
2020-01-10 11:37:54 -05:00
Craig Scott
3795dea6f1 Merge topic 'docs-autogen'
159d2ead95 Help: Mention both target and source properties for AUTO..._OPTIONS
648234b8ba Help: Clarify/add docs for initializing AUTO..._OPTIONS properties
dd2f42cc84 Help: Clean up formatting and typos in autogen docs
2ec57e11fb Help: Fix sorting of property indexes

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4194
2020-01-10 07:02:38 -05:00
Betsy McPhail
3a510a47b0 Tutorial: Add links to relevant CMake documentation
Add links for commands, properties and variables.
2020-01-09 14:49:28 -05:00
Cristian Adam
1a9f6bad98 ObjC: Add _COMPILE_LAUNCHER support
Fixes: #20178
2020-01-09 13:52:37 -05:00
Cristian Adam
a05b9d4239 ObjC: Add _COMPILE_LAUNCHER support
Fixes: #20178
2020-01-09 11:35:23 -05:00
Marc Chevrier
61502d3956 FindPython: Add variable Python_SOABI
This variable holds the standard extension suffix for modules.

Fixes: #20150
2020-01-09 14:43:22 +01:00
Craig Scott
159d2ead95 Help: Mention both target and source properties for AUTO..._OPTIONS 2020-01-09 20:34:39 +11:00
Craig Scott
648234b8ba Help: Clarify/add docs for initializing AUTO..._OPTIONS properties 2020-01-09 20:33:56 +11:00
Craig Scott
dd2f42cc84 Help: Clean up formatting and typos in autogen docs 2020-01-09 20:32:27 +11:00
Craig Scott
2ec57e11fb Help: Fix sorting of property indexes 2020-01-09 20:30:49 +11:00
Ben Boeckel
fb18215904 Ninja: clean ninja metadata once generated
Fixes: #15830
2020-01-06 11:57:08 -05:00
Sebastian Holtermann
abad139c99 Autogen: Process .hh headers based on new policy CMP0100 settings
Reintroduces .hh header processing in AUTOMOC and AUTOUIC based on the new
policy CMP0100 setting.

Fixes: #13904 CMAKE_AUTOMOC misses headers with ".hh" extension
2020-01-04 11:33:04 +01:00
Kyle Edwards
e7675acacb Merge topic 'add_target_deprecation'
c621839bd9 Add set_property option: DEPRECATION

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Daniele E. Domenichelli <ddomenichelli@drdanz.it>
Merge-request: !4128
2020-01-03 11:30:48 -05:00
Joseph Snyder
c621839bd9 Add set_property option: DEPRECATION
Add a new property flag for a target which contains a message regarding
deprecation status.

Add a warning at "Generate" time if a linked target is marked as
deprecated.

Expand ExportImport test to ensure that new property is being set and
passed correctly.  Ensure that the message is shown during the
"Generate" step run of the ExportImport test.
2020-01-02 17:11:31 -05:00
Johnny Jazeix
ebfffc609e CPack/NSIS: Add option for setting MUI_HEADERIMAGE_BITMAP
Fixes: #20120
2020-01-02 22:27:31 +01:00
Sylvain Joubert
a179cbf205 FindLibXml2: provide imported target LibXml2::xmllint 2019-12-31 12:45:26 +01:00
Kyle Edwards
bb811568cc Merge topic 'traceJSON'
e113ab1168 trace: Add test for the JSON-v1 trace
482497e0de trace: Add JSON output format

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4102
2019-12-27 10:53:13 -05:00
Robert Maynard
4497a8672b Help: Add release notes for debugging find commands 2019-12-23 11:10:48 -05:00
Daniel Mensinger
482497e0de trace: Add JSON output format
Add a new `--trace-format=` flag, to enable the new JSON trace
output format. This new format is easier to parse by machines
than the existing format. This new format also removes the
ambiguity of the whitespace in the "old" format (e.g. is that
whitespace part of a file path, or does it seperate arguments)
2019-12-23 14:05:36 +01:00
Marc Chevrier
417c533010 Merge topic 'findpython_conda_support'
776d27d4a4 FindPython: Extend virtual environment handling by considering conda

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4155
2019-12-23 06:33:54 -05:00
Sebastian Müller
776d27d4a4 FindPython: Extend virtual environment handling by considering conda
- Add functionality to recognize and use CONDA_PREFIX environment variable
- Add tests for conda virtual environments
- Fixes: #20111
2019-12-21 15:38:00 +01:00
Kyle Edwards
61960fa466 Merge topic 'add_find_call_debugging'
f3c9396260 Help: Document CMAKE_FIND_DEBUG_MODE
204b8d9f4e find_*: Use debug logging infrastructure
a7ea20649d find_*: Add debug logging infrastructure

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3935
2019-12-20 12:59:50 -05:00
Robert Maynard
f3c9396260 Help: Document CMAKE_FIND_DEBUG_MODE 2019-12-19 08:09:49 -05:00
Robert Maynard
a7ea20649d find_*: Add debug logging infrastructure
Enable debug messages a new `--find-debug` command-line option or via
the `CMAKE_FIND_DEBUG_MODE` variable.

This work was started by Chris Wilson, continued by Ray Donnelly, and
then refactored by Robert Maynard to collect information into a single
message per find query.

Co-Author: Ray Donnelly <mingw.android@gmail.com>
Co-Author: Chris Wilson <chris+github@qwirx.com>
2019-12-19 08:09:49 -05:00
Ben Boeckel
f5126badd8 add_custom_command: convert DEPENDS path arguments to absolute paths
This is only done if they are "obviously" paths in that they contain a
directory separator.

Fixes: #17111
2019-12-18 13:57:07 -05:00
Brad King
3289322e4f Merge topic 'FindCUDAToolkit-module'
d484a3c4d8 FindCUDAToolkit: correct searches for Toolkit components
e2a5d8374f FindCUDAToolkit: Improve usage, library set, and tests
29560bf07b FindCUDAToolkit: Import targets for toolkit libraries
2c0ff263b4 FindCUDAToolkit: Add module to find the CUDA Toolkit
12d324e55d CUDA: Persist SIZEOF_VOID_P and PLATFORM_ABI

Acked-by: Kitware Robot <kwrobot@kitware.com>
Rejected-by: Brad King <brad.king@kitware.com>
Acked-by: Brad King <brad.king@kitware.com>
Merge-request: !4093
2019-12-17 11:13:50 -05:00
Brad King
1369db7406 Merge topic 'better_category_for_target_debug_property'
b23c778034 CMAKE_DEBUG_TARGET_PROPERTIES to `provides information` section

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4142
2019-12-17 11:13:02 -05:00
Brad King
37a30f228a Merge topic 'fix-vs-winrt-by-default'
557ea4614e VS: Change CMAKE_VS_WINRT_BY_DEFAULT to not implicitly enable WinRT
7bcef355bf Vs: Add test for VS_WINRT_BY_DEFAULT

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4127
2019-12-17 11:11:24 -05:00
Robert Maynard
b23c778034 CMAKE_DEBUG_TARGET_PROPERTIES to provides information section
This variable only provides debug information and doesn't modify
the output of CMake, so move it to the correct variable
section.
2019-12-16 17:05:12 -05:00
Petr Polezhaev
557ea4614e VS: Change CMAKE_VS_WINRT_BY_DEFAULT to not implicitly enable WinRT
Original behaviour would unconditionally enable WinRT for all projects
so source file flag generation code can acknowledge WinRT being present
and disable it for C language source files.  An unintentional result of
that approach is that WinRT is enabled for ALL projects, including C++
projects/source files with no way to disable it

Instead use `CMAKE_VS_WINRT_BY_DEFAULT` as a hint that the platform is
WinRT-by-default and set global `CompileAsWinRT` flag to `false` unless
it was explicitly requested by either `WINRT_COMPONENT` option or `/ZW`
compilation option - similar to what Windows Phone/Windows Store
platform logic does

In case WinRT compilation is enabled for a project by either of
aforementioned methods, C language source file override logic will still
kick in and disable CompileAsWinRT for C source files

Fixes: #20063
2019-12-16 13:46:59 -05:00
Stephen McDowell
2c0ff263b4 FindCUDAToolkit: Add module to find the CUDA Toolkit 2019-12-16 10:31:43 -05:00
Kyle Edwards
8c062f9d99 Help: Add documentation and release notes for multi-config Ninja 2019-12-13 10:52:07 -05:00