summaryrefslogtreecommitdiffstats
path: root/Source/cmLocalGenerator.h
Commit message (Collapse)AuthorAgeFilesLines
* 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.
* cmLocalGenerator: Initialize state before creating cmMakefile.Stephen Kelly2015-05-141-0/+5
| | | | Access the state from the local generator in the cmMakefile.
* cmLocalGenerator: Require a global generator in the constructor.Stephen Kelly2015-05-141-4/+1
| | | | Port generator factory methods to pass it.
* cmLocalGenerator: Remove EscapeForShellOldStyle to only caller.Stephen Kelly2015-05-141-3/+0
|
* cmLocalGenerator: Remove unused members.Stephen Kelly2015-05-141-4/+0
|
* cmLocalGenerator: Require a parent in the constructor.Stephen Kelly2015-04-281-2/+1
| | | | | | | Pass the parent though cmGlobalGenerator::CreateLocalGenerator. This will make it easy to initialize state scopes independent of cmMakefile.
* cmLocalGenerator: Constify some cmTarget and cmGeneratorTarget argumentsGeoff Viola2015-04-091-4/+5
|
* Merge topic 'target-language-genex'Brad King2015-03-101-1/+2
|\ | | | | | | | | | | | | | | | | | | | | 232a6883 Help: Add release notes for target-language-genex. 9e168941 File(GENERATE): Process genex evaluation files for each language. b734fa44 Genex: Allow COMPILE_LANGUAGE when processing include directories. 0b945ea9 Genex: Allow COMPILE_LANGUAGE when processing compile definitions. 5c559f11 Genex: Enable use of COMPILE_LANGUAGE for compile options. e387ce7d Genex: Add a COMPILE_LANGUAGE generator expression. 4a0128f4 VS6: Compute CMAKE_*_FLAGS and COMPILE_DEFINITIONS* only when needed
| * Genex: Allow COMPILE_LANGUAGE when processing compile definitions.Stephen Kelly2015-03-091-1/+2
| | | | | | | | Issue an error if this is encountered by an IDE generator.
* | Ninja: Improve internal check for generating at the top-level (#15436)Brad King2015-03-091-1/+1
|/ | | | | Simply check for whether the local generator has a parent instead of depending on a string comparison of directory names.
* Ninja: Fix RC include directories regressionBrad King2014-10-131-1/+3
| | | | | | | | | | | | | | | | | Changes in commit b9aa5041 (cmLocalGenerator: Simplify GetIncludeFlags output formatting, 2014-03-04) caused Windows Resource Compiler include directories to be computed as relative paths in the Ninja generator. This breaks the cmcldeps handling of include paths. The reason for the regression is that several cmLocalGenerator::GetIncludeFlags callers treated the fourth "bool forResponseFile" argument as if it controlled whether include directories were a full path. It actually did control that by accident until the above commit. Add an explicit "bool forceFullPaths" argument to GetIncludeFlags and thread the value through ConvertToIncludeReference as needed. Update GetIncludeFlags call sites that really wanted to control the forResponseFile setting to be aware of the new argument. Extend the VSResource test to cover this case.