summaryrefslogtreecommitdiffstats
path: root/Source/cmTargetLinkLibrariesCommand.h
Commit message (Collapse)AuthorAgeFilesLines
* target_link_libraries: Simplify implementation and add comments.Deniz Bahadir2017-11-301-0/+3
| | | | | | | | The implementation of `target_link_libraries` did grow over the years when new features where added. This commit cleans up the implementation and adds comments to better document its intention. The behavior of `target_link_libraries` itself is left untouched.
* Use C++11 override instead of CM_OVERRIDEBrad King2017-09-151-2/+2
| | | | | | | | We now require C++11 support including `override`. Drop use of the old compatibility macro. Convert references as follows: git grep -l CM_OVERRIDE -- '*.h' '*.hxx' '*.cxx' | xargs sed -i 's/CM_OVERRIDE/override/g'
* IWYU: Mark cmConfigure.h with pragma: keepDaniel Pfeifer2017-08-261-1/+1
| | | | Also remove `#include "cmConfigure.h"` from most source files.
* cmCommand: remove unused methods from interface and all implementationsDaniel Pfeifer2017-05-111-5/+0
|
* Use quotes for non-system includesDaniel Pfeifer2017-04-111-1/+1
| | | | | | | | | | | | | Automate with: git grep -l '#include <cm_' -- Source \ | xargs sed -i 's/#include <\(cm_.*\)>/#include "\1"/g' git grep -l '#include <cmsys/' -- Source \ | xargs sed -i 's/#include <\(cmsys\/.*\)>/#include "\1"/g' git grep -l '#include <cm[A-Z]' -- Source \ | xargs sed -i 's/#include <\(cm[A-Z].*\)>/#include "\1"/g'
* cmConfigure: Ensure separate include block in headersDaniel Pfeifer2017-04-111-0/+1
| | | | | | | | | | | Make sure that `#include <cmConfigure.h>` is followed by an empty line in header files. This is necessary to make sure that changing <> to "" does not affect the include ordering of clang-format. Automate with: git grep -l '#include <cmConfigure.h>' | grep -v '.cxx$' \ | xargs sed -i '/#include <cmConfigure.h>/ { N; N; s/\n\{1,2\}/\n\n/ }'
* Include necessary headers in commandsDaniel Pfeifer2016-10-261-0/+8
|
* Make cmCommand not inherit from cmObjectDaniel Pfeifer2016-10-221-2/+0
|
* Simplify CMake per-source license noticesBrad King2016-09-271-11/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | Per-source copyright/license notice headers that spell out copyright holder names and years are hard to maintain and often out-of-date or plain wrong. Precise contributor information is already maintained automatically by the version control tool. Ultimately it is the receiver of a file who is responsible for determining its licensing status, and per-source notices are merely a convenience. Therefore it is simpler and more accurate for each source to have a generic notice of the license name and references to more detailed information on copyright holders and full license terms. Our `Copyright.txt` file now contains a list of Contributors whose names appeared source-level copyright notices. It also references version control history for more precise information. Therefore we no longer need to spell out the list of Contributors in each source file notice. Replace CMake per-source copyright/license notice headers with a short description of the license and links to `Copyright.txt` and online information available from "https://cmake.org/licensing". The online URL also handles cases of modules being copied out of our source into other projects, so we can drop our notices about replacing links with full license text. Run the `Utilities/Scripts/filter-notices.bash` script to perform the majority of the replacements mechanically. Manually fix up shebang lines and trailing newlines in a few files. Manually update the notices in a few files that the script does not handle.
* mark functions with CM_OVERRIDEDaniel Pfeifer2016-06-271-4/+4
|
* Revise C++ coding style using clang-formatKitware Robot2016-05-161-9/+6
| | | | | | | | | | | | | Run the `Utilities/Scripts/clang-format.bash` script to update all our C++ code to a new style defined by `.clang-format`. Use `clang-format` version 3.8. * If you reached this commit for a line in `git blame`, re-run the blame operation starting at the parent of this commit to see older history for the content. * See the parent commit for instructions to rebase a change across this style transition commit.
* cmTarget: Move link type enum out.Stephen Kelly2015-10-141-1/+1
| | | | Remove a reason for generate time code to depend on the cmTarget header/type.
* stringapi: Command namesBen Boeckel2014-03-081-1/+1
|
* cmTargetLinkLibrariesCommand: Use a string argumentBen Boeckel2014-03-081-1/+1
|
* Drop builtin command documentationBrad King2013-10-161-146/+0
| | | | | Drop all GetTerseDocumentation and GetFullDocumentation methods from commands. The command documentation is now in Help/command/*.rst files.
* target_link_libraries: Add PUBLIC/PRIVATE/INTERFACE keyword signatureStephen Kelly2013-07-241-6/+22
| | | | | | | Add a new signature to help populate INTERFACE_LINK_LIBRARIES and LINK_LIBRARIES cleanly in a single call. Add policy CMP0023 to control whether the keyword signatures can be mixed with uses of the plain signatures on the same target.
* Use linked frameworks as a source of include directories.Stephen Kelly2013-07-241-0/+5
|
* TLL: Don't populate old link interface if CMP0022 is NEW.Stephen Kelly2013-07-081-8/+15
| | | | | | | | | | | | | Always populate the INTERFACE_LINK_LIBRARIES for interface entries. Don't populate the old interface properties matching (IMPORTED_)?LINK_INTERFACE_LIBRARIES(_<CONFIG>)? if CMP0022 is NEW. Because the INTERFACE_LINK_LIBRARIES property is now populated by the target_link_libraries when operating on a static library, make an equivalent change which populates the property with the same value when the old link_libraries() command is used. This silences the policy warning in that case.
* target_link_libraries: Update usage requirements documentationBrad King2013-04-301-8/+11
| | | | | | Re-word the documentation to make clear that CMake integrates usage requirements during generation and not synchronously during configuration or execution of target_link_libraries.
* Add includes and compile definitions with target_link_libraries.Stephen Kelly2013-01-311-0/+9
| | | | | | | | This establishes that linking is used to propagate usage-requirements between targets in CMake code. The use of the target_link_libraries command as the API for this is chosen because introducing a new command would introduce confusion due to multiple commands which differ only in a subtle way.
* target_link_libraries: Document that new sigs privatize old (#13876)Brad King2013-01-241-1/+3
| | | | | | | | | | | | | | Explain in the documentation for the legacy signature target_link_libraries(foo bar) that the other signatures like target_link_libraries(foo LINK_INTERFACE_LIBRARIES ...) target_link_libraries(foo LINK_PRIVATE ...) will set the LINK_INTERFACE_LIBRARIES target property and therefore make libraries specified only by the legacy signature private.
* Don't include generator expressions in old-style link handling.Stephen Kelly2013-01-131-0/+7
| | | | | | | | | | Don't add generator expressions to variables which are used for CMP0003, CMP0004, and the old-style _LIB_DEPENDS content. They will not be evaluated when read anyway and would probably confuse the code reading them. This makes it legitimate to use target_link_libraries with generator expressions as arguments.
* Documentation: Correct typos and grammarAndreas Mohr2012-11-071-2/+2
|
* Document behavior of multiple target_link_libraries calls (#13113)Brad King2012-04-091-1/+2
| | | | State explicitly that multiple calls append (rather than replace).
* Add 'const' qualifier to some cmCommand membersYury G. Kudryashov2012-02-291-3/+3
| | | | | Use const_cast for the special case in cmFindBase where GetFullDocumentation calls GenerateDocumentation.
* target_link_libraries: Add missing space in documentationBrad King2011-11-221-2/+2
| | | | Change "thelink" to "the link".
* target_link_libraries: Add LINK_(PUBLIC|PRIVATE) optionsStephen Kelly2011-11-221-1/+20
| | | | | Makes it possible to specify the link dependencies and link interfaces in one command without repetition.
* target_link_libraries: Trim trailing whitespaceStephen Kelly2011-11-221-6/+6
|
* Document target_link_libraries target scope (#11058)Brad King2010-12-151-0/+4
| | | | | | | The target_link_libraries command requires its first argument to be a target in the current directory. Document this and update the error message to be more specific. While at it, format the error message with a call stack.
* Convert CMake to OSI-approved BSD LicenseBrad King2009-09-281-14/+9
| | | | | | | This converts the CMake license to a pure 3-clause OSI-approved BSD License. We drop the previous license clause requiring modified versions to be plainly marked. We also update the CMake copyright to cover the full development time range.
* ENH: Mention cycles in target_link_libraries docsBrad King2009-06-241-0/+22
| | | | | This documents CMake's support for cycles in the dependency graph of STATIC libraries.
* ENH: Clarify target_link_libraries docsBrad King2009-02-021-5/+7
| | | | | The target_link_libraries command supports flags as well as libraries. This makes the support explicit in the documentation.
* ENH: Allow a custom list of debug configurationsBrad King2008-09-041-4/+8
| | | | | | Create a DEBUG_CONFIGURATIONS global property as a way for projects to specify which configuration names are considered to be 'debug' configurations.
* ENH: Make link interface mode more distinctBrad King2008-08-181-2/+4
| | | | | | | | | Rename the recently added INTERFACE mode of the target_link_libraries() command to LINK_INTERFACE_LIBRARIES. This makes it much more distinct from a normal call to the command, and clearly states its connection to the property of the same name. Also require the option to appear immediately after the target name to make it a mode rather than an option.
* ENH: Simple specification of link interfacesBrad King2008-08-111-8/+38
| | | | | | | | Create an INTERFACE option to the target_link_libraries command to help set the LINK_INTERFACE_LIBRARIES and LINK_INTERFACE_LIBRARIES_DEBUG properties. This will help users specify link interfaces using variables from Find*.cmake modules that include the 'debug' and 'optimized' keywords.
* ENH: Tolerate repeated link library typesBrad King2008-08-071-0/+2
| | | | | | | | The "debug", "optimized", and "general" link library type specifier arguments to the target_link_library commands are sometimes repeated in user code due to variable expansion and other complications. Instead of silently accepting the duplicates and trying to link to a bogus library like "optimized.lib", warn and ignore the earlier specifiers.
* STYLE: Improve documentation of target_link_libraries command to make ↵Brad King2008-02-061-1/+4
| | | | target-level dependency explicit. See bug #6043.
* ENH: add return and break support to cmake, also change basic command ↵Ken Martin2008-01-231-1/+2
| | | | invocation signature to be able to return extra informaiton via the cmExecutionStatus class
* ENH: make commands lower case by defaultKen Martin2007-10-101-2/+2
|
* ENH: updated handling of debug and optimized target link librariesKen Martin2006-11-291-2/+3
|
* STYLE: some m_ to this-> cleanupKen Martin2006-03-151-1/+0
|
* BUG: Sweeping changes to cleanup computation of target names. This shouldBrad King2006-01-131-6/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | fix many bugs related to target names being computed inconsistently. - Centralized computation of a target's file name to a method in cmTarget. Now that global knowledge is always available the *_CMAKE_PATH cache variables are no longer needed. - Centralized computation of link library command lines and link directory search order. - Moved computation of link directories needed to link CMake targets to be after evaluation of linking dependencies. This also removed alot of duplicate code in which each version had its own bugs. This commit is surrounded by the tags CMake-TargetNameCentralization1-pre and CMake-TargetNameCentralization1-post so make the large set of changes easy to identify.
* ENH: Clarified documentation for LINK_LIBRARIES and TARGET_LINK_LIBRARIES.Brad King2004-03-251-1/+1
|
* removed redundent includesKen Martin2003-08-101-1/+0
|
* ENH: Report an error when ADD_LIBRARY and TARGET_LINK_LIBRARIES are in the ↵Andy Cedilnik2003-08-071-0/+8
| | | | wrong order and fix CMakeLists files to actually work
* ENH: Cleaned up documentation and formatted it for use by cmDocumentation.Brad King2003-02-141-6/+7
|
* ENH: Added reference to Copyright.txt. Removed old reference to ITK ↵Brad King2002-10-231-3/+3
| | | | copyright. Changed program name to CMake instead of Insight in source file header. Also removed tabs.
* ENH:Updated copyrightWill Schroeder2002-01-211-29/+5
|
* ENH: change InitialPass to take a const reference to the argument string, to ↵Bill Hoffman2001-09-201-1/+1
| | | | avoid changes to the file cache
* ENH: rename Invoke to InitialPassBill Hoffman2001-06-061-1/+1
|