| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
Property names are always generated by CMake and should never be NULL.
|
|
|
|
|
| |
The actual list of files will become config dependent in a follow-up
commit.
|
|
|
|
|
|
|
|
|
|
| |
Implement a Visitor to hold the sequence of source file tests
for populating outputs. Use VS 6 and 7 workaround from Brad
King for lack of partial template specialization and function
template specialization capabilities.
This will make it possible to use context dependent generator
expressions to determine the sources of a target.
|
| |
|
|
|
|
|
|
|
| |
The callers already skip non-targets, so unify the target search.
Change supporting functions to accept a container of targets instead
of strings where possible.
|
| |
|
|
|
|
| |
An an assert to ensure this.
|
|
|
|
|
|
|
|
| |
Most callers already have a std::string, on which they called c_str() to pass it
into these methods, which internally converted it back to std::string. Pass a
std::string directly to these methods now, avoiding all these conversions.
Those methods that only pass in a const char* will get the conversion to
std::string now only once.
|
| |
|
|
|
|
|
| |
In a future patch, this will also be populated with extra
sources from the linked dependencies.
|
|
|
|
|
| |
These methods and others will be able to get a config parameter
later to implement the INTERFACE_SOURCES feature.
|
|
|
|
|
| |
This handling was lost in commit faedd2be (cmTarget: Fix system include
annotation propagation., 2014-01-01).
|
|
|
|
|
|
|
|
|
|
|
|
| |
Direct users of IMPORTED targets treat INTERFACE_INCLUDE_DIRECTORIES
as SYSTEM, after commit a63fcbcb (Always consider includes from IMPORTED
targets to be SYSTEM., 2013-08-29). It was intended that transitive
use of an IMPORTED target would have the same behavior, but that
did not work. The implementation processed only direct dependencies
in cmTarget::FinalizeSystemIncludeDirectories.
Implement transitive evaluation of dependencies by traversing the
link interface of each target in the link implementation.
|
| |
|
|
|
|
|
| |
The output directory must be unique, but the source directory
of an add_subdirectory call may be re-used.
|
|
|
|
|
|
|
|
|
|
| |
Define a custom ordering functor to deterministically and strictly
order the cmTarget* key. Otherwise the order would be dependent on
runtime pointer values, which breaks assumptions of some generators.
The functor orders first by target name, and then by directory. Multiple
global targets may have the same name, such as edit_cache, but their
directory differentiates them.
|
| |
|
| |
|
|\
| |
| |
| |
| |
| | |
07f5788 Move TraceDependencies to cmGeneratorTarget.
fa03777 Do not populate SourceEntries in AddSourceFile.
|
| | |
|
|\ \
| |/
| |
| |
| |
| |
| | |
638843a Remove the Location member from cmTarget.
90ef1cf Move GenerateTargetManifest to cmGeneratorTarget.
25f1df3 Split CreateGeneratorTargets into two methods.
|
| | |
|
| |
| |
| |
| |
| | |
As the generate-time-related API is moving to cmGeneratorTarget, almost
all of generation code needs to be able to access instances of it.
|
|/ |
|
|
|
|
|
| |
The input dir being tested is normalized, so ensure that the entries
in the vector are normalized too (eg no trailing slash).
|
|
|
|
|
|
|
|
| |
Unlike other target properties, this does not have a corresponding
non-INTERFACE variant.
This allows propagation of system attribute on include directories
from link dependents.
|
|
|
|
|
|
|
| |
Entries from the cmMakefile are processed and maintained similarly
to other include directories. The include_directories(SYSTEM)
signature affects all following targets, and all prior targets
in the same makefile.
|
|
|
|
|
| |
The implementation can be modified later so that system includes
can be determined on a per-target basis.
|
|
|
|
|
|
|
| |
Add support to maintain designer functionality for Visual Studio C++
Windows Forms projects. Also add a test project showing how to use
the CMakeLists.txt file and, when successfully configured, will allow
use of the designer for the included form.
|
| |
|
|
|
|
|
| |
The struct can keep track of where the include came from, which gives
us proper backtraces.
|
|
|
|
|
| |
The compiled generator expressions need to outlive the creating
type. For the same reason, store the input string in a std::string.
|
|
|
|
|
|
|
| |
As we can't move all linking related code from cmTarget, it makes
sense to reverse the move in some cases.
This reverts commit 4f5384e75c6a00d110d3fa3f555a3f6a4f31bb46.
|
|
|
|
|
|
|
|
|
|
|
| |
Following from the discussion here:
http://thread.gmane.org/gmane.comp.programming.tools.cmake.devel/3615/focus=5170
(Re: Generator expressisons in target properties, 26 Oct 12:10)
we can't split cmTarget API for linking into cmGeneratorTarget. In
the future we will probably also need to move the include and compile
definitions API back to cmTarget so that it can be used by export().
|
|
|
|
|
|
|
|
| |
Commit 08cb4fa4 (Process generator expressions in the
INCLUDE_DIRECTORIES property, 2012-09-18) contained an incorrect
assumption that CMAKE_BUILD_TYPE was set on the makefile for each
generated configuration in multi-config generators. Fix that by making
the GetIncludeDirectories API depend on the config.
|
| |
|
|
|
|
|
| |
This use of generator expressions, like all others to come which operate
on target properties, must initalize the dag checker.
|
|
|
|
| |
It is now easier to add generator expressions.
|
| |
|
|
|
|
| |
Duplicate some of the logic from the include_directories command.
|
|
|
|
|
|
|
|
| |
This reverts commit 987e12e2f962b6e9ed9f15f8ff486512911b744e.
GenerateTargetManifest is called by the global generator before it
creates the generator targets, so we can't move it to cmGeneratorTarget
yet.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
This API is the most commonly required in the following patches.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Header files listed in a target's PUBLIC_HEADER or similar properties
are marked as OS X Framework content. Refactoring performed by
commit 11d9b211 (Add cmGeneratorTarget to represent a target during generation, 2012-03-07)
commit 45c2f932 (Simplify cmMakefileTargetGenerator using cmGeneratorTarget, 2012-03-07)
commit 328c0f65 (Simplify cmVisualStudio10TargetGenerator source classification, 2012-03-19)
and related commits accidentally removed such files from treatment as
normal header files by the VS generator (generators other than Makefiles
and Xcode). Move handling of such files out of cmGeneratorTarget and
back to cmMakefileTargetGenerator. The central cmGeneratorTarget
classification will always treat them as header or extra sources.
|