summaryrefslogtreecommitdiffstats
path: root/Help/manual/cmake-buildsystem.7.rst
Commit message (Collapse)AuthorAgeFilesLines
* add_compile_definitions: add new commandMarc Chevrier2018-04-201-1/+1
| | | | | | | This command manages preprocessor definitions at directory level and supports generator expressions. Fixes: #15374
* Merge topic 'update-buildsystem-docs'Brad King2018-03-121-6/+5
|\ | | | | | | | | | | | | 78756429ab Help: Adapt cmake-buildsystem(7) to new IMPORTED targets features Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1839
| * Help: Adapt cmake-buildsystem(7) to new IMPORTED targets featuresKai Wolf2018-03-121-6/+5
| | | | | | | | | | | | | | Since commit v3.11.0-rc1~433^2~2 (Teach target_* commands to set INTERFACE properties of IMPORTED targets, 2017-09-18) it is now possible to use the customary `target_*` commands for adjusting the settings of an IMPORTED target. Update documentation accordingly.
* | Help: Document linking behavior of OBJECT librariesBrad King2018-03-011-16/+25
|/ | | | | Inspired-by: Deniz Bahadir <dbahadir@benocs.com> Issue: #14778
* Help: Clarify documentation of NO_SYSTEM_FROM_IMPORTEDBrad King2017-10-131-1/+2
| | | | | | | This property is meant to be set on the consumers of imported targets, not the imported targets themselves. Fixes: #17348
* Do not initialize NO_SYSTEM_FROM_IMPORTED on INTERFACE librariesBrad King2017-10-131-1/+0
| | | | | | | | | | | | | | The change in commit v3.8.0-rc1~276^2 (Allow NO_SYSTEM_FROM_IMPORTED on imported INTERFACE libraries, 2016-11-21) was incorrect. The property is not meant to be set on imported targets at all. It is meant to be set on their consumers that compile sources. Since INTERFACE libraries have no sources to compile, the property is not needed on them. Revert most of that change. Unfortunately we must still tolerate project code setting NO_SYSTEM_FROM_IMPORTED on INTERFACE libraries because they were allowed by CMake 3.8 and 3.9. Issue: #17348
* Help: Fix example in cmake-buildsystem(7) manualSebastian Nagel2017-08-021-1/+1
| | | | | In the example code `serialization` is a PRIVATE dependency of `archiveExtras` and not of `archive`. Fix the corresponding prose.
* Allow OBJECT libraries to be installed, exported, and importedRobert Maynard2017-04-181-3/+3
| | | | | | | | Teach install() and export() to handle the actual object files. Disallow this on Xcode with multiple architectures because it still cannot be cleanly supported there. Co-Author: Brad King <brad.king@kitware.com>
* Genex: Allow TARGET_OBJECTS to be used everywhereRobert Maynard2017-04-181-0/+6
| | | | | | | | | Previously the `TARGET_OBJECTS` generator expression was limited only to use in a buildsystem context so that Xcode's placeholders in object file paths can be evaluated. Lift this restriction so that the expression can at least be used in most settings. Co-Author: Brad King <brad.king@kitware.com>
* Allow NO_SYSTEM_FROM_IMPORTED on imported INTERFACE librariesBrad King2016-11-211-0/+1
| | | | | | | | | Imported INTERFACE libraries can specify include directories via `INTERFACE_INCLUDE_DIRECTORIES` so the default behavior of treating them as system include directories applies. Allow users to turn this off by setting `NO_SYSTEM_FROM_IMPORTED` on such targets. Closes: #16443
* Help: Mention IMPORTED_LIBNAME_* in interface library property whitelistBrad King2016-11-211-0/+1
| | | | | | This property was added by commit 09cda9d5 (Allow imported INTERFACE libraries to specify a link library name, 2016-11-03) and is in the implementation's whitelist. Add it to the documentation too.
* Fix typos.Felix Geyer2016-07-101-1/+1
|
* Fix spelling typos in comments and documentation (#16037)Felix Geyer2016-03-291-1/+1
| | | | | The Debian package checker tool (lintian) detected several typos in CMake.
* Help: Fix mistake in cmake-buildsystem(7) examplePaul Wilkinson2016-02-081-1/+1
| | | | | | The COMPATIBLE_INTERFACE_NUMBER_MAX example now sets INTERFACE_CONTAINER_SIZE_REQUIRED on lib1Version2 and lib1Version3. Previously set it on lib1Version2 twice and never on lib1Version3.
* Help: Update documentation to reflect support for iOSBartosz Kosiorek2015-11-231-3/+6
| | | | Many of our interfaces documented for OS X also work for iOS.
* Help: Document that SHARED libraries must export a symbol (#15775)James Johnston2015-10-081-1/+6
| | | | | | | CMake assumes that a SHARED library compiled on Windows will export a LIB file. This is not actually the case on Visual C++ if the library does not export any symbols, and causes incremental builds to break if the user specifies SHARED anyway. (Users should use MODULE libraries instead.)
* Help: Document Apple Framework creation with an example (#15651)Brad King2015-07-141-0/+16
|
* Help: Fix a typo in cmake-buildsystem(7) manualErik Sjölund2015-06-221-1/+1
| | | | | Add the property name INTERFACE_INCLUDE_DIRECTORIES that was missing from a set_property command.
* Help: Fix typo in cmake-buildsystem(7) manualBrad King2015-05-191-2/+2
|
* Help: Revise buildsystem artifact file type documentation (#15539)Brad King2015-04-291-2/+69
| | | | | | Add sections to the cmake-buildsystem(7) manual and cross-reference them with relevant variables and target properties. This avoids duplicating the information and allows it to be more detailed.
* Help: Reorganize and refine discussion of relocatable packagesBrad King2015-04-031-0/+5
| | | | | | | | | | | | | | | | | | | | | | | Re-organize the content added to the cmake-packages(7) manual by * commit v3.0.0-rc1~184^2 (Help: Document export(EXPORT) in the cmake-packages manual, 2013-12-23), * commit v3.0.0-rc1~154^2~1 (Help: Add notes about relocatability of config-file packages, 2014-01-07), and * commit v3.2.0-rc1~345^2 (Help: Warn that paths should not be used in INTERFACE_ build properties, 2014-11-22). These commits broke the natural flow of the original manual and made wording after the new content make less sense. Move the content into new subsections to restore the flow of the original manual and to make explicitly the purpose of the new content. Shorten the relocatable usage requirement "warnings". Refer to the new cmake-packages(7) manual subsection to reduce duplication. Also clarify the distinction between paths to library dependencies and paths to their header files.
* Help: Warn that paths should not be used in INTERFACE_ build properties.Stephen Kelly2014-11-251-0/+4
|
* Help: Fix typo in genex in documentation.Stephen Kelly2014-11-221-1/+1
|
* Help: Drop TOC from latex manualsBrad King2014-11-061-1/+1
| | | | A latex document can have its own TOC.
* Allow INTERFACE_SOURCES to specify $<TARGET_OBJECTS> (#14970)Brad King2014-07-141-0/+6
| | | | | | | | | | | | Fix cmTarget::GetSourceFiles to set EvaluateForBuildsystem on the $<TARGET_PROPERTY:...,INTERFACE_SOURCES> generator expression so that the $<TARGET_OBJECTS> generator expression is allowed within an INTERFACE_SOURCES value. Extend the InterfaceLibrary test to cover this case. Extend the RunCMake.TargetObjects test to cover failure of $<TARGET_OBJECTS> when used through $<TARGET_PROPERTY:...,INTERFACE_SOURCES> in a non-buildsystem context.
* Help: Organize Binary Targets section of cmake-buildsystem.7Brad King2014-06-121-7/+26
| | | | | | Add a subsection for Binary Executables just before Binary Library Types. Divide the library section into Normal Libraries and Object Libraries.
* Help: Mention INTERFACE_SOURCES as settable for INTERFACE libsBrad King2014-06-121-2/+3
| | | | | | | The add_library(INTERFACE) and Interface Libraries documentation list all the INTERFACE_* properties and target_* commands that can be used to define the interface. Add INTERFACE_SOURCES and target_sources() to these lists for completeness.
* Merge topic 'doc-include-dir-props'Brad King2014-06-031-3/+3
|\ | | | | | | | | 907e422b Help: Explain build/install-tree include dirs in more places (#14946)
| * Help: Explain build/install-tree include dirs in more places (#14946)Brad King2014-06-021-3/+3
| | | | | | | | | | | | | | | | | | | | | | Explain how to use $<BUILD_INTERFACE> and $<INSTALL_INTERFACE> directly in the documentation of the target_include_directories command and INTERFACE_INCLUDE_DIRECTORIES target property. Otherwise readers need to notice the link to the cmake-buildsystem(7) manual and find the example in that to understand the need for these expressions. Also fix the explanation in cmake-buildsystem(7) to not claim that relative paths may be used inside a BUILD_INTERFACE expression.
| * Help: Add code example for INSTALL_INTERFACE to cmake-buildsystem.Stephen Kelly2014-06-021-1/+11
| |
* | Help: Use "^^^^" for subsubsection headersBrad King2014-06-021-1/+1
| | | | | | | | | | | | This is the convention suggested in the Sphinx documentation and is already used in several other places in the CMake documentation. Update a few places where we were using other characters.
* | Help: Add code example for INSTALL_INTERFACE to cmake-buildsystem.Stephen Kelly2014-04-171-1/+11
|/
* Help: List the whitelist of properties for INTERFACE libraries.Stephen Kelly2014-02-261-0/+10
|
* Help: Document the purpose of usage requirements clearly.Stephen Kelly2014-02-181-0/+6
| | | | | | | | | | People will be tempted to put things there for convenience, thereby causing conflicts similar to http://thread.gmane.org/gmane.comp.compilers.clang.devel/35162/focus=35169 where it is conceivable that the LLVM developers could put a flag on a target for convenience, which would cause conflicts for some downstreams.
* Help: Don't list debuggable properties in cmake-buildsystem manual.Stephen Kelly2014-02-101-4/+2
|
* Help: Add additional hyperlink targetsStephen Kelly2014-02-091-0/+2
|
* Help: Document SYSTEM treatment of IMPORTED target INTERFACE_INCLUDE_DIRSStephen Kelly2014-02-091-0/+8
| | | | Document how the behavior can be controlled.
* Help: Note that the compatible interface properties must not intersect.Stephen Kelly2014-02-061-0/+4
|
* Help: Specify how to order and modify transitively set property values.Stephen Kelly2014-02-061-1/+21
|
* Help: Add hyperlink targets to some manual sections.Stephen Kelly2014-02-061-0/+9
| | | | | These can be refered to from the command documentation and other relevant locations.
* Help: Fix typosStephen Kelly2014-02-061-1/+1
| | | | | | | | Psuedo -> Pseudo behaviour -> behavior CMake uses American spelling.
* Help: Fix link to MAP_IMPORTED_CONFIG_<CONFIG>Stephen Kelly2014-01-081-1/+1
|
* Help: Document the target properties exported to IMPORTED targets.Stephen Kelly2014-01-071-0/+2
|
* Help: Add cmake-buildsystem.7 manualStephen Kelly2014-01-061-0/+794
Describe how to define a buildsystem of binary targets, how to express dependencies between them, how to add build specifications, how to specify usage requirements, transitive and compatible propagation and the various pseudo targets.