summaryrefslogtreecommitdiffstats
path: root/Source/cmGlobalGenerator.cxx
Commit message (Collapse)AuthorAgeFilesLines
* 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)
| * cmake: Teach --build to get VCExpress output (#15437)Brad King2015-03-101-4/+13
| | | | | | | | | | | | | | VCExpress does not produce output if its pipes are connected to an interactive terminal. Add a special case to 'cmake --build' to capture the output through a pipe and re-print it instead of sharing output pipes with VCExpress.
* | Include cmAlgorithms where it is used.Stephen Kelly2015-03-101-0/+1
|/
* cmake: Teach --build to honor CMAKE_VERBOSE_MAKEFILE for NinjaGregor Jasny2015-02-261-5/+6
| | | | | | | | | The Ninja build system does not support a in-file verbositiy switch. Instead teach 'cmake --build' to extract the CMAKE_VERBOSE_MAKEFILE setting and pass it as an optional '-v' argument to Ninja. This can serve as a reasonable fallback. Signed-off-by: Gregor Jasny <gjasny@googlemail.com>
* cmGlobalGenerator: Convert set insert algorithm to vector algorithms.Stephen Kelly2015-02-201-9/+17
| | | | Adjust test for new error output.
* cmAlgorithms: Add cmWrap.Stephen Kelly2015-02-201-9/+2
| | | | | | | | | | | | | Port some existing cmJoin to use it. cmJoin is cumbersome to use in cases where the objective is to somehow 'quote' each item and then join it with a separator. In that case, the joiner string is harder to read and reason about. cmWrap aims to solve that. Provide an overload taking char wrappers to simplify the case of surrounding every element in quotes without needing to escape the quote character.
* cmGlobalGenerator: Replace loop with algorithm.Stephen Kelly2015-02-201-9/+4
|
* cmGlobalGenerator: Replace set::insert algorithm with cmRemoveDuplicates.Stephen Kelly2015-02-181-6/+3
|
* Revert "cmGlobalGenerator: Fix value type pushed into autogens vector"Stephen Kelly2015-02-171-1/+1
| | | | | | | This reverts commit ae6fc555a7e8929f6d96545bd1137c8bd378566d. Use the more-natural make_pair algorithm. The compiler motivating the need for this is not supported as a host anymore.
* cmGlobalGenerator: Remove unneeded pointer check.Stephen Kelly2015-02-171-5/+1
| | | | Deleting nullptr is ok.
* Xcode: Switch to internal CMAKE_MAKE_PROGRAM lookup by generator (#15324)Brad King2015-01-291-19/+0
| | | | | | | | | | | | The "cmakexbuild" wrapper is not needed for Xcode 4 and above, and the path to it may change when CMake moves. Avoid storing a specific path to a build program in CMakeCache.txt and instead compute the value for CMAKE_MAKE_PROGRAM on demand. However, if a user does set the value explicitly then honor it. This does for Xcode what commit v3.0.0-rc1~260^2~4 (VS: Switch to internal CMAKE_MAKE_PROGRAM lookup by generators, 2013-11-15) did for Visual Studio generators.