summaryrefslogtreecommitdiff
path: root/Source/cmLocalGenerator.cxx
Commit message (Collapse)AuthorAgeFilesLines
* cmState: Extract a Directory class.Stephen Kelly2015-07-181-19/+24
| | | | | Move Directory-scoped state accessors to it. This will be expanded with directory property state soon.
* Factor an <INCLUDES> placeholder out of <FLAGS> in rule variablesBrad King2015-07-131-0/+4
| | | | | | | | | | | 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: Remove unused includeBrad King2015-07-081-2/+0
|
* cmLocalGenerator: Constify GetIncludeDirectories method.Stephen Kelly2015-06-211-1/+1
|
* cmMakefile: Move IsRoot API from cmLocalGenerator.Stephen Kelly2015-06-211-5/+0
|
* cmLocalGenerator: Add IssueMessage method.Stephen Kelly2015-06-211-7/+23
| | | | For use at generate-time instead of the cmMakefile method of the same name.
* 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/+27
|\ | | | | | | | | | | 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/+27
| |
* | cmOutputConverter: Extract from cmLocalGenerator.Stephen Kelly2015-06-061-417/+1
| | | | | | | | | | | | | | | | | | | | | | 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.
* | cmLocalGenerator: Remove some commented lines of code.Stephen Kelly2015-06-041-5/+0
|/ | | | They've been commented out for a decade, which seems long enough.
* Merge topic 'cmMakefile-Configure'Brad King2015-06-041-73/+1
|\ | | | | | | | | | | | | | | | | | | | | | | | | 7657e8b1 cmMakefile: Introduce a local cmMakefile variable. 4e8f242d cmMakefile: Store unconfigured cmMakefiles. d65e0123 cmMakefile: Implement ConfigureSubDirectory in terms of cmMakefile. f059ed16 cmMakefile: Move Configure responsibility from cmLocalGenerator. a653611d cmake: Replace CurrentLocalGenerator concept with CurrentMakefile. 69a038a9 cmMakefile: Refactor directories specified with the subdirs command. 08637970 cmLocalGenerator: ComputeObjectMaxPath just before generating. 27e11c6f Merge Configure state with GeneratingBuildSystem state. 363caa2f cmLocalGenerator: De-virtualize Configure().
| * cmMakefile: Move Configure responsibility from cmLocalGenerator.Stephen Kelly2015-06-041-62/+0
| | | | | | | | The generator should only have a function at generate time.
| * cmake: Replace CurrentLocalGenerator concept with CurrentMakefile.Stephen Kelly2015-06-041-8/+9
| |
| * cmMakefile: Refactor directories specified with the subdirs command.Stephen Kelly2015-06-041-7/+4
| | | | | | | | Store the directories on the cmMakefile as explicitly not-configured-yet.
| * cmLocalGenerator: ComputeObjectMaxPath just before generating.Stephen Kelly2015-06-041-2/+0
| |
| * Merge Configure state with GeneratingBuildSystem state.Stephen Kelly2015-06-041-9/+3
| |
* | Merge topic 'remove-CMAKE_USE_RELATIVE_PATHS'Brad King2015-06-041-52/+36
|\ \ | |/ | | | | | | | | | | | | 6e570f85 cmLocalGenerator: Remove 'optional' parameter from Convert. 3d8c6cd9 cmLocalGenerator: Remove obsolete method. e44e6bcc Port away from obsolete method. 1335992c Remove CMAKE_USE_RELATIVE_PATHS variable.
| * cmLocalGenerator: Remove 'optional' parameter from Convert.Stephen Kelly2015-06-041-38/+35
| | | | | | | | Port callers away from it.
| * cmLocalGenerator: Remove obsolete method.Stephen Kelly2015-06-031-8/+0
| |
| * Remove CMAKE_USE_RELATIVE_PATHS variable.Stephen Kelly2015-06-031-7/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | cmState: Rename GetParent method.Stephen Kelly2015-06-031-1/+1
|/ | | | Leave the namespace open for other Parent types.
* Merge topic 'inject-state-snapshot'Brad King2015-05-271-22/+23
|\ | | | | | | | | | | | | | | 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-7/+4
| | | | | | | | | | | | | | | | | | | | | | 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.
| * cmState: Host some state from the cmGlobalGenerator.Stephen Kelly2015-05-271-14/+14
| |
| * cmState: Move snapshot creation to the cmake instance.Stephen Kelly2015-05-241-2/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Don't create a snapshot in Initialize(), but leave the creation responsibility to the cmake instance instead. Previously, the cmState would Initialize() in its constructor, and the cmake instance would re-Initialize() during Configure(). The end result was the same and there would be one snapshot present. However, cmLocalGenerator also created a snapshot on construction, and that one was used, leaving the first snapshot unused, and potential for off-by-one errors. Fix that by making the cmLocalGenerator use the existing snapshot if it is top-level. Add a CurrentSnapshot to the cmake instance and populated it while configuring a directory. This will eventually replace the 'current local generator' concept. Fix the GetParent implementation to be able to return the first snapshot.
* | Honor visibility properties for all target types (#15556)Brad King2015-05-261-12/+48
|/ | | | | | | | | | | | | | | | 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.
* Convert: Remove specification of default parameter.Stephen Kelly2015-05-201-2/+2
|
* cmLocalGenerator: Get enabled languages from cmState.Stephen Kelly2015-05-201-2/+2
|
* cmLocalGenerator: Implement IsRootMakefile in terms of cmState.Stephen Kelly2015-05-201-1/+1
|
* cmLocalGenerator: Inline ReadListFile method.Stephen Kelly2015-05-201-12/+4
|
* Use cmSystemTools::GetCMakeCommand() to get path to cmake internallyBrad King2015-05-201-3/+1
| | | | | This is much simpler than finding a way to lookup "CMAKE_COMMAND" everywhere.
* Merge topic 'refactor-cmLocalGenerator'Brad King2015-05-191-149/+13
|\ | | | | | | | | | | | | | | | | 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.
| * cmLocalGenerator: Remove redundant path access.Stephen Kelly2015-05-161-2/+1
| |
| * cmLocalGenerator: Remove redundant path conversions.Stephen Kelly2015-05-161-3/+0
| | | | | | | | The methods just called store the paths in already-converted form.
| * cmState: Store computed relative paths to to current directories.Stephen Kelly2015-05-161-103/+4
| |
| * cmState::Snapshot: Store components for current directories.Stephen Kelly2015-05-161-32/+6
| | | | | | | | Remove this responsibility from cmLocalGenerator.
| * cmState: Compute and store directory components.Stephen Kelly2015-05-161-12/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | 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-37/+7
|
* cmLocalGenerator: Assert that there is a parent.Stephen Kelly2015-05-141-4/+1
| | | | | | If the CMakeLists.txt file does not exist, there must be a parent. The case for the top-level of the project is already handled in cmake::DoPreConfigureChecks.
* cmLocalGenerator: Add abstraction to check if top-level.Stephen Kelly2015-05-141-0/+5
| | | | Move from the cmLocalNinjaGenerator. Fix the case of the name.
* cmGlobalGenerator: Move some flags from cmLocalGenerator.Stephen Kelly2015-05-141-16/+30
| | | | | These flags are global, and so they belong here instead of being set on each local generator.
* cmLocalGenerator: Port loops to cmState::Snapshot.Stephen Kelly2015-05-141-22/+20
| | | | | Make this code less dependent on being part of cmLocalGenerator, where it doesn't really belong.
* cmLocalGenerator: Convert two recursive methods to loops.Stephen Kelly2015-05-141-20/+50
|
* cmLocalGenerator: Get project directories from the cmState.Stephen Kelly2015-05-141-37/+36
| | | | Make this class and cmMakefile less interdependent.
* cmLocalGenerator: Initialize state before creating cmMakefile.Stephen Kelly2015-05-141-0/+17
| | | | Access the state from the local generator in the cmMakefile.
* cmLocalGenerator: Require a global generator in the constructor.Stephen Kelly2015-05-141-9/+5
| | | | Port generator factory methods to pass it.
* cmLocalGenerator: Remove EscapeForShellOldStyle to only caller.Stephen Kelly2015-05-141-29/+0
|
* Port to static cmPolicies API.Stephen Kelly2015-05-041-4/+3
|