summaryrefslogtreecommitdiffstats
path: root/Source/cmGeneratorTarget.h
Commit message (Collapse)AuthorAgeFilesLines
* cmGeneratorTarget: Improve GetCreateRuleVariable APIBrad King2014-05-211-3/+3
| | | | | Pass the language and configuration to the method so it can return the complete rule variable name.
* cmTarget: Make the source files depend on the config.Stephen Kelly2014-04-021-11/+21
| | | | | | | | | | | | | | | | | Disallow the use of config-specific source files with the Visual Studio and Xcode generators. They don't have any way to represent the condition currently. Use the same common-config API in cmQtAutoGenerators. While it accepts config-specific files, it doesn't have to support multiple configurations yet. Loop over the configs in cmTargetTraceDependencies and cmGlobalGenerator::WriteSummary and consume all source files. Loop over the configs in cmComputeTargetDepends and compute the object library dependencies for each config.
* cmGeneratorTarget: Compute target objects on demandStephen Kelly2014-04-021-2/+3
| | | | | | | | | | | | | | | | | | | | | Add a ComputeObjectMapping method to compute the object names. It takes mapping to populate as an out-parameter so that it can be extended in the future with parameters relevant to generator expression evaluation. Remove the supporting cmGeneratorTarget::AddObject method. It is no longer needed as the container member is populated directly. The ComputeObjectMapping method is called whenever objects are requested from the cmGeneratorTarget. Because the Xcode generator makes no such request, explicitly invoke the method from that generator so that the logic of checking for bad sources in object libraries is executed. In a follow-up, the UseObjectLibraries usage may be replaced by a true generator expression evaluator for TARGET_OBJECTS. That will require generators to use cmGeneratorTarget::GetExternalObjects which is not currently the case for Xcode and VS generators.
* cmGeneratorTarget: Compute consumed object libraries on demand.Stephen Kelly2014-04-021-3/+0
| | | | | | | Remove up-front object library computation from cmGlobalGenerator. Adjust tests for message coming from the generator expression evaluation.
* cmGeneratorTarget: Don't store ObjectSources for object libraries.Stephen Kelly2014-03-151-1/+0
| | | | Compute them on demand instead.
* cmGeneratorTarget: Constify cmSourceFile* in containers.Stephen Kelly2014-03-131-9/+9
| | | | | Some of them will be used with other APIs which require value_type to be cmSourceFile const*.
* cmGeneratorTarget: Make GetSourceDepends const.Stephen Kelly2014-03-131-2/+3
|
* cmGeneratorTarget: Constify the AddExplicitObjectName API.Stephen Kelly2014-03-131-1/+1
| | | | The storage is already const.
* cmGeneratorTarget: Constify the AddObject API.Stephen Kelly2014-03-131-1/+1
| | | | The storage is already const.
* stringapi: Pass configuration names as stringsBen Boeckel2014-03-081-4/+6
|
* stringapi: Use strings in target nameBen Boeckel2014-03-081-1/+1
|
* stringapi: Use strings for property namesBen Boeckel2014-03-081-2/+2
| | | | Property names are always generated by CMake and should never be NULL.
* cmGeneratorTarget: Classify sources on demand, not up front.Stephen Kelly2014-02-241-11/+6
| | | | | | | | | | 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.
* cmGeneratorTarget: Use a method to access the definition file.Stephen Kelly2014-02-241-1/+2
|
* cmTarget: Move SourceFileFlags to cmGeneratorTarget.Stephen Kelly2014-02-241-0/+29
|
* cmGeneratorTarget: Hold a const global generator.Stephen Kelly2014-01-121-1/+1
|
* cmTarget: Make GetSourceFiles populate an out-vector parameter.Stephen Kelly2014-01-091-1/+1
| | | | | In a future patch, this will also be populated with extra sources from the linked dependencies.
* cmGeneratorTarget: Add methods to access source file groups.Stephen Kelly2014-01-091-17/+28
| | | | | These methods and others will be able to get a config parameter later to implement the INTERFACE_SOURCES feature.
* Constify cmGeneratorTarget access.Stephen Kelly2013-12-111-1/+1
|
* Make the cmStrictTargetComparison operate on const cmTarget*.Stephen Kelly2013-12-041-1/+1
|
* Order cmGeneratorTargetsType elements deterministically.Stephen Kelly2013-11-221-1/+7
| | | | | | | | | | 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.
* cmGeneratorTarget: Make GetIncludeDirectories const.Stephen Kelly2013-11-191-1/+1
|
* cmGeneratorTarget: Make some accessors const.Stephen Kelly2013-11-031-10/+10
|
* Move TraceDependencies to cmGeneratorTarget.Stephen Kelly2013-10-301-0/+13
|
* Move GenerateTargetManifest to cmGeneratorTarget.Stephen Kelly2013-10-271-0/+3
|
* Split CreateGeneratorTargets into two methods.Stephen Kelly2013-10-271-1/+1
| | | | | As the generate-time-related API is moving to cmGeneratorTarget, almost all of generation code needs to be able to access instances of it.
* Add the INTERFACE_SYSTEM_INCLUDE_DIRECTORIES target property.Stephen Kelly2013-07-161-0/+2
| | | | | | | | 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.
* Add Target API to determine if an include is a system include.Stephen Kelly2013-07-021-0/+2
| | | | | The implementation can be modified later so that system includes can be determined on a per-target basis.
* VS: Add Windows Forms SupportJohn Farrier2013-05-161-0/+4
| | | | | | | 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.
* Move GetCompileDefinitions to cmTarget.Stephen Kelly2013-01-291-2/+0
|
* Revert "Move GetLinkInformation to cmGeneratorTarget"Stephen Kelly2012-11-211-6/+0
| | | | | | | 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.
* Fix config-specific INCLUDE_DIRECTORIES in multi-config generatorsStephen Kelly2012-10-171-1/+1
| | | | | | | | 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.
* Return a std::string from GetCompileDefinitions.Stephen Kelly2012-09-211-1/+1
|
* Revert "Move GenerateTargetManifest to cmGeneratorTarget."Stephen Kelly2012-09-201-3/+0
| | | | | | | | 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.
* Add a wrapper for accessing config-specific compile-definitions.Stephen Kelly2012-09-191-0/+2
|
* Move GetIncludeDirectories to cmGeneratorTarget.Stephen Kelly2012-09-191-0/+3
|
* Move GetCreateRuleVariable to cmGeneratorTarget.Stephen Kelly2012-09-191-0/+5
|
* Make cmLocalGenerator::AddArchitectureFlags take a cmGeneratorTarget.Stephen Kelly2012-09-191-0/+2
|
* Move GetLinkInformation to cmGeneratorTargetStephen Kelly2012-09-191-0/+6
|
* Move GenerateTargetManifest to cmGeneratorTarget.Stephen Kelly2012-09-191-0/+3
|
* Store cmGeneratorTargets with the makefile.Stephen Kelly2012-09-191-0/+2
|
* Add more forwarding API to cmGeneratorTarget.Stephen Kelly2012-09-191-0/+6
| | | | This API is the most commonly required in the following patches.
* VS: Restore header files marked as OS X Framework content (#13196)Brad King2012-05-071-1/+0
| | | | | | | | | | | | | | | 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.
* Simplify cmVisualStudio10TargetGenerator source classificationBrad King2012-03-191-0/+1
| | | | | | Combine WriteCLSources and WriteObjSources into a single method. Use the cmGeneratorTarget source classification to simplify tool selection for each source file. Extend the classification to handle .idl files.
* Add $<TARGET_OBJECTS:...> expression to use an object libraryBrad King2012-03-161-0/+5
| | | | | | For now do not allow an OBJECT library to reference other object libraries. Teach cmTarget::ComputeLinkImplementation to include the languages of object libraries used by a target.
* Pre-compute and store target object directory in cmGeneratorTargetBrad King2012-03-121-0/+5
| | | | | | | Add cmGeneratorTarget::ObjectDirectory member to hold the value. In ComputeTargetObjects set the value to the full path to the target object directory including any necessary placeholder for the configuration name.
* Pre-compute object file names before VS project generationBrad King2012-03-091-0/+1
| | | | | | Implement cmGlobalGenerator::ComputeTargetObjects in the VS generator to pre-compute all the object file names. Use the results during generation instead of re-computing it later.
* Pre-compute object file names before Makefile generationBrad King2012-03-091-0/+2
| | | | | | | Add a virtual cmGlobalGenerator::ComputeTargetObjects method invoked during cmGeneratorTarget construction. Implement it in the Makefile generator to pre-compute all object file names for each target. Use the results during generation instead of re-computing it later.
* Add cmGeneratorTarget to represent a target during generationBrad King2012-03-091-0/+50
Some per-target information and logic is common to all generators. Some of that information is currently stored in cmTarget but that should be reserved for the configure step. Create a class to hold per-target information for generators. On construction classify sources from the target and store them in separate members. This classification is already implemented separately in each generator.