Commit Graph

352 Commits

Author SHA1 Message Date
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
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
Cristian Adam 1a9f6bad98 ObjC: Add _COMPILE_LAUNCHER support
Fixes: #20178
2020-01-09 13:52:37 -05: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
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
Robert Maynard 2467a2b318 CUDA: Add cuda meta-features (e.g. `cuda_std_11`) support 2019-12-10 17:56:48 -05:00
Hong Xu fb4a39a900 Help: Clarify INSTALL_RPATH_USE_LINK_PATH documentation
State explicitly that directories containing linked library files
are also included even if they are not in the linker search path.
2019-12-05 12:45:45 -05:00
Gregor Jasny 92c4c852db Xcode: Add custom working directory property
Closes: #19967
2019-11-18 22:34:34 +01:00
Brad King 498e3e67b3 Merge topic 'docs-pch-reorg'
cc88ede7a3 Help: Provide guidance on INTERFACE for target_precompile_headers()
dae9a808fe Help: Reorganise target_precompile_headers() docs for readability

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4045
2019-11-18 09:47:35 -05:00
Craig Scott cc88ede7a3 Help: Provide guidance on INTERFACE for target_precompile_headers()
Fixes: #19953
2019-11-14 00:49:31 +11:00
Brad King 88e0dca40d Merge topic 'objc-standard-docs' into release-3.16
665954fa8d ObjC: Document ObjC/ObjCXX standard properties / variables

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4031
2019-11-12 09:47:44 -05:00
Brad King 55f7df4961 Merge topic 'objc-standard-docs'
665954fa8d ObjC: Document ObjC/ObjCXX standard properties / variables

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4031
2019-11-12 09:47:44 -05:00
Brad King f90c351e60 Merge topic 'reference-IMPORTED_IMPLIB-more' into release-3.16
2944bf46d5 Help: Reference IMPORTED_IMPLIB from the IMPORTED_LOCATION documentation

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4034
2019-11-12 09:36:55 -05:00
Brad King df3baee8ff Merge topic 'reference-IMPORTED_IMPLIB-more'
2944bf46d5 Help: Reference IMPORTED_IMPLIB from the IMPORTED_LOCATION documentation

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4034
2019-11-12 09:36:55 -05:00
Marc Aldorasi 2944bf46d5 Help: Reference IMPORTED_IMPLIB from the IMPORTED_LOCATION documentation
Issue: #16698
2019-11-11 11:26:30 -05:00
Cristian Adam 665954fa8d ObjC: Document ObjC/ObjCXX standard properties / variables
Fixes: #19919
2019-11-11 16:10:19 +01:00
Craig Scott b613eecfa0 Merge topic 'docs-UNITY_BUILD'
fcacd8ce8d Help: Improve readability and fix inaccuracies in unity build docs

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4019
2019-11-10 15:55:43 -05:00
Craig Scott fcacd8ce8d Help: Improve readability and fix inaccuracies in unity build docs 2019-11-09 19:48:34 +11:00
Brad King f7612a6668 Merge topic 'unity-include-generated'
7ddf462304 Unity build: Include GENERATED files into unity build

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Julien Schueller <schueller@phimeca.com>
Merge-request: !4001
2019-11-07 10:26:50 -05:00
Cristian Adam 7ddf462304 Unity build: Include GENERATED files into unity build
There is no reason to skip the generated files, in case of problems
one can use the SKIP_UNITY_BUILD_INCLUSION property.

Fixes: #19925
2019-11-06 11:47:15 -05:00
Brad King ce7408514c Merge topic 'install-name-dir-genex'
a0e2e0ca97 Help: Add documentation and release notes for INSTALL_NAME_DIR genex
deeab72aae Tests: Add tests for INSTALL_NAME_DIR
3c85f11fed INSTALL_NAME_DIR: Add support for generator expressions
2ec1156b80 Refactor: Generalize cmExportInstallFileGenerator::ReplaceInstallPrefix()

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3989
2019-11-06 09:32:22 -05:00
Brad King 20fdf9a92b Merge topic 'docs-INSTALL_REMOVE_ENVIRONMENT_PATH'
dd05ef429a Help: Fix inaccuracies in INSTALL_REMOVE_ENVIRONMENT_RPATH docs
ac8de0dbcf RPATH: Remove stray indent in generated file(RPATH_CHANGE) command

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3985
2019-11-05 11:21:25 -05:00
Kyle Edwards a0e2e0ca97 Help: Add documentation and release notes for INSTALL_NAME_DIR genex 2019-11-04 19:02:16 -05:00
Craig Scott dd05ef429a Help: Fix inaccuracies in INSTALL_REMOVE_ENVIRONMENT_RPATH docs
The previous docs assumed one had to set INSTALL_RPATH for
this target property to have an effect, but the actual condition is
only that the install rpath is different to the build rpath. Even if
the install rpath is empty, it is possible that CMake will rewrite
the rpath during install because the build rpath could be
non-empty.
2019-11-04 17:02:57 +11:00
Charly Mourglia 89ff3ee779 VS: Add VS_DOTNET_DOCUMENTATION_FILE property
Add a `VS_DOTNET_DOCUMENTATION_FILE` target property to tell VS
generators to add a `DocumentationFile` setting in `.csproj` files.

Fixes: #19784
2019-10-15 11:44:55 -04:00
Brad King 13c8dbd5a6 Help: Document CMAKE_UNITY_BUILD/CMAKE_EXPORT_COMPILE_COMMANDS limitation
These two options currently do not work well together.  Mention this
limitation in the documentation.

Issue: #19826
2019-10-11 08:05:59 -04:00
Brad King 1d9155eb93 Help: Improve UNITY_BUILD documentation formatting 2019-10-11 08:03:29 -04:00
Brad King 0c5f78478e Merge topic 'xcode-debug-document-versioning'
67200c37b0 xcode: Add XCODE_SCHEME_DEBUG_DOCUMENT_VERSIONING property

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3876
2019-10-02 07:51:06 -04:00
Gregor Jasny 67200c37b0 xcode: Add XCODE_SCHEME_DEBUG_DOCUMENT_VERSIONING property 2019-10-01 23:02:35 +02:00
Corentin Plouet ab06de68c5 Help: fixed typos in PCH / Unity Build doc
+ typos in source code
2019-10-01 05:33:50 +10:00
Brad King dce58afd30 Merge branch 'backport-3.15-fix-EXCLUDE_FROM_ALL-subdir-all'
Resolve conflicts with changes since the 3.15 series:

* Convert `cmSystemTools::IsOn` => `cmIsOn`.
* Move one "EXCLUDE_FROM_ALL" target property logic fix to
  its new location in `cmMakefile::AddNewUtilityTarget`.
2019-09-30 09:34:57 -04:00
Brad King 05d7ca14e9 Merge branch 'backport-3.14-fix-EXCLUDE_FROM_ALL-subdir-all' 2019-09-30 09:19:21 -04:00
Brad King b3b1c7bf3a Restore "all" target in subdirectories marked EXCLUDE_FROM_ALL
The "all" target in each directory is supposed to have targets from that
directory even if the directory itself is marked `EXCLUDE_FROM_ALL` in
its parent.  This was broken by commit dc6888573d (Pass EXCLUDE_FROM_ALL
from directory to targets, 2019-01-15, v3.14.0-rc1~83^2) which made the
participation of a target in "all" independent of context.  Revert much
of the logic change from that commit to restore the old behavior.  Then
re-implement the behavior intended by the commit to keep its test
working.  Extend the test to cover the old behavior too.

Fixes: #19753
2019-09-30 09:18:20 -04:00
Brad King 9c31d83aa2 Merge topic 'autogen_path_prefix'
cc0900d9cd Help: Add release notes for AUTOMOC_PATH_PREFIX
692d8e3492 Help: Add documentation for AUTOMOC_PATH_PREFIX
1933ade9f1 Tests: At QtAutogen.MocIncludeSymlink test
706d9738a6 Tests: Merge QtAutogen.MocIncludeStrict and MocIncludeRelaxed
d018d27c10 Autogen: Add moc path prefix generation (AUTOMOC_PATH_PREFIX)
77983c8147 Autogen: Add IsHeader flag to SourceFileT class
f9e5441eb4 Autogen: Abbreviate file paths in messages
51676cf655 Autogen: Split JobEvalCacheT job into separate moc and uic jobs
...

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3818
2019-09-19 11:19:52 -04:00
Sebastian Holtermann 692d8e3492 Help: Add documentation for AUTOMOC_PATH_PREFIX 2019-09-18 11:48:23 -04:00
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
Cristian Adam 7114c141e2 Unity build: Add support for Ninja and Makefile generators 2019-08-29 16:44:09 +02:00
Brad King fa36e2151d Merge topic 'precompile-headers'
8da78d4efe Precompile headers: Update documentation
5772930164 Precompile headers: Add unit tests
519606704e Precompile headers: Add support for Visual Studio generators
28be170fbc Precompile headers: Add support for Xcode generator
b8626261e9 Precompile headers: Add methods to generate PCH sources
375d01c680 PCH: add example/test
9b6797e71d PCH: add target_precompile_headers command
0467a2f91b PCH: add PRECOMPILE_HEADERS to special properties

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Daniel Pfeifer <daniel@pfeifer-mail.de>
Acked-by: Ivan171 <heavenandhell171@gmail.com>
Acked-by: Stanislav Ershov <digital.stream.of.mind@gmail.com>
Acked-by: Steve Mokris <smokris@softpixel.com>
Acked-by: Evgeniy Dushistov <dushistov@mail.ru>
Acked-by: Danila Malyutin <flashmozzg@gmail.com>
Acked-by: Viktor Kirilov <vik.kirilov@gmail.com>
Acked-by: Lucas Zhao <zhaopf6@163.com>
Merge-request: !3553
2019-08-29 09:38:21 -04:00
Brad King 3e93b2fa66 Merge topic 'vs-ConfigurationType-genex'
8909a450a6 VS: Add support for generator expressions to VS_CONFIGURATION_TYPE

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3746
2019-08-28 11:53:12 -04:00
Cristian Adam 8da78d4efe Precompile headers: Update documentation 2019-08-28 11:47:51 -04:00
Saleem Abdulrasool 369c48ee43 Swift: honour -swift-version in Ninja generator
Swift has supported `CMAKE_Swift_LANGUAGE_VERSION` and
`Swift_LANGUAGE_VERSION` but didn't apply that to Ninja generated
targets.  Consider the property when calculating the flags.
2019-08-26 11:38:40 -04:00
Daniel Eiband 8909a450a6 VS: Add support for generator expressions to VS_CONFIGURATION_TYPE
Generator expressions in target property VS_CONFIGURATION_TYPE might be used to
set the ConfigurationType to Utility for certain configurations to not build
the target while still linking to the target in other configurations.

Fixes: #19613
2019-08-26 15:22:43 +02:00
Robert Maynard a233e4e7d9 CUDA: Compilers can now state they don't require a device linking step 2019-08-06 15:44:15 -04:00
Jiang Yue bd2793b6e9 Help: Add documentation for INSTALL_REMOVE_ENVIROMENT_RPATH 2019-07-25 12:30:24 -04:00
Brad King dcdeade5ee Merge topic 'msvc-runtime-library-doc'
282d9f3168 MSVC: Document behavior when MSVC_RUNTIME_LIBRARY is not set

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3573
2019-07-19 11:57:10 -04:00
Brad King 282d9f3168 MSVC: Document behavior when MSVC_RUNTIME_LIBRARY is not set
By default `CMAKE_MSVC_RUNTIME_LIBRARY` is not set.  Document the
default runtime library selection in that case.  We already test it.
2019-07-19 11:17:32 -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