summaryrefslogtreecommitdiffstats
path: root/Source/cmLocalGenerator.h
Commit message (Collapse)AuthorAgeFilesLines
* cmLocalGenerator: Port GetTargetDirectory to cmGeneratorTarget.Stephen Kelly2015-10-141-1/+2
|
* cmLocalGenerator: Store cmGeneratorTargets.Stephen Kelly2015-10-141-0/+14
| | | | Relieve cmMakefile of this responsibility.
* Merge topic 'add-cmLocalGenerator-API'Brad King2015-10-121-0/+10
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 223d0efe Remove some needless GetMakefile() calls. a367416c cmLocalGenerator: Add current source directory accessor. bbef3c2d cmLocalGenerator: Add current binary directory accessor. 12cb3bdc cmLocalGenerator: Add Home directory accessors. 72efa15d Eclipse: Port API to cmLocalGenerator. f2a641d6 Kate: Remove unused variables. 10cf42f5 Kate: Port API to cmLocalGenerator. e46ef270 export: Port internal method to cmGeneratorTarget. 53d3a1c9 cmMakefile: Remove unused GetProjectName calls. 4ab2750c cmLocalGenerator: Add GetProjectName method. c8187f41 cmCPluginAPI: Inline code to get project name. 8c6e6dd3 cmMakefile: Inline initialization of project name. 27916f2c cmLocalGenerator: Add cmake instance accessor.
| * cmLocalGenerator: Add current source directory accessor.Stephen Kelly2015-10-101-0/+1
| |
| * cmLocalGenerator: Add current binary directory accessor.Stephen Kelly2015-10-101-0/+2
| |
| * cmLocalGenerator: Add Home directory accessors.Stephen Kelly2015-10-081-0/+3
| | | | | | | | Reduce reasons for cmLocalGenerator to have a cmMakefile.
| * cmLocalGenerator: Add GetProjectName method.Stephen Kelly2015-10-081-0/+2
| |
| * cmLocalGenerator: Add cmake instance accessor.Stephen Kelly2015-10-081-0/+2
| |
* | cmLocalGenerator: Devirtualize method.Stephen Kelly2015-10-081-1/+1
|/
* cmLocalGenerator: Constify target in API.Stephen Kelly2015-10-051-1/+1
|
* cmLocalGenerator: Compute object max path on construction.Stephen Kelly2015-09-241-1/+2
|
* Add support for *.manifest source files with MSVC toolsBrad King2015-09-171-0/+1
| | | | | | | | Classify .manifest sources separately, add dependencies on them, and pass them to the MS manifest tool to merge with linker-generated manifest files. Inspired-by: Gilles Khouzam <gillesk@microsoft.com>
* Merge topic 'refactor-compute'Brad King2015-08-311-1/+1
|\ | | | | | | | | | | | | 616d8f02 cmGeneratorTarget: Rename method to match operation. ec56d244 cmGlobalGenerator: Process evaluation files after target depends. 1e5349a5 cmGlobalGenerator: Access makefile from makefiles container.
| * cmGeneratorTarget: Rename method to match operation.Stephen Kelly2015-08-301-1/+1
| | | | | | | | | | The manifest is computed, not generated, according to current language used in cmake method naming.
* | cmLocalGenerator: Create from already-constructed cmMakefile.Stephen Kelly2015-08-281-1/+1
| | | | | | | | Don't manage the lifetime of the cmMakefile with cmLocalGenerator.
* | cmLocalGenerator: Remove Parent pointer.Stephen Kelly2015-08-281-6/+1
|/
* cmLocalGenerator: Remove unused Children member.Stephen Kelly2015-08-241-6/+0
|
* cmMakefile: Store EvaluationFiles.Stephen Kelly2015-08-011-0/+2
| | | | | Relieve the cmGlobalGenerator of this responsibility. Evaluate the generator expressions in the context of the cmLocalGenerator.
* cmLocalGenerator: Remove unused AddCustomCommandToCreateObject method.Stephen Kelly2015-07-271-6/+0
|
* cmLocalGenerator: Remove unused AddBuildTargetRule method.Stephen Kelly2015-07-271-5/+0
|
* cmLocalGenerator: Remove CreateCustomTargetsAndCommands method.Stephen Kelly2015-07-271-6/+0
| | | | | It loops over cmGeneratorTargets, but at the point it is called, there are no cmGeneratorTargets. This must be dead code.
* Factor an <INCLUDES> placeholder out of <FLAGS> in rule variablesBrad King2015-07-131-0/+1
| | | | | | | | | | | Teach the Makefile and Ninja generators to substitute for an <INCLUDES> placeholder instead of putting -I in <FLAGS>. Update our values for CMAKE_<LANG>_COMPILE_OBJECT, CMAKE_<LANG>_CREATE_ASSEMBLY_SOURCE, and CMAKE_<LANG>_CREATE_PREPROCESSED_SOURCE to place <INCLUDES> just before <FLAGS>.
* cmLocalGenerator: Constify GetIncludeDirectories method.Stephen Kelly2015-06-211-1/+1
|
* cmMakefile: Move IsRoot API from cmLocalGenerator.Stephen Kelly2015-06-211-3/+0
|
* cmLocalGenerator: Add IssueMessage method.Stephen Kelly2015-06-211-0/+4
| | | | For use at generate-time instead of the cmMakefile method of the same name.
* cmGlobalGenerator: Add ComputeHomeRelativeOutputPath method.Stephen Kelly2015-06-131-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | Fix generation of tgt/fast build targets. Commit 363caa2f (cmLocalGenerator: De-virtualize Configure()., 2015-05-30) moved the computation of HomeRelativeOutputPath from Configure-time to Generate-time, because it is only used at Generate-time. However, that commit caused the member for one local generator to be computed immediately before generating with that local generator, whereas previously the members of all local generators were computed before generating any of them. The HomeRelativeOutputPath is used by the GetRelativeTargetDirectory method, which is called by the cmGlobalUnixMakefileGenerator3::WriteConvenienceRules method. That method is called by the cmLocalUnixMakefileGenerator3::WriteLocalMakefile method when generating for the top-most (ie, the first) local generator. At that point, the HomeRelativeOutputPath is not yet computed. Fix that by computing the member just before generating anything. This will eventually be done in the cmLocalUnixMakefileGenerator3 constructor instead, but further refactoring is needed to make that possible.
* cmLocalGenerator: Remove ConfigureFinalPass.Stephen Kelly2015-06-091-5/+0
| | | | | Call the cmMakefile implementation directly. This is a configure-time construct.
* Merge topic 'move-Feature-API'Brad King2015-06-081-0/+3
|\ | | | | | | | | | | f573bd22 cmLocalGenerator: Add Feature API from cmMakefile. ccbc2259 cmGeneratorTarget: Move Feature API from cmTarget.
| * cmLocalGenerator: Add Feature API from cmMakefile.Stephen Kelly2015-06-061-0/+3
| |
* | cmOutputConverter: Extract from cmLocalGenerator.Stephen Kelly2015-06-061-80/+2
|/ | | | | | | | | | | The Convert methods never belonged to the local generator concept, so split them out now. The cmOutputConverter is cheap to construct and destroy, so it can be instantiated where needed to perform conversions. This will allow further decoupling of cmLocalGenerator from the configure step. Inherit cmLocalGenerator from cmOutputConverter for the purpose of source compatibility.
* cmMakefile: Move Configure responsibility from cmLocalGenerator.Stephen Kelly2015-06-041-6/+0
| | | | The generator should only have a function at generate time.
* cmLocalGenerator: ComputeObjectMaxPath just before generating.Stephen Kelly2015-06-041-1/+1
|
* Merge Configure state with GeneratingBuildSystem state.Stephen Kelly2015-06-041-3/+0
|
* cmLocalGenerator: De-virtualize Configure().Stephen Kelly2015-06-041-1/+1
| | | | | The generators that override it do so in order to populate data members which can instead be populated in Generate().
* cmLocalGenerator: Remove 'optional' parameter from Convert.Stephen Kelly2015-06-041-2/+1
| | | | Port callers away from it.
* cmLocalGenerator: Remove obsolete method.Stephen Kelly2015-06-031-7/+0
|
* Remove CMAKE_USE_RELATIVE_PATHS variable.Stephen Kelly2015-06-031-3/+1
| | | | | | | | | | | | | | | | | The test for this variable was removed in commit v2.8.8~330^2~7 (complex: Remove ancient unused ComplexRelativePaths test, 2011-12-23). Commit v3.1.0-rc1~425^2~2 (backtrace: Convert to local paths in IssueMessage, 2014-03-12) appears to have accidentally made some backtraces print relative paths with the variable because conversions which used to be done at configure time, before the variable had an effect are now potentially done at generate time. The documentation of the variable says not to use it, and the docs are wrong in that the variable actually applies in per-directory scope. The read of the variable makes it harder to split conversion methods from cmLocalGenerator where they don't belong. Remove it now.
* Merge topic 'inject-state-snapshot'Brad King2015-05-271-1/+2
|\ | | | | | | | | | | | | | | 3b880a07 cmLocalGenerator: Require a valid cmState::Snapshot in the ctor. e12afe76 cmState: Host some state from the cmGlobalGenerator. c7b79aa1 cmGlobalGenerator: Require a cmake instance in ctor. 01e1cd5c cmState: Move snapshot creation to the cmake instance.
| * cmLocalGenerator: Require a valid cmState::Snapshot in the ctor.Stephen Kelly2015-05-271-1/+2
| | | | | | | | | | | | | | | | | | | | | | Refactor the local generator creation API to accept a cmState::Snapshot. Adjust MakeLocalGenerator to use the 'current' snapshot in cases where there is no parent. Create the snapshot for subdirectories in cmMakefile::AddSubdirectory. This means that snapshots are now created at the point of extending the tree, as appropriate, and independently of the cmLocalGenerator and cmMakefile they represent the state for.
* | Honor visibility properties for all target types (#15556)Brad King2015-05-261-0/+2
|/ | | | | | | | | | | | | | | | The <LANG>_VISIBILITY_PRESET and VISIBILITY_INLINES_HIDDEN were first merged in commit v2.8.12~322 (Merge topic 'VISIBILITY_PRESET-property', 2013-06-05) but worked only for shared libraries and executables with exports. Prior to commit v3.0.0-rc1~581^2 (GenerateExportHeader: Deprecate add_compiler_export_flags function., 2013-09-02) the add_compiler_export_flags function was used to add visibility flags to all targets. The visibility flags are useful for sources in all target types because they may be later linked into shared libraries or executables with exports. Introduce policy CMP0063 to enable them for all target types while preserving compatibility with existing projects that do not expect this.
* cmLocalGenerator: Inline ReadListFile method.Stephen Kelly2015-05-201-3/+0
|
* cmLocalGenerator: Devirtualize method.Stephen Kelly2015-05-201-1/+1
|
* Merge topic 'refactor-cmLocalGenerator'Brad King2015-05-191-19/+0
|\ | | | | | | | | | | | | | | | | fa9eb814 cmLocalGenerator: Remove redundant path access. 1933f3d1 cmLocalGenerator: Remove redundant path conversions. 9e4b6cc2 cmState: Store computed relative paths to to current directories. 991f5e49 cmState::Snapshot: Store components for current directories. 57bdc1a2 cmState: Compute and store directory components.
| * cmState: Store computed relative paths to to current directories.Stephen Kelly2015-05-161-13/+0
| |
| * cmState::Snapshot: Store components for current directories.Stephen Kelly2015-05-161-4/+0
| | | | | | | | Remove this responsibility from cmLocalGenerator.
| * cmState: Compute and store directory components.Stephen Kelly2015-05-161-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | There is no need to duplicate these in all cmLocalGenerators. Rename the symbols according to current conventions. Add explicit calls to Set{Source,Binary}Directory with empty strings in order to trigger the population of the components containers with the current working directory in cmLocalGenerator. Having directories set to empty is a special case in CMake, which is relied on for the `if(CMAKE_BINARY_DIR)` condition at the end of CMakeDetermineSystem.cmake.
* | cmLocalGenerator: Remove unused IgnoreLibPrefix.Stephen Kelly2015-05-181-1/+0
|/
* cmMakefile: Handle CMP0014 before configuring the generator.Stephen Kelly2015-05-141-0/+2
|
* cmLocalGenerator: Add abstraction to check if top-level.Stephen Kelly2015-05-141-0/+3
| | | | Move from the cmLocalNinjaGenerator. Fix the case of the name.
* cmGlobalGenerator: Move some flags from cmLocalGenerator.Stephen Kelly2015-05-141-6/+7
| | | | | These flags are global, and so they belong here instead of being set on each local generator.