summaryrefslogtreecommitdiffstats
path: root/Source/cmGlobalNinjaGenerator.h
Commit message (Collapse)AuthorAgeFilesLines
* Ninja: Add policy to require explicit custom command byproductsBrad King2015-03-201-0/+5
| | | | | | | | | | | | Add policy CMP0058 to avoid generating 'phony' ninja rules for unknown custom command dependencies. This requires projects to specify their custom command byproducts explicitly. With this requirement we no longer have to assume that unknown custom command dependencies are generated and can instead simply assume they are source files expected to exist when the build starts. This is particularly important in in-source builds. It is also helpful for out-of-source builds to allow Ninja to diagnose missing files before running custom command rules that depend on them.
* cmGlobalNinjaGenerator: Drop unused memberBrad King2015-03-181-2/+0
|
* cmake: Teach --build to honor CMAKE_VERBOSE_MAKEFILE for NinjaGregor Jasny2015-02-261-1/+1
| | | | | | | | | 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>
* Ninja: Refactor restat to be a string internallyBrad King2014-11-141-2/+2
| | | | | This will allow values other than "" and "1" to be generated in the rules.ninja file.
* Ninja: Implement USES_TERMINAL using the console pool if availablePeter Collingbourne2014-11-141-0/+1
|
* Ninja: factor out the test for console pool supportPeter Collingbourne2014-11-141-0/+3
|
* Fix some spelling errors in commentsGeoff Viola2014-10-131-1/+1
|
* Ninja: Use 'console' pool for CMake re-run if possible (#14915)Sylvain Joubert2014-10-031-1/+2
| | | | | | | | | The pre-defined 'console' pool is a non-buffered pool that runs with a depth of 1. CMake re-run cannot be run concurrently and it will eventually output something. A non-buffered pool allows to get it as soon as possible Also, generate the minimal required version of Ninja in the build file.
* cmGlobalGenerator: Create a non-virtual 'DoGenerate' methodBrad King2014-07-221-3/+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.
* Ninja: Consider only custom commands deps as side-effects (#14972)Adam Strzelecki2014-06-301-4/+5
| | | | | | | | | | | | | | | | | Since commit v2.8.12~248^2 (Ninja: Custom Command file depends don't need to exist before building, 2013-06-07) all explicit dependencies inside build folder were considered as possible build command side-effects and phony rules were produced for them in case they don't exist when starting to build. This is unnecessary since regular compile inputs need to exist or cmake will fail. Moreover the exception for sources having GENERATED property that can be missing is already handled by WriteAssumedSourceDependencies. This fixes unwanted phony rules for all regular source files when doing in-source build, causing Ninja not complain when such files gets missing, i.e. during development. Also this reduces number of rules in ninja.build. Now only custom command dependencies are considered as possible side-effects.
* cmGlobalGenerator: Make ComputeTargetObjects non-virtualStephen Kelly2014-03-151-2/+0
| | | | | | | | Implement it in terms of the ComputeObjectFilenames virtual method on the local generators. Remove the reimplementation from the global generators which are now all functionally identical.
* cmGlobalGenerator: Extract a ComputeTargetObjectDirectory interface.Stephen Kelly2014-03-131-1/+1
| | | | Make it public for future external calls.
* stringapi: Use strings for program pathsBen Boeckel2014-03-081-1/+1
|
* stringapi: Use strings for generator namesBen Boeckel2014-03-081-2/+2
|
* stringapi: Use strings for directoriesBen Boeckel2014-03-081-1/+1
|
* stringapi: Pass configuration names as stringsBen Boeckel2014-03-081-1/+1
|
* stringapi: Use strings for VS project namesBen Boeckel2014-03-081-1/+1
|
* stringapi: Use strings in target nameBen Boeckel2014-03-081-1/+1
|
* cmGlobalGenerator: Make CheckALLOW_DUPLICATE_CUSTOM_TARGETS constStephen Kelly2014-01-121-1/+1
|
* Constify handling of target dependencies.Stephen Kelly2013-12-111-2/+2
|
* cmGlobalGenerator: Cleanup GenerateBuildCommand APIBrad King2013-11-181-8/+10
| | | | | | | | | All cmGlobalGenerator::GenerateBuildCommand call sites that need to produce a string now generate "cmake --build" commands. The remaining call sites immediately pass the result to cmSystemTools::RunSingleCommand. Avoid the intermediate string and argument parsing by directly producing a vector of strings. Also drop the ignoreErrors argument because no call sites remain that use it.
* Refactor tool selection for edit_cache (#14544)Brad King2013-11-121-0/+1
| | | | | | | | | Refactor edit_cache tool selection to ask each global generator for its preference. Teach the Ninja generator to always use cmake-gui because Ninja by design cannot run interactive terminal dialogs like ccmake. Teach the Makefile generator to use cmake-gui when also using an "extra" generator whose IDE has no terminal to run ccmake, and otherwise fall back to CMAKE_EDIT_COMMAND selection for normal Makefile build systems.
* Ninja: use deps = gcc/msvc featurePeter Kümmel2013-10-241-6/+9
| | | | cmcldeps is now only used for .rc file processing
* Ninja: Custom Command file depends don't need to exist before buildingRobert Maynard2013-07-011-0/+7
| | | | | | | | | | | | | | | When converting custom commands for the ninja build system we need to make sure that any file dependencies that exist in the build tree are converted to phony targets. This tells ninja that these files might not exist when starting the build, but could be generated during the build. This is done by tracking all dependencies for custom command targets. After all have been written out we remove all items from the set that have been seen as a target, custom command output, an alias, or a file in the source directory. Anything that is left is considered to be a file that will be generated as a side effect of another custom command.
* Ninja: GlobalNinjaGenerator WriteBuild and WritePhonyBuild non staticRobert Maynard2013-07-011-17/+17
| | | | | | To properly track the usage of dependencies that are generated at compile time as the side effect of other build steps we need to make the WriteBuild and WritePhonyBuild commands non static
* Add projectDir parameter to GenerateBuildCommandPetr Kmoch2013-04-121-0/+1
| | | | | | | | Extend the cmGlobalGenerator::GenerateBuildCommand virtual method signature with a "projectDir" parameter specifying the top of the project build tree for which the build command will be generated. Populate it from call sites in cmGlobalGenerator::Build where a fully-generated build tree should be available.
* Make cmGlobalGenerator::GetDocumentation() a static functionPatrick Gansterer2012-11-191-1/+1
| | | | | Making the function static allows us to call it directly, without creating and removing an instance of the generator.
* Introduce the abstract class cmGlobalGeneratorFactoryPatrick Gansterer2012-11-191-2/+3
| | | | | This new abstract class allows us move some logic from the cmGlobalGenerator into its own layer in a next step.
* Ninja: don't confuse ninja's rsp files with nmake'sPeter Kümmel2012-09-281-0/+1
| | | | Move response files into CMakeFiles/ which makes them different to nmake's.
* Ninja: remove 'friend' in ninja codePeter Kümmel2012-07-181-52/+52
|
* Ninja: Copy resource files in the bundle.Nicolas Despres2012-07-171-0/+4
| | | | This patch fixes test BundleTest on Darwin.
* Ninja: remove some unused default argumentsPeter Kümmel2012-07-101-7/+7
|
* Ninja: also write link libraries to rsp filePeter Kümmel2012-07-101-1/+3
| | | | and enable rspfile support on Linux, needed for commands longer than e.g. 2096152 characters on Ubuntu.
* Ninja: also consider rule command length for rsp filePeter Kuemmel2012-07-021-0/+5
|
* Ninja: build cmcldeps with mingwPeter Kuemmel2012-06-151-1/+1
|
* Ninja: Eclipse and KDevelop fixes for ninjaPeter Kuemmel2012-06-151-0/+2
| | | | Thx to Claus Klein
* Ninja: undo all the NOSHELL patchesPeter Kuemmel2012-06-141-1/+0
|
* Ninja: don't use shell when cmake is called directlyPeter Kuemmel2012-06-141-0/+1
| | | | | | | | | | | | | | | When linking with cmake and vs_link_* the command line could be too long for cmd.exe, which needs not to be called in this case. (was not cached by a test) Introduce rules which don't use the shell and use this rule when there are no pre or post step. For free we get a small speedup, because cmd is then not called. Also be more accurate when estimating the command line length.
* Ninja: remove unused CommentStreamPeter Kuemmel2012-06-131-7/+0
|
* Ninja: use slashes for include dirs, so also slahes are in the .d filesPeter Kuemmel2012-06-121-0/+3
|
* Ninja: don't pollute the rules file with useless commentsPeter Kuemmel2012-06-101-0/+10
|
* Ninja: add response file support on WindowsPeter Kuemmel2012-06-051-1/+6
| | | | | | | When MinGW is used slashes are used for dependencies because ar.exe can't read rsp files with backslashes. Many thx to Claus Klein for starting working on this.
* Make the CMAKE_EXPORT_COMPILE_COMMANDS option work with Ninja.Stephen Kelly2012-06-041-0/+6
|
* Ninja: Add a convenient 'help' target.Nicolas Despres2012-05-091-0/+1
|
* Ninja: Add a convenient 'clean' target.Nicolas Despres2012-05-091-0/+1
| | | | | It has been asked on the mailing list: http://public.kitware.com/pipermail/cmake-developers/2012-April/003805.html
* Pre-compute object file names before Ninja generationBrad King2012-03-161-0/+6
| | | | | | Implement cmGlobalGenerator::ComputeTargetObjects in the Ninja generator to pre-compute all the object file names. Use the results during generation instead of re-computing it later.
* Ninja: Constify use of cmCustomCommandBrad King2012-03-131-2/+2
| | | | The generator never needs to modify custom command instances.
* Ninja: add .def file supportPeter Kuemmel2012-03-071-0/+2
|
* Ninja: Backslash rules for WindowsPeter Collingbourne2012-02-191-0/+1
| | | | | | Generally these are only required in build statements, as Ninja wants to be able to chop paths up. But it doesn't hurt to also try to use them in command line arguments.
* Ninja: Appease various compilersPeter Collingbourne2012-02-051-1/+1
|