summaryrefslogtreecommitdiffstats
path: root/Source/cmGlobalNinjaGenerator.cxx
Commit message (Collapse)AuthorAgeFilesLines
* Merge topic 'ninja-multi-cross-configs'Brad King2020-01-241-10/+52
|\ | | | | | | | | | | | | b7a2baf38c Ninja Multi-Config: Add variable to control configs used in cross-config build Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !4269
| * Ninja Multi-Config: Add variable to control configs used in cross-config buildKyle Edwards2020-01-231-10/+52
| |
* | Merge topic 'multi-ninja-no-cleandead'Brad King2020-01-241-2/+11
|\ \ | |/ |/| | | | | | | | | 6cc74b6140 cmGlobalNinjaGenerator: avoid cleandead and recompact in Ninja-Multi Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !4261
| * cmGlobalNinjaGenerator: avoid cleandead and recompact in Ninja-MultiBen Boeckel2020-01-231-2/+11
| | | | | | | | Fixes: #20247
* | Ninja Multi-Config: Add variable to control aliases in build.ninjaKyle Edwards2020-01-221-13/+31
| |
* | Refactor: Split Ninja files into impl-<Config>.ninja and build-<Config>.ninjaKyle Edwards2020-01-221-35/+108
| |
* | Refactor: Move common.ninja into CMakeFilesKyle Edwards2020-01-221-1/+2
|/
* cmGlobalNinjaGenerator: only restat build.ninjaBen Boeckel2020-01-211-5/+19
| | | | This reduces the work that ninja needs to do on a CMake reconfigure.
* Ninja Multi-Config: Rename variable to be more consistentKyle Edwards2020-01-161-1/+1
| | | | Also make some tweaks to the documentation.
* Merge topic 'modernize-memory-management'Brad King2020-01-151-2/+1
|\ | | | | | | | | | | | | | | 328f586be7 cmAlgorithms.h: remove obsolete helpers f466cea3c9 cmMakefile: modernize memory management Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !4215
| * cmMakefile: modernize memory managementMarc Chevrier2020-01-141-2/+1
| |
* | Ninja Multi-Config: Improve error handling when not doing cross-config buildKyle Edwards2020-01-131-3/+9
|/
* Ninja Multi-Config: Make cross-config building opt-inKyle Edwards2020-01-101-2/+11
| | | | | | | | | | | Many users will want to use the Ninja Multi-Config generator like a traditional Visual Studio-style multi-config generator, which doesn't mix configurations - custom commands are built using target executables of the same configuration the command is for. We do not want to force these people to generate an N*N build matrix when they only need N*1, especially if they have lots of targets. Add a new variable, CMAKE_NINJA_CROSS_CONFIG_ENABLE, to opt-in to the cross-config build matrix.
* Merge topic 'ninja-postgen-commands'Brad King2020-01-101-0/+39
|\ | | | | | | | | | | | | | | fb18215904 Ninja: clean ninja metadata once generated Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: Jan Niklas Hasse <jhasse@bixense.com> Merge-request: !3316
| * Ninja: clean ninja metadata once generatedBen Boeckel2020-01-061-0/+39
| | | | | | | | Fixes: #15830
* | GlobalGenerator family: modernize memory managementMarc Chevrier2020-01-071-5/+4
|/
* cmGlobalGenerator: modernize memrory managemenbtMarc Chevrier2019-12-301-7/+8
|
* Refactoring: use append functions from cmext/algorithmMarc Chevrier2019-12-171-3/+4
|
* Ninja: Add multi-config variantKyle Edwards2019-12-131-126/+475
| | | | Co-Authored-by: vector-of-bool <vectorofbool@gmail.com>
* Refactor: Prepare Ninja generator for multi-configKyle Edwards2019-12-131-20/+35
|
* cmLocalGenerator: modernize memory managementMarc Chevrier2019-12-091-16/+17
|
* Revise include order using clang-format-6.0Kitware Robot2019-10-011-4/+6
| | | | | Run the `clang-format.bash` script to update our C and C++ code to a new include order `.clang-format`. Use `clang-format` version 6.0.
* Ninja: Factor out per-dir "all" target computation into common generatorBrad King2019-09-301-58/+22
| | | | This will make it re-usable for the Makefile generator.
* Ninja: Simplify top-level "all" target generationBrad King2019-09-301-32/+13
| | | | | Remove its dedicated implementation and update the per-directory "all" target generation to work for the top-level directory too.
* Ninja: Fix EXCLUDE_FROM_ALL OFF on sub/sub/tgt in sub/allBrad King2019-09-301-2/+19
| | | | | | | Defer adding a test to a later commit after all generators have been fixed. Issue: #19753
* Ninja,Makefile: Fix subdir "all" with nested EXCLUDE_FROM_ALL subdirBrad King2019-09-301-0/+3
| | | | | | | | | | The "all" target defined for a subdirectory (e.g. `cd sub; make` or `ninja sub/all`) should not include the "all" targets from nested subdirectories (e.g. `sub/sub`) that are marked as `EXCLUDE_FROM_ALL`. Fix this and add a test case. Issue: #19753 Co-Author: Sebastian Holtermann <sebholt@xwmw.org>
* cmGlobalNinjaGenerator: Remove unused AddDependencyToAll overloadBrad King2019-09-301-5/+0
|
* cmstd: Modernize CMake system headersMarc Chevrier2019-09-201-1/+1
| | | | | | | | | | | | | | Provide a standardized way to handle the C++ "standard" headers customized to be used with current CMake C++ standard constraints. Offer under directory `cm` headers which can be used as direct replacements of the standard ones. For example: #include <cm/string_view> can be used safely for CMake development in place of the `<string_view>` standard header. Fixes: #19491
* clang-tidy: modernize-deprecated-headersRegina Pfeifer2019-09-161-2/+2
|
* Source sweep: Use cmStrCat for string concatenationSebastian Holtermann2019-08-221-29/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch is generated by a python script that uses regular expressions to search for string concatenation patterns of the kind ``` std::string str = <ARG0>; str += <ARG1>; str += <ARG2>; ... ``` and replaces them with a single `cmStrCat` call ``` std::string str = cmStrCat(<ARG0>, <ARG1>, <ARG2>, ...); ``` If any `<ARGX>` is itself a concatenated string of the kind ``` a + b + c + ...; ``` then `<ARGX>` is split into multiple arguments for the `cmStrCat` call. If there's a sequence of literals in the `<ARGX>`, then all literals in the sequence are concatenated and merged into a single literal argument for the `cmStrCat` call. Single character strings are converted to single char arguments for the `cmStrCat` call. `std::to_string(...)` wrappings are removed from `cmStrCat` arguments, because it supports numeric types as well as string types. `arg.substr(x)` arguments to `cmStrCat` are replaced with `cm::string_view(arg).substr(x)`
* cmAlgorithms: Add cmContainsRegina Pfeifer2019-08-191-2/+1
| | | | Also, use the new function where applicable.
* cmStringAlgorithms: Add cmStrToLong and cmStrToULongSebastian Holtermann2019-08-101-1/+1
| | | | | | | | This adds the following functions to cmStringAlgorithms: - `cmStrToLong`: moved from `cmSystemTools::StringToLong` - `cmStrToULong`: moved from `cmSystemTools::StringToULong` Overloads of the given functions for `std::string` are added as well.
* Merge topic 'tidy_inefficient_string'Brad King2019-08-071-12/+16
|\ | | | | | | | | | | | | 18b0330b86 clang-tidy: Enable performance-inefficient-string-concatenation Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3648
| * clang-tidy: Enable performance-inefficient-string-concatenationSebastian Holtermann2019-08-051-12/+16
| | | | | | | | | | | | | | Enables the clang-tidy test performance-inefficient-string-concatenation and replaces all inefficient string concatenations with `cmStrCat`. Closes: #19555
* | cmStringAlgorithms: cmIsSpace, cmTrimWhitespace, cmEscapeQuotes, cmTokenizeSebastian Holtermann2019-08-051-2/+2
|/ | | | | | | | | | This adds the following functions to `cmStringAlgorithms`: - `cmIsSpace` - `cmTrimWhitespace` (moved from `cmSystemTools::TrimWhitespace`) - `cmEscapeQuotes` (moved from `cmSystemTools::EscapeQuotes`) - `cmTokenize` (moved from `cmSystemTools::tokenize` and adapted to accept `cm::string_view`)
* Ninja: Record dyndep support by Ninja 1.10Brad King2019-07-301-4/+9
| | | | | Upstream Ninja 1.10 and above support the `dyndep` feature we need for Fortran.
* Ninja: Drop unused dyndep version checkBrad King2019-07-301-28/+19
| | | | | | Our dyndep support version 1 has been merged to upstream Ninja. We never developed a second dyndep version, so simply drop our checks for different versions.
* Ninja: Use in-class initialization of global generator membersBrad King2019-07-301-8/+0
|
* cmStringAlgorithms: Move string functions to the new cmStringAlgorithms.hSebastian Holtermann2019-07-291-0/+1
| | | | | This adds the `cmStringAlgorithms.h` header and moves all string functions from `cmAlgorithms.h` to `cmStringAlgorithms.h`.
* cmGlobalNinjaGenerator: Use gnu compatible paths with QCCSamuel Ostlund2019-07-161-1/+3
|
* Introduce memory management helper: cm_memory.hxxMarc Chevrier2019-07-141-1/+2
|
* IWYU: Fix handling of <memory> standard headerBrad King2019-07-101-1/+1
| | | | | | | | An old workaround for `std::allocator_traits<>::value_type` lints from IWYU on `std::vector<>` usage breaks IWYU's handling of `<memory>`. Convert the workaround to use the same approach we already use for a workaround of `std::__decay_and_strip<>::::__type` lints. Then update the `<memory>` inclusions to follow the now-correct IWYU lints.
* Ninja: Remove non cmNinjaBuild based WriteBuild methodSebastian Holtermann2019-05-301-81/+75
|
* Ninja: Use cmNinjaBuild class for WriteBuildSebastian Holtermann2019-05-301-24/+21
|
* Ninja: Use cmNinjaBuild class for WriteBuildSebastian Holtermann2019-05-301-7/+6
|
* Ninja: Use cmNinjaBuild class for WriteBuildSebastian Holtermann2019-05-301-11/+5
|
* Ninja: Use cmNinjaBuild class for WriteBuildSebastian Holtermann2019-05-301-9/+4
|
* Ninja: Use cmNinjaBuild class for WriteBuildSebastian Holtermann2019-05-301-30/+27
|
* Ninja: Remove WritePhonyBuild methodSebastian Holtermann2019-05-301-10/+0
|
* Ninja: Use cmNinjaBuild instead of WritePhonyBuildSebastian Holtermann2019-05-301-8/+10
|