summaryrefslogtreecommitdiffstats
path: root/Source/cmLocalGenerator.cxx
Commit message (Collapse)AuthorAgeFilesLines
* 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
|
* cmMakefile: Require the localGenerator in the constructor.Stephen Kelly2015-04-281-2/+1
| | | | | Move the contents of cmMakeile::SetLocalGenerator to the Initialize method.
* cmLocalGenerator: Require a parent in the constructor.Stephen Kelly2015-04-281-2/+6
| | | | | | | Pass the parent though cmGlobalGenerator::CreateLocalGenerator. This will make it easy to initialize state scopes independent of cmMakefile.
* cmMakefile: Port users of GetStart* methods to new names.Stephen Kelly2015-04-201-25/+27
|
* cmMakefile: Rename GetCurrent{Output,Binary}Directory.Stephen Kelly2015-04-201-3/+3
| | | | Match names used in CMake code.
* cmMakefile: Rename GetCurrent{,Source}Directory.Stephen Kelly2015-04-201-2/+3
| | | | Match the names used in cmake code.
* cmMakefile: Populate Home directories on initialize.Stephen Kelly2015-04-201-6/+0
|
* Merge topic 'clean-up-ReadListFile'Brad King2015-04-201-1/+1
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 05245b42 cmMakefile: Move some preamble out of the Internal method. 6e23a4bd cmMakefile: Remove always-null first parameter to ReadListFile. d21ebcb2 cmMakefile: Swap parameters of calls to ReadListFile. 95a27267 cmMakefile: Extract conditional code to caller. 7d248547 cmMakefile: Remove intermediate variable. 9db15954 cmMakefile: Move condition to the only calling context where it is true. 5d4480a8 cmMakefile: Populate CMAKE_PARENT_LIST_FILE in callers. 3a8ac242 cmMakefile: Collapse nested conditional. 5947d9b0 cmMakefile: Convert filenametoread into a std::string. e2d0e0fb cmMakefile: Remove intermediate variable. 3a1ad171 cmMakefile: Combine duplicate condition. f0dae032 cmMakefile: Re-order independent statements. 08da8742 cmMakefile: Split a conditional. 3dc4fe02 cmMakefile: Re-order independent variable setting. e4f8f1f1 cmMakefile: Remove intermediate variable. 2d6121a9 cmMakefile: Remove use of intermediate variable. ...
| * cmMakefile: Add a method for processing buildsystem files.Stephen Kelly2015-04-181-1/+1
| | | | | | | | | | These are different from other ListFiles in that a project() command is required if it is top-level.
* | Merge topic 'add-GreenHills-MULTI-generator'Brad King2015-04-201-6/+8
|\ \ | |/ |/| | | | | | | | | 66b641f4 Help: Add notes for topic 'add-GreenHills-MULTI-generator' 48004d9d Add a 'Green Hills MULTI' generator on Windows 051d8be1 cmLocalGenerator: Constify some cmTarget and cmGeneratorTarget arguments
| * cmLocalGenerator: Constify some cmTarget and cmGeneratorTarget argumentsGeoff Viola2015-04-091-6/+8
| |
* | cmMakefile: Internalize setting of CMakeInstance on Properties.Stephen Kelly2015-04-121-1/+0
|/
* Include cmAlgorithms where it is used.Stephen Kelly2015-03-101-0/+1
|
* Genex: Allow COMPILE_LANGUAGE when processing include directories.Stephen Kelly2015-03-091-1/+1
| | | | Issue an error if this is encountered by an IDE generator.
* Genex: Allow COMPILE_LANGUAGE when processing compile definitions.Stephen Kelly2015-03-091-3/+3
| | | | Issue an error if this is encountered by an IDE generator.
* Genex: Enable use of COMPILE_LANGUAGE for compile options.Stephen Kelly2015-03-091-2/+2
| | | | | | Follow-ups will allow the use of the generator expression for compile definitions and include directories for non-IDE generators.
* Merge topic 'fix-crash-on-bad-LANG_STANDARD'Brad King2015-03-021-1/+8
|\ | | | | | | | | 00d66557 Diagnose invalid <LANG>_STANDARD value instead of crashing (#15426)
| * Diagnose invalid <LANG>_STANDARD value instead of crashing (#15426)Brad King2015-02-281-1/+8
| |
* | Merge topic 'install-manifest-optimize'Brad King2015-02-271-11/+6
|\ \ | | | | | | | | | | | | c4814174 install: Write the entire installation manifest at once
| * | install: Write the entire installation manifest at onceRobert Goulet2015-02-261-11/+6
| |/ | | | | | | | | Avoid a separate open/close for each file installed. Use a single file(WRITE) instead of a loop with file(APPEND).
* | cmLocalGenerator: Convert loop to algorithm.Stephen Kelly2015-02-181-6/+1
| |
* | cmLocalGenerator: Move variable population inside of condition.Stephen Kelly2015-02-171-4/+3
| | | | | | | | | | It is only used in the condition, so no need to look for uses elsewhere when reading the code.
* | Convert loops to cmJoin algorithm with cmRange.Stephen Kelly2015-02-111-7/+1
| |