summaryrefslogtreecommitdiffstats
path: root/Source/cmGlobalGenerator.h
Commit message (Collapse)AuthorAgeFilesLines
* Merge topic 'global-generator-makefiles'Brad King2015-08-111-0/+5
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 6d8a125e cmQtAutoGenerators: Prefer a generator to access global generator. 5f66900e cmGlobalGenerator: Port Find API to cmMakefile. c5b8841f cmGlobalGenerator: Create global targets from cmMakefiles. 8f75ea3b cmGlobalGenerator: Port global target creation to cmMakefile. 56f0540b cmGlobalGenerator: Port Configure-time check to cmMakefile. 19b546ef cmGlobalGenerator: Base final target property computation on Makefiles. f8be9ba9 cmGlobalGenerator: Base progress on Makefiles, not LocalGenerators. bc1097e3 cmExportLibraryDependenciesCommand: Port to cmMakefile. 204aecdf cmGlobalGenerator: Port configure-time code to cmMakefile. 3dd6f0a5 cmake: Port configure-time code to cmMakefile. 73e4df99 cmGlobalGenerator: Store a container of cmMakefiles. 19369937 cmGeneratorTarget: Port internal type to cmGeneratorTarget. 32f131b0 cmGeneratorTarget: Prefer the local generator to access the global.
| * cmGlobalGenerator: Port Find API to cmMakefile.Stephen Kelly2015-08-071-0/+1
| |
| * cmGlobalGenerator: Store a container of cmMakefiles.Stephen Kelly2015-08-071-0/+4
| | | | | | | | For use at configure-time.
* | Merge topic 'rm-Makefile-LocalGenerator'Brad King2015-08-111-1/+1
|\ \ | | | | | | | | | | | | | | | 1689c91d cmMakefile: Remove unused method. dd11f72c cmGlobalGenerator: Base exclusion computation on cmGeneratorTarget.
| * | cmGlobalGenerator: Base exclusion computation on cmGeneratorTarget.Stephen Kelly2015-08-061-1/+1
| |/
* | nmake/jom: Only warn about bad VS environment if compiler not found.James Johnston2015-08-061-2/+2
|/ | | | | | | nmake and jom generators no longer warn about missing INCLUDE/LIB environment variables unless the C/CXX compiler cannot be found. This is useful if the user does not want to use these generators with the Visual C++ compiler, or they do not want to enable any language.
* cmMakefile: Store EvaluationFiles.Stephen Kelly2015-08-011-8/+0
| | | | | Relieve the cmGlobalGenerator of this responsibility. Evaluate the generator expressions in the context of the cmLocalGenerator.
* cmGlobalGenerator: Virtualize the Compute step and override it.Stephen Kelly2015-07-301-1/+1
|
* cmGlobalGenerator: Return from Compute whether to generate.Stephen Kelly2015-07-291-1/+1
|
* cmGlobalGenerator: Create a new Compute step before generation.Stephen Kelly2015-07-291-3/+2
| | | | Replace the DoGenerate method.
* cmGlobalGenerator: Remove the TargetManifest member.Stephen Kelly2015-07-291-5/+1
|
* cmGlobalGenerator: Remove unused manifest accessor.Stephen Kelly2015-07-291-5/+0
|
* cmExportTryCompileFileGenerator: Create cmGeneratorTargets.Stephen Kelly2015-07-271-3/+9
| | | | | This is not a deprecated behavior, but only requires IMPORTED targets be made.
* cmGlobalGenerator: Create cmGeneratorTargets before QtAutomoc.Stephen Kelly2015-07-271-0/+5
| | | | Add cmGeneratorTargets as needed in the QtAutomoc processing.
* cmGlobalGenerator: Extract method to create generator objects.Stephen Kelly2015-07-271-0/+2
|
* cmGlobalGenerator: Split creation of generator object from initialization.Stephen Kelly2015-07-271-0/+1
|
* cmGlobalGenerator: Map local generators to generator targets.Stephen Kelly2015-07-011-1/+1
|
* cmComputeTargetDepends: Change API to use cmGeneratorTarget.Stephen Kelly2015-07-011-3/+4
|
* cmGlobalGenerator: Create GeneratorTargets with a local generator.Stephen Kelly2015-06-221-1/+1
|
* cmGlobalGenerator: Re-arrange data layout.Stephen Kelly2015-06-071-6/+8
| | | | Size goes from 1488 to 1480 bytes.
* Merge topic 'cmMakefile-Configure'Brad King2015-06-041-5/+7
|\ | | | | | | | | | | | | | | | | | | | | | | | | 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().
| * cmake: Replace CurrentLocalGenerator concept with CurrentMakefile.Stephen Kelly2015-06-041-5/+7
| |
* | VS: Compute project GUIDs deterministicallyBrad King2015-06-041-2/+0
|/ | | | | | | | | Compute deterministic GUIDs that are unique to the build tree by hashing the path to the build tree with the GUID logical name. Avoid storing them in the cache, but honor any found there. This will allow project GUIDs to be reproduced in a fresh build tree so long as its path is the same as the original, which may be useful for incremental builds.
* cmLocalGenerator: Require a valid cmState::Snapshot in the ctor.Stephen Kelly2015-05-271-2/+6
| | | | | | | | | | | 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-4/+1
| | | | It is required anyway, so this makes it explicit.
* cmGlobalGenerator: De-virtualize methods with no overrides.Stephen Kelly2015-05-241-3/+3
|
* 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.
| * Use std::unordered_map instead of hash_map where available.Stephen Kelly2015-05-181-1/+9
| |
* | cmGlobalGenerator: Host the MakeSilentFlag.Stephen Kelly2015-05-181-0/+1
| |
* | cmGlobalGenerator: Add NVI wrapper to create local generator.Stephen Kelly2015-05-161-2/+4
|/
* 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.
* RC: Simplify selection of resource compiler based on C/C++ toolchainBrad King2015-05-071-1/+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.
* Merge topic 'fix-cmState-try_compile-languages'Brad King2015-05-011-1/+0
|\ | | | | | | | | 27343e3b cmGlobalGenerator: Finish storing enabled languages in cmState
| * cmGlobalGenerator: Finish storing enabled languages in cmStateBrad King2015-04-301-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | 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-1/+1
|/ | | | | | | Pass the parent though cmGlobalGenerator::CreateLocalGenerator. This will make it easy to initialize state scopes independent of cmMakefile.
* cmGlobalGenerator: Store languages as vector, not map.Stephen Kelly2015-04-121-1/+1
| | | | The second component of the map is never used.
* cmake: Teach --build to honor CMAKE_VERBOSE_MAKEFILE for NinjaGregor Jasny2015-02-261-2/+3
| | | | | | | | | 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>
* find_library: Fix repeat call after changing directory content (#15293)Brad King2014-12-081-8/+9
| | | | | | | | | | | | | We use cmGlobalGenerator::GetDirectoryContent to avoid repeating directory listings. However, GetDirectoryContent loads content from disk at most once. This breaks find_library calls that occur when disk content has changed since preceding find_library calls. Teach cmGlobalGenerator::GetDirectoryContent to save the directory modification time when content is loaded and re-load content if it changes. Create a RunCMake.find_library test with a case covering this.
* file: Add LOCK subcommand to do file and directory lockingRuslan Baratov2014-12-031-0/+10
| | | | | | | | | Provide options to fail without blocking or to block up to a timeout. Provide options to specify the scope containing the lock so it can be released automatically at the end of a function, file, or process. Extend the RunCMake.file test with cases covering the file(LOCK) command usage and error cases.
* Give the interactive cache editor the USES_TERMINAL propertyPeter Collingbourne2014-11-141-1/+2
|
* file(GENERATE): Evaluate early to allow generating source filesStephen Kelly2014-11-121-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | The evaluation files must be known before cmTargetTraceDependencies attempts to find them, but we must actually generate the files after cmTargetTraceDependencies, as that can add to target SOURCES. The limitation is that the generated output name must not depend on the SOURCES of a target if the generated file is used by that target. Mark the output files as GENERATED so that trace dependencies does not expect them to already exist in the filesystem. Move the invokation of ForceLinkerLanguage in the Generate logic to after the generated file names are known. ForceLinkerLanguage tries to determine the sources of a target (in order to determine an already-known language) and otherwise fails to get information about the generated file. Test that the output of file(GENERATE) can be used as a target source file and that accessing the target SOURCES in the name of the output file is an error. Accessing the TARGET_OBJECTS would be a similar error if it was legal to use that generator expression in this context. That is not currently possible and is a different error condition, so test the current error output as a reminder to change the expected output if that becomes possible in the future. Test that generated rule files resulting from cmTargetTraceDependencies appear in the SOURCES generated in the output file.
* Fix some spelling errors in commentsGeoff Viola2014-10-131-4/+4
|
* CMake: Add CMAKE_GENERATOR_PLATFORM optionBrad King2014-09-051-0/+4
| | | | | | | | | | | Reject the option by default. It will be implemented on a per-generator basis. Pass the setting into try_compile project generation. Add cache entry CMAKE_GENERATOR_PLATFORM and associated variable documentation to hold the value persistently. Add a RunCMake.GeneratorPlatform test to cover basic use cases for the option. Verify that CMAKE_GENERATOR_PLATFORM is empty by default, and that it is rejected when the generator does not support a user setting.
* cmGlobalGenerator: Take Build output argument by referenceBrad King2014-07-311-2/+2
| | | | | | No call sites pass NULL to the output argument, so take it by reference to avoid the if(output) conditions. Propagate the change through the TryCompile APIs that call it.
* cmGlobalGenerator: Create a non-virtual 'DoGenerate' methodBrad King2014-07-221-1/+3
| | | | | | | Make the virtual 'Generate' method protected. Make 'DoGenerate' the main entry point to generation. This gives cmGlobalGenerator a chance to do some early operations before the individual generator-specific implementations take over.
* Tell generators about CMAKE_SYSTEM_NAME as soon as it is knownBrad King2014-07-171-0/+4
| | | | | | | | | Add a cmGlobalGenerator::SetSystemName virtual method. Call it from cmGlobalGenerator::EnableLanguage as soon as CMAKE_SYSTEM_NAME is known. This will give generators a chance to adapt themselves to the target system. Pass the cmMakefile instance to the method so that the generator can update it accordingly. Return early from EnableLanguage if SetSystemName returns false.
* cmTarget: Compile old-style link dependencies only for VS 6Brad King2014-07-141-0/+2
| | | | | Compile all the "ForVS6" cmTarget members only on Windows. No other platforms support the VS 6 generator.
* cmTarget: Run old-style link dependencies only for VS 6Brad King2014-07-141-0/+3
| | | | | Invoke it at runtime only with the VS 6 generator. No other generators need it.
* VS: Move VS-only API out of cmGlobalGeneratorBrad King2014-06-121-3/+0
| | | | | Move the IsDependedOn method to cmGlobalVisualStudio7Generator since that is the only caller.