summaryrefslogtreecommitdiffstats
path: root/Source/cmGlobalNinjaGenerator.cxx
Commit message (Collapse)AuthorAgeFilesLines
* Teach GenerateBuildCommand to find its own make programBrad King2013-11-181-1/+3
| | | | | | | | Add a cmGlobalGenerator::SelectMakeProgram method to select a caller-provided make program, the CMAKE_MAKE_PROGRAM cache entry, or a generator-provided default. Call it from all implementations of the GenerateBuildCommand method with the corresponding generator's default, if any.
* cmGlobalGenerator: Cleanup GenerateBuildCommand APIBrad King2013-11-181-31/+16
| | | | | | | | | 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/+7
| | | | | | | | | 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.
* Merge topic 'ninja-use-deps'Brad King2013-10-281-5/+31
|\ | | | | | | | | eeb4aec Ninja: use deps = gcc/msvc feature
| * Ninja: use deps = gcc/msvc featurePeter Kümmel2013-10-241-5/+31
| | | | | | | | cmcldeps is now only used for .rc file processing
* | Drop the 'Full' field from cmDocumentationEntryBrad King2013-10-161-4/+0
|/ | | | | We need only 'Brief' for usage documentation. We no longer have builtin 'Full' documentation, which is now in Help/*/*.rst files.
* Add the INTERFACE_LIBRARY target type.Stephen Kelly2013-10-071-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | This target type only contains INTERFACE_* properties, so it can be used as a structural node. The target-specific commands enforce that they may only be used with the INTERFACE keyword when used with INTERFACE_LIBRARY targets. The old-style target properties matching LINK_INTERFACE_LIBRARIES_<CONFIG> are always ignored for this target type. The name of the INTERFACE_LIBRARY must match a validity generator expression. The validity is similar to that of an ALIAS target, but with the additional restriction that it may not contain double colons. Double colons will carry the meaning of IMPORTED or ALIAS targets in CMake 2.8.13. An ALIAS target may be created for an INTERFACE library. At this point it can not be exported and does not appear in the buildsystem and project files are not created for them. That may be added as a feature in a later commit. The generators need some changes to handle the INTERFACE_LIBRARY targets returned by cmComputeLinkInterface::GetItems. The Ninja generator does not use that API, so it doesn't require changes related to that.
* Merge topic 'windows_ninja_duplicate_paths'Brad King2013-07-241-18/+22
|\ | | | | | | | | a11da72 Ninja: Properly convert all paths to unix style before we do set intersection.
| * Ninja: Properly convert all paths to unix style before we do set intersection.Robert Maynard2013-07-221-18/+22
| | | | | | | | | | | | On windows we had a subset of the paths as unix style and a subset as windows so when doing the set intersection it resulted in the same file being found twice.
* | OS X: Fix regression handling frameworks for NinjaClinton Stimpson2013-07-221-1/+7
|/ | | | | | | | | | Fix a regression created by commit 373faae5 (Refactor how bundles and frameworks are supported, 2013-05-05). Since the ninja file isn't aware of how framework symlinks work, we suppress symlink creation and let cmOSXBundleGenerator handle it. Also, use the real name of framework library in build rules as was done before, instead of the symlink.
* Ninja: Custom Command file depends don't need to exist before buildingRobert Maynard2013-07-011-3/+126
| | | | | | | | | | | | | | | 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-45/+45
| | | | | | 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
* Ninja: Track configured files so we can regenerate them.Robert Maynard2013-06-251-0/+3
| | | | | Unlike the Makefile generator the ninja generator did not tack any of its output files, so if they are deleted the generator would not run.
* Add projectDir parameter to GenerateBuildCommandPetr Kmoch2013-04-121-1/+3
| | | | | | | | 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.
* Merge topic 'ninja-escape-line-breaks'Brad King2013-03-131-0/+1
|\ | | | | | | | | 3b4436a Ninja: escape line breaks in literals
| * Ninja: escape line breaks in literalsPeter Kümmel2013-03-091-0/+1
| | | | | | | | BUG: 13591
* | Ninja: the Ninja generator does not support Fortran yet.Peter Kümmel2013-03-101-5/+11
|/
* Ninja: use MinGW generator code in EnableLanguage()Peter Kümmel2013-03-091-57/+4
|
* Make cmGlobalGenerator::GetDocumentation() a static functionPatrick Gansterer2012-11-191-2/+2
| | | | | Making the function static allows us to call it directly, without creating and removing an instance of the generator.
* Ninja: don't confuse ninja's rsp files with nmake'sPeter Kümmel2012-09-281-3/+9
| | | | Move response files into CMakeFiles/ which makes them different to nmake's.
* Merge topic 'ninja-fix-macosx'David Cole2012-07-241-0/+47
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1fc8df9 Add missing this->. 7a3ecf5 Fix memory leak in Makefile generator. 9f7dc83 Ninja: also bootstrap ninja files 5d365b2 Ninja: enable ninja support everywhere d569f3e Ninja: void function can't return a value 52160bf Ninja: enable ninja on Mac so all Mac CDash-builds are tested, cleanup later 56aeac6 Ninja: fixes for bcc 7a6bc9e Ninja: remove 'this' from member initializer list 44ba4cf Ninja: remove warnings 7751966 Ninja: remove 'friend' in ninja code c3988ee Re-factor OS X content generator start up. f8e0a51 Re-factor framework directory computation. f36c7b0 Re-factor Mac OS X content directory computation. 5d885db Re-factor bundle content copying rules generation. 3b2a01e Ninja: Use same echo message as makefiles. 7bb56c5 Re-factor CFBundle generation. ...
| * Ninja: Copy resource files in the bundle.Nicolas Despres2012-07-171-0/+47
| | | | | | | | This patch fixes test BundleTest on Darwin.
* | Ninja: path is already declaredPeter Kümmel2012-07-161-6/+6
| |
* | Ninja: more searching for windresPeter Kümmel2012-07-151-8/+23
| | | | | | | | | | search for windres with and without prefix, and also when only CXX compiler is set.
* | Ninja: there could be null pointersPeter Kümmel2012-07-151-2/+3
| |
* | Ninja: search for windres with prefixPeter Kümmel2012-07-151-3/+11
| |
* | Ninja: windres is also used for cross-compilingPeter Kümmel2012-07-151-3/+2
|/ | | | | It makes no sense to set windres.exe as default, especially when we are on Linux or Unix.
* Ninja: error on missing rspfile_contentPeter Kümmel2012-07-101-5/+9
|
* Ninja: also write link libraries to rsp filePeter Kümmel2012-07-101-1/+9
| | | | and enable rspfile support on Linux, needed for commands longer than e.g. 2096152 characters on Ubuntu.
* Merge topic 'ninja-fixes'David Cole2012-07-091-1/+1
|\ | | | | | | | | | | | | | | 6b31d39 Ninja: don't shadow 'outputs' variable 9b311fb Ninja: add soname test case e3b1be2 Ninja: Clean all symlink created for libraries. 990f77e Ninja: remove int/size_t warning
| * Ninja: remove int/size_t warningPeter Kuemmel2012-07-091-1/+1
| |
* | Merge topic 'ninja-cmdLineLimit'David Cole2012-07-091-19/+22
|\ \ | |/ | | | | | | | | 6332ba5 Ninja: also consider rule command length for rsp file 0c42faf Ninja: also consider variables when checking command line length
| * Ninja: also consider rule command length for rsp filePeter Kuemmel2012-07-021-0/+2
| |
| * Ninja: also consider variables when checking command line lengthPeter Kuemmel2012-07-011-19/+20
| |
* | Merge topic 'fix-typo'David Cole2012-07-091-1/+1
|\ \ | | | | | | | | | | | | b163c45 Ninja: Fix typo: tagets -> targets
| * | Ninja: Fix typo: tagets -> targetsDavid Cole2012-06-261-1/+1
| |/ | | | | | | Thanks to Claus Klein for the report on the mailing list.
* | Merge topic 'Ninja-absolute-compile-commands'David Cole2012-07-091-1/+10
|\ \ | |/ |/| | | | | | | | | ca403b8 Construct the full path before escaping it. f9383a9 STYLE: Fix line length, remove extra blank line e30d46e Use full paths in compile_commands.json for out of source builds.
| * Use full paths in compile_commands.json for out of source builds.Stephen Kelly2012-06-191-1/+10
| | | | | | | | | | | | | | Clang tooling requires that paths in the directory and file JSON fields are relative to the directory field, but clang doesn't normalize the paths already. The result is that clang doesn't find the relevant entry for files which begin with ../.
* | Merge topic 'ninja-cldeps'David Cole2012-06-191-9/+26
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | eb410e8 Ninja: disable cldeps for bcc32, it's too old, and ninja would also not build 5ead31d Ninja: try work around for bcc32 bug 1333b57 Ninja: build server fixes 9081e3a remove warning about unused parameter f430bea Ninja: maybe this fixes the bcc32 build f2c1288 Ninja: msvc6 for-scoping 44b9bbc Ninja: build with old msvc versions 57156a5 Ninja: build server fixes f1abdce Ninja: some bytes of the rc files couldn't be piped correctly 2de963d Ninja: don't remove space between command and parameters 50b6f33 Ninja: build cmcldeps with mingw c05653e Ninja: try to make GetProcessId visible ab245ff Ninja: but cl supports /nologo ... bf58e9a Ninja: no /nologo option in old rc.exe 2fb07fc Ninja: Eclipse and KDevelop fixes for ninja 518c065 Ninja: don't pollute build dir with preprocessed rc files ...
| * | Ninja: Eclipse and KDevelop fixes for ninjaPeter Kuemmel2012-06-151-2/+13
| | | | | | | | | | | | Thx to Claus Klein
| * | Ninja: be more accurate when estimating the command line lengthPeter Kuemmel2012-06-151-1/+2
| | |
| * | Ninja: undo all the NOSHELL patchesPeter Kuemmel2012-06-141-9/+1
| | |
| * | Ninja: remove nop linePeter Kuemmel2012-06-141-2/+0
| | |
| * | Ninja: build with old vc versionsPeter Kuemmel2012-06-141-1/+1
| | |
| * | Ninja: don't use shell when cmake is called directlyPeter Kuemmel2012-06-141-1/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-11/+1
| | |
| * | Ninja: don't pollute the rules file with useless commentsPeter Kuemmel2012-06-101-1/+19
| | |
| * | Ninja: allow spaces in source pathPeter Kuemmel2012-06-081-13/+1
| | | | | | | | | | | | And make /showIncude prefix visible for all build rules
| * | Ninja: add wrapper for cl to extract dependenciesPeter Kuemmel2012-06-081-2/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | cmcldeps wraps cl and adds /showInclude before calling cl. It parses the output of cl for used headers, drops system headers and writes them to a GCC like dependency file. cmcldeps uses ATM ninja code for process handling, but could be ported later to SystemTools. TODO: Why needs ninja multiple calls in the BuildDepends test?
* | | Merge branch 'ninja-rspfile' into no-std-stringstreamBrad King2012-06-121-25/+79
|\ \ \ | |/ / | | / | |/ |/| | | | | Conflicts: Source/cmGlobalNinjaGenerator.cxx Source/cmLocalNinjaGenerator.cxx Source/cmNinjaNormalTargetGenerator.cxx