summaryrefslogtreecommitdiffstats
path: root/Source/cmGeneratorTarget.cxx
Commit message (Collapse)AuthorAgeFilesLines
* Make the cmStrictTargetComparison operate on const cmTarget*.Stephen Kelly2013-12-041-1/+2
|
* cmGeneratorTarget: Use the output directory to order cmTargets.Stephen Kelly2013-11-251-2/+2
| | | | | The output directory must be unique, but the source directory of an add_subdirectory call may be re-used.
* Order cmGeneratorTargetsType elements deterministically.Stephen Kelly2013-11-221-0/+11
| | | | | | | | | | 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-2/+2
|
* cmGeneratorTarget: Make some accessors const.Stephen Kelly2013-11-031-11/+12
|
* Merge topic 'use-generator-target'Brad King2013-10-311-0/+293
|\ | | | | | | | | | | 07f5788 Move TraceDependencies to cmGeneratorTarget. fa03777 Do not populate SourceEntries in AddSourceFile.
| * Move TraceDependencies to cmGeneratorTarget.Stephen Kelly2013-10-301-0/+293
| |
* | Merge topic 'use-generator-target'Brad King2013-10-301-2/+76
|\ \ | |/ | | | | | | | | | | 638843a Remove the Location member from cmTarget. 90ef1cf Move GenerateTargetManifest to cmGeneratorTarget. 25f1df3 Split CreateGeneratorTargets into two methods.
| * Move GenerateTargetManifest to cmGeneratorTarget.Stephen Kelly2013-10-271-0/+76
| |
| * Split CreateGeneratorTargets into two methods.Stephen Kelly2013-10-271-2/+0
| | | | | | | | | | As the generate-time-related API is moving to cmGeneratorTarget, almost all of generation code needs to be able to access instances of it.
* | Generators: don't append sources from utility targets to objectSourcesNils Gladitz2013-10-281-1/+8
|/
* Normalize system directories from the interface target propertyStephen Kelly2013-08-291-0/+6
| | | | | The input dir being tested is normalized, so ensure that the entries in the vector are normalized too (eg no trailing slash).
* Add the INTERFACE_SYSTEM_INCLUDE_DIRECTORIES target property.Stephen Kelly2013-07-161-11/+33
| | | | | | | | 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.
* Store system include directories in the cmTarget.Stephen Kelly2013-07-021-1/+17
| | | | | | | 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.
* Add Target API to determine if an include is a system include.Stephen Kelly2013-07-021-0/+7
| | | | | 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/+12
| | | | | | | 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-29/+0
|
* Keep track of INCLUDE_DIRECTORIES as a vector of structs.Stephen Kelly2013-01-031-39/+1
| | | | | The struct can keep track of where the include came from, which gives us proper backtraces.
* Use cmsys::auto_ptr to manage cmCompiledGeneratorExpressionsStephen Kelly2012-12-201-2/+2
| | | | | The compiled generator expressions need to outlive the creating type. For the same reason, store the input string in a std::string.
* Revert "Move GetLinkInformation to cmGeneratorTarget"Stephen Kelly2012-11-211-38/+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.
* Port cmGeneratorExpression to cmTarget from cmGeneratorTarget.Stephen Kelly2012-11-201-2/+2
| | | | | | | | | | | 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().
* Fix config-specific INCLUDE_DIRECTORIES in multi-config generatorsStephen Kelly2012-10-171-2/+2
| | | | | | | | 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.
* Process generator expressions in the COMPILE_DEFINITIONS target property.Stephen Kelly2012-09-281-1/+16
|
* Process generator expressions in the INCLUDE_DIRECTORIES property.Stephen Kelly2012-09-281-2/+20
| | | | | This use of generator expressions, like all others to come which operate on target properties, must initalize the dag checker.
* Refactor GetCompileDefinitions a bit.Stephen Kelly2012-09-211-6/+6
| | | | It is now easier to add generator expressions.
* Return a std::string from GetCompileDefinitions.Stephen Kelly2012-09-211-1/+1
|
* Convert paths in INCLUDE_DIRECTORIES property to Unix slashes.Stephen Kelly2012-09-211-2/+7
| | | | Duplicate some of the logic from the include_directories command.
* Revert "Move GenerateTargetManifest to cmGeneratorTarget."Stephen Kelly2012-09-201-72/+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/+14
|
* Move GetIncludeDirectories to cmGeneratorTarget.Stephen Kelly2012-09-191-0/+24
|
* Move GetCreateRuleVariable to cmGeneratorTarget.Stephen Kelly2012-09-191-0/+19
|
* Make cmLocalGenerator::AddArchitectureFlags take a cmGeneratorTarget.Stephen Kelly2012-09-191-0/+21
|
* Move GetLinkInformation to cmGeneratorTargetStephen Kelly2012-09-191-0/+38
|
* Move GenerateTargetManifest to cmGeneratorTarget.Stephen Kelly2012-09-191-0/+72
|
* Add more forwarding API to cmGeneratorTarget.Stephen Kelly2012-09-191-0/+30
| | | | 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-7/+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.
* Classify known header file extensions as headersBrad King2012-03-281-0/+5
| | | | | | | | | | Commit 328c0f65 (Simplify cmVisualStudio10TargetGenerator source classification, 2012-03-19) introduced the first use of source classification from cmGeneratorTarget (which originated as Makefile generator logic) in a Visual Studio generator for handling of header files. Fix classification of header files to match known header extensions instead of only the HEADER_FILE_ONLY property. Make it consistent with the "Header Files" source group.
* Always compile sources with known languageBrad King2012-03-281-4/+4
| | | | | | | | | | | | | Refactoring by commit 11d9b211 (Add cmGeneratorTarget to represent a target during generation, 2012-03-07) and commit 45c2f932 (Simplify cmMakefileTargetGenerator using cmGeneratorTarget, 2012-03-07) preserved behavior introduced by commit 7740ccd1 (some cleanup of the makefile generator, 2006-02-14) that favored the IgnoreFile extension test over the availability of a known compilation language associated with a source file. If a source is not marked as HEADER_FILE_ONLY and has a known language extension or an explicit LANGUAGE property it should be treated as that language. The LANGUAGE source file property documentation says so.
* Simplify cmVisualStudio10TargetGenerator source classificationBrad King2012-03-191-2/+9
| | | | | | 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.
* Merge branch 'object-library' into xcode-object-libraryBrad King2012-03-191-0/+74
|\
| * Add $<TARGET_OBJECTS:...> expression to use an object libraryBrad King2012-03-161-0/+74
| | | | | | | | | | | | 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.
* | Allow txt files as ExtraSources in object library targetsDavid Cole2012-03-161-1/+4
|/ | | | | | Necessary for the Xcode generator, in which the CMakeLists.txt files are added as sources merely for convenient access, without any associated custom command.
* Add OBJECT_LIBRARY target typeBrad King2012-03-131-0/+21
| | | | | | | | | | | | | | | | | | | | | | | | This library type can compile sources to object files but does not link or archive them. It will be useful to reference from executable and normal library targets for direct inclusion of object files in them. Diagnose and reject the following as errors: * An OBJECT library may not be referenced in target_link_libraries. * An OBJECT library may contain only compiling sources and supporting headers and custom commands. Other source types that are not normally ignored are not allowed. * An OBJECT library may not have PRE_BUILD, PRE_LINK, or POST_BUILD commands. * An OBJECT library may not be installed, exported, or imported. Some of these cases may be supported in the future but are not for now. Teach the VS generator that OBJECT_LIBRARY targets are "linkable" just like STATIC_LIBRARY targets for the LinkLibraryDependencies behavior.
* Add cmGeneratorTarget to represent a target during generationBrad King2012-03-091-0/+74
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.