summaryrefslogtreecommitdiffstats
path: root/Source/cmGlobalGenerator.cxx
Commit message (Collapse)AuthorAgeFilesLines
* Merge topic 'use-generator-target'Brad King2015-07-021-16/+16
|\ | | | | | | | | | | d4a8a554 cmGlobalGenerator: Map local generators to generator targets. faec4e61 cmComputeTargetDepends: Change API to use cmGeneratorTarget.
| * cmGlobalGenerator: Map local generators to generator targets.Stephen Kelly2015-07-011-5/+4
| |
| * cmComputeTargetDepends: Change API to use cmGeneratorTarget.Stephen Kelly2015-07-011-14/+15
| |
* | cmMakefile: Avoid invoking EnforceDirectoryLevelRules.Stephen Kelly2015-06-301-0/+1
|/ | | | | This is part of the CMP0000 implementation and only needs to be invoked for top-level buildsystem files currently.
* enable_language: Allow CMakeDetermine<LANG>Compiler module to fail earlyBrad King2015-06-291-0/+4
| | | | | If the module reports a FATAL_ERROR, skip the rest of the steps to enable the language to avoid unnecessary following error messages.
* cmGeneratorTarget: Require a cmLocalGenerator to construct.Stephen Kelly2015-06-221-2/+2
|
* cmGlobalGenerator: Create GeneratorTargets with a local generator.Stephen Kelly2015-06-221-2/+3
|
* cmGlobalGenerator: Add ComputeHomeRelativeOutputPath method.Stephen Kelly2015-06-131-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | 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-1/+1
| | | | | Call the cmMakefile implementation directly. This is a configure-time construct.
* cmPropertyMap: Remove chaining logic.Stephen Kelly2015-06-071-1/+0
| | | | | | | The chaining logic doesn't belong to the container, and the CMakeInstance pointer doesn't need to be in cmPropertyMap. Size goes from 56 to 48 bytes with GNU libstdc++-5.1.
* Merge topic 'cmMakefile-Configure'Brad King2015-06-041-5/+5
|\ | | | | | | | | | | | | | | | | | | | | | | | | 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-1/+1
| | | | | | | | The generator should only have a function at generate time.
| * cmake: Replace CurrentLocalGenerator concept with CurrentMakefile.Stephen Kelly2015-06-041-3/+3
| |
| * cmLocalGenerator: ComputeObjectMaxPath just before generating.Stephen Kelly2015-06-041-0/+1
| |
| * Merge Configure state with GeneratingBuildSystem state.Stephen Kelly2015-06-041-1/+0
| |
* | cmGlobalGenerator: Don't use else after a return.Stephen Kelly2015-06-021-24/+19
|/
* cmLocalGenerator: Require a valid cmState::Snapshot in the ctor.Stephen Kelly2015-05-271-5/+12
| | | | | | | | | | | 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-7/+0
|
* cmGlobalGenerator: Require a cmake instance in ctor.Stephen Kelly2015-05-271-7/+2
| | | | It is required anyway, so this makes it explicit.
* Use cmSystemTools::GetCMakeCommand() to get path to cmake internallyBrad King2015-05-201-4/+3
| | | | | This is much simpler than finding a way to lookup "CMAKE_COMMAND" everywhere.
* Merge topic 'use-std-unordered_map'Brad King2015-05-191-1/+9
|\ | | | | | | | | | | | | d7923b82 Use std::unordered_map instead of hash_map where available. 820777af Tests: Don't rely on ordering of targets in maps. 921d74d8 AutoGen: Don't iterate over a container while populating it.
| * AutoGen: Don't iterate over a container while populating it.Stephen Kelly2015-05-161-1/+9
| | | | | | | | | | | | | | | | The InitializeAutogenTarget creates new targets and adds them to the Targets container on the makefile. In this method, we have a reference to that container and we are iterating over it. That happens to work with hash_map, but it fails with undefined behavior when using the std::unordered_map from libstdc++-4.9 (and likely others).
* | cmGlobalGenerator: Add NVI wrapper to create local generator.Stephen Kelly2015-05-161-1/+7
|/
* cmGlobalGenerator: Move some flags from cmLocalGenerator.Stephen Kelly2015-05-141-0/+7
| | | | | These flags are global, and so they belong here instead of being set on each local generator.
* cmLocalGenerator: Require a global generator in the constructor.Stephen Kelly2015-05-141-3/+1
| | | | Port generator factory methods to pass it.
* RC: Simplify selection of resource compiler based on C/C++ toolchainBrad King2015-05-071-32/+0
| | | | | | | | | | Revert the refactoring by commit v2.8.11~105^2~1 (Ninja: use MinGW generator code in EnableLanguage, 2013-03-09) and move the MinGW- specific logic back to the "MinGW Makefiles" generator. Instead teach the platform information modules for GNU and MSVC on Windows to set the preferred RC compiler just before enabling the RC language. This way we choose the RC compiler based on the C/C++ toolchain that is actually enabled.
* Port to static cmPolicies API.Stephen Kelly2015-05-041-9/+5
|
* Merge topic 'fix-cmState-try_compile-languages'Brad King2015-05-011-1/+3
|\ | | | | | | | | 27343e3b cmGlobalGenerator: Finish storing enabled languages in cmState
| * cmGlobalGenerator: Finish storing enabled languages in cmStateBrad King2015-04-301-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | In commit 74de9a73 (cmGlobalGenerator: Delegate storage of enabled languages to cmState, 2015-04-11) the original LanguageEnabled member of cmGlobalGenerator was left behind by mistake. One use of it in EnableLanguagesFromGenerator (for try_compile) was left, but the member is not populated anymore. Drop the member and teach EnableLanguagesFromGenerator to copy the list of enabled languages from one cmState to the other. Reported-by: Matt McCormick <matt.mccormick@kitware.com>
* | cmLocalGenerator: Require a parent in the constructor.Stephen Kelly2015-04-281-2/+3
| | | | | | | | | | | | | | Pass the parent though cmGlobalGenerator::CreateLocalGenerator. This will make it easy to initialize state scopes independent of cmMakefile.
* | Merge topic 'clean-up-cmMakefile'Brad King2015-04-211-14/+14
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8dc3a67c cmMakefile: Out-of-line the directory methods. 0f3c8cfa cmMakefile: Use method abstraction to access directories. b288a997 cmMakefile: Rename SetStart* directory API to SetCurrent*. 932d53bc cmMakefile: Remove redundant method duplication. 32b8f03a cmMakefile: Port users of GetStart* methods to new names. 54d6a918 cmMakefile: Rename GetCurrent{Output,Binary}Directory. 55d80d0a cmMakefile: Rename GetCurrent{,Source}Directory. b23cf06f cmake: Remove redundant start directories. fcf246ac cmMakefile: Populate Home directories on initialize. 8878bea7 cmake: Initialize Home directories on cmake for find-package mode. 044dc815 Use the Home directories from the cmake class where intended. d67e8f24 cmake: Fix directory used to find the cache 1ea085d1 cmMakefile: Initialize dir definitions early. f034bb2f Remove redundant calls to MakeStartDirectoriesCurrent. 3a68c323 cmMakefile: Fix wrong parameter names.
| * | cmMakefile: Port users of GetStart* methods to new names.Stephen Kelly2015-04-201-6/+6
| | |
| * | cmMakefile: Rename GetCurrent{,Source}Directory.Stephen Kelly2015-04-201-2/+3
| | | | | | | | | | | | Match the names used in cmake code.
| * | Use the Home directories from the cmake class where intended.Stephen Kelly2015-04-201-5/+5
| | |
| * | Remove redundant calls to MakeStartDirectoriesCurrent.Stephen Kelly2015-04-201-1/+0
| | | | | | | | | | | | The SetStart{,Output}Directory methods do what it does.
* | | cmSystemTools: Teach RunSingleCommand to separate stdout and stderrBrad King2015-04-201-2/+2
|/ / | | | | | | | | | | | | Extend the RunSingleCommand signature to capture stdout and stderr separately. Allow both to be captured to the same std::string to preserve existing behavior. Update all call sites to do this so that this refactoring does not introduce functional changes.
* | cmMakefile: Remove always-null first parameter to ReadListFile.Stephen Kelly2015-04-181-12/+12
|/
* Port Global property interaction to cmState.Stephen Kelly2015-04-151-7/+8
|
* cmGlobalGenerator: Delegate storage of enabled languages to cmState.Stephen Kelly2015-04-131-11/+4
|
* Merge topic 'introduce-cmState'Brad King2015-04-131-9/+10
|\ | | | | | | | | | | | | | | f081c5bd cmState: Move CacheEntryType enum from cmCacheManager. f71fdf0e cmMakefile: Remove unused CacheManager accessor. ff7169a0 Port to cmState. a6b1ad13 Introduce cmState class.
| * cmState: Move CacheEntryType enum from cmCacheManager.Stephen Kelly2015-04-131-3/+3
| |
| * Port to cmState.Stephen Kelly2015-04-131-6/+7
| |
* | cmGlobalGenerator: Store languages as vector, not map.Stephen Kelly2015-04-121-7/+10
|/ | | | The second component of the map is never used.
* cmCacheManager: Port consumers to non-iterator API.Stephen Kelly2015-04-081-6/+2
| | | | | This simplifies reasoning about the follow-up commit which ports away from cmCacheManager to a class with the same method names.
* cmCacheManager: Rename GetCacheValue to GetInitializedCacheValue.Stephen Kelly2015-04-071-3/+3
| | | | | Being initialized is a requirement for this method to return something, and is what differentiates it from using GetIterator with it.GetValue.
* Revert topic 'refactor-cache-api'Brad King2015-04-071-5/+9
| | | | | | This topic was never tested without some follow-up commits. The GetCacheEntryValue API returns a pointer to memory freed on return. It will have to be revised along with the rest of the original topic.
* cmCacheManager: Port consumers to non-iterator API.Stephen Kelly2015-04-061-6/+2
| | | | | This simplifies reasoning about the follow-up commit which ports away from cmCacheManager to a class with the same method names.
* cmCacheManager: Rename GetCacheValue to GetInitializedCacheValue.Stephen Kelly2015-04-061-3/+3
| | | | | Being initialized is a requirement for this method to return something, and is what differentiates it from using GetIterator with it.GetValue.
* cmGlobalGenerator: Don't fetch the cache manager in a loop.Stephen Kelly2015-04-051-2/+1
| | | | It doesn't change from Makefile to Makefile.
* Merge topic 'vs-express-build-output'Brad King2015-03-121-4/+13
|\ | | | | | | | | 94887cb6 cmake: Teach --build to get VCExpress output (#15437)