summaryrefslogtreecommitdiffstats
path: root/Source/cmNinjaNormalTargetGenerator.cxx
Commit message (Collapse)AuthorAgeFilesLines
* Merge topic 'getdef-expand'Brad King2020-06-021-9/+6
|\ | | | | | | | | | | | | 7ed8c9ebe3 cmMakefile: add GetDefExpandList() that splits value into std::vector Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !4819
| * cmMakefile: add GetDefExpandList() that splits value into std::vectorVitaly Stakhovsky2020-05-301-9/+6
| | | | | | | | Combines cmMakefile:GetDefinition() and cmExpandList()
* | Merge topic 'cmprop'Brad King2020-06-021-0/+1
|\ \ | | | | | | | | | | | | | | | | | | b36d1bdd9d Single location for cmProp typedef Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !4829
| * | Single location for cmProp typedefVitaly Stakhovsky2020-06-011-0/+1
| |/
* | GetDefinition: avoid duplicate callsVitaly Stakhovsky2020-05-291-2/+2
|/
* cmGeneratorTarget: Remove default config from Get* methodsBrad King2020-05-181-1/+1
| | | | Ensure all call sites pass an explicit configuration.
* cmGeneratorTarget::GetProperty: return cmPropVitaly Stakhovsky2020-04-291-6/+6
|
* CUDA: Device linking use now link optionsMarc Chevrier2020-04-191-26/+10
| | | | | | | | | | properties LINK_OPTIONS and INTERFACE_LINK_OPTIONS are propagated to the device link step. To control which options are selected for normal link and device link steps, the $<DEVICE_LINK> and $<HOST_LINK> generator expressions can be used. Fixes: #18265
* cmState::GetTargetTypeName: return type is *cmPropVitaly Stakhovsky2020-03-191-12/+15
|
* Merge branch 'backport-swift-ninja-multiconfig' into swift-ninja-multiconfigKyle Edwards2020-03-091-3/+3
|\
| * Swift: support Ninja Multi-ConfigSaleem Abdulrasool2020-03-091-3/+3
| | | | | | | | | | Enable support for multi-configuration builds using Ninja when building Swift.
* | Add support for FRAMEWORK_MULTI_CONFIG_POSTFIX_<CONFIG>Alexandru Croitor2020-03-041-1/+13
|/
* Merge branch 'backport-cuda-non-device-link'Brad King2020-02-241-2/+2
|\
| * Ninja: Do not use nvcc response files with non-nvcc toolsFrancisco Facioni2020-02-241-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | Since commit d91b5a72cd (Ninja: Add support for CUDA nvcc response files, 2019-05-30, v3.15.0-rc1~8^2) we use NVCC's `--options-file` option to avoid long link command lines via a response file. However, for non-device linking the host tools are used and the option does not make sense. Update the logic to use `--options-file` only for device linking. Linking with the host tools already has its own logic for response files. Fixes: #19954
* | Merge topic 'swift-exe-exports'Brad King2020-02-041-3/+10
|\ \ | | | | | | | | | | | | | | | | | | 1e26d57188 Ninja: properly handle exports from Swift exes Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !4314
| * | Ninja: properly handle exports from Swift exesSaleem Abdulrasool2020-02-021-3/+10
| | | | | | | | | | | | | | | | | | This adds logic to properly handle Swift executables. Only executables marked as exporting symbols will now generate module interfaces for the executable.
* | | AIX: Add an option to disable automatic exports from shared librariesBrad King2020-01-311-0/+2
|/ / | | | | | | | | | | | | | | | | | | Since commit 0f150b69d3 (AIX: Explicitly compute shared object exports for both XL and GNU, 2019-07-11, v3.16.0-rc1~418^2~2) we always export all symbols from shared libraries by default. Add a new target property called `AIX_EXPORT_ALL_SYMBOLS` that can be explicitly set to OFF to suppress this behavior and export no symbols by default. Fixes: #20290
* | Ninja Multi-Config: Add variable to control configs used in cross-config buildKyle Edwards2020-01-231-4/+6
| |
* | Refactor: Split Ninja files into impl-<Config>.ninja and build-<Config>.ninjaKyle Edwards2020-01-221-5/+5
| |
* | CUDA: Mult-Config Ninja generator now supports CUDARobert Maynard2020-01-131-7/+38
| |
* | Merge topic 'ninja-cross-build-disable'Brad King2020-01-131-2/+12
|\ \ | | | | | | | | | | | | | | | | | | e8032e202e Ninja Multi-Config: Make cross-config building opt-in Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !4205
| * | Ninja Multi-Config: Make cross-config building opt-inKyle Edwards2020-01-101-2/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | Refactoring: suppress cmEraseIf in favor of cm::erase_ifMarc Chevrier2020-01-091-3/+3
|/ /
* | cmGlobalGenerator: modernize memrory managemenbtMarc Chevrier2019-12-301-2/+2
| |
* | Ninja: Add multi-config variantKyle Edwards2019-12-131-46/+110
| | | | | | | | Co-Authored-by: vector-of-bool <vectorofbool@gmail.com>
* | Refactor: Prepare Ninja generator for multi-configKyle Edwards2019-12-131-146/+175
| |
* | replace remove and remove_directory with rm in testsJohnny Jazeix2019-11-131-1/+1
| |
* | PCH: Generate sources during Compute stepCristian Adam2019-10-091-2/+0
| |
* | Unity build: Generate sources during Compute stepBrad King2019-10-031-1/+0
| | | | | | | | | | | | | | | | The unity build sources need to be added for all generators. Create them during `cmGlobalGenerator::Compute` to avoid duplicating the calls in every generator. We already handle Qt autogen there too. Issue: #19789
* | Ninja: Ensure shared library version symlinks are created for dependentsBrad King2019-10-011-0/+21
| | | | | | | | | | | | | | | | When linking to a shared library target that has version symlinks, add an order-only dependency on the build statement that creates the links. This ensures that the links exist for use at runtime. Fixes: #19774
* | 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-1/+1
| |
* | Merge topic 'unity-build'Brad King2019-09-051-0/+1
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7786a05c70 Unity build: Add XCode support 1353802af3 Unity build: Add unit tests 8dfeb5d278 Unity build: Add support for Visual Studio generator 7114c141e2 Unity build: Add support for Ninja and Makefile generators Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: Stanislav Ershov <digital.stream.of.mind@gmail.com> Acked-by: Evgeniy Dushistov <dushistov@mail.ru> Acked-by: Viktor Kirilov <vik.kirilov@gmail.com> Merge-request: !3611
| * | Unity build: Add support for Ninja and Makefile generatorsCristian Adam2019-08-291-0/+1
| | |
* | | Merge topic 'clang-ipo-support'Brad King2019-09-031-0/+8
|\ \ \ | |/ / |/| | | | | | | | | | | | | | | | | | | | | | | dca9c33abc Tests: Remove old IPO test c856d4556b bindexplib: supporting llvm bitcode formats using llvm-nm 079b8e2916 Clang: prefer lld-link over link.exe 6e3655db2c Clang: add LTO support for GNU-command line clang on windows Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3527
| * | bindexplib: supporting llvm bitcode formats using llvm-nmZsolt Parragi2019-08-301-0/+8
| | |
* | | Merge topic 'precompile-headers'Brad King2019-08-291-0/+2
|\ \ \ | |/ / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8da78d4efe Precompile headers: Update documentation 5772930164 Precompile headers: Add unit tests 519606704e Precompile headers: Add support for Visual Studio generators 28be170fbc Precompile headers: Add support for Xcode generator b8626261e9 Precompile headers: Add methods to generate PCH sources 375d01c680 PCH: add example/test 9b6797e71d PCH: add target_precompile_headers command 0467a2f91b PCH: add PRECOMPILE_HEADERS to special properties Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: Daniel Pfeifer <daniel@pfeifer-mail.de> Acked-by: Ivan171 <heavenandhell171@gmail.com> Acked-by: Stanislav Ershov <digital.stream.of.mind@gmail.com> Acked-by: Steve Mokris <smokris@softpixel.com> Acked-by: Evgeniy Dushistov <dushistov@mail.ru> Acked-by: Danila Malyutin <flashmozzg@gmail.com> Acked-by: Viktor Kirilov <vik.kirilov@gmail.com> Acked-by: Lucas Zhao <zhaopf6@163.com> Merge-request: !3553
| * | Precompile headers: Add methods to generate PCH sourcesCristian Adam2019-08-281-0/+2
| | | | | | | | | | | | Co-Author: Daniel Pfeifer <daniel@pfeifer-mail.de>
* | | Merge topic 'ninja_additional_clean_files_custom_target'Brad King2019-08-271-0/+1
|\ \ \ | |/ / |/| / | |/ | | | | | | | | d040f3f1ee Tests: Extend MakeClean test to test various target types 3ed8cffe73 Ninja: Add support for ADDITIONAL_CLEAN_FILES in custom targets Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3739
| * Ninja: Add support for ADDITIONAL_CLEAN_FILES in custom targetsSebastian Holtermann2019-08-261-0/+1
| | | | | | | | | | | | | | This enables the support for `ADDITIONAL_CLEAN_FILES` in custom targets using the ninja generator. Fixes: #19641
* | Source sweep: Use cmStrCat for string concatenationSebastian Holtermann2019-08-221-59/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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)`
* | clang-tidy: isolate declarations for readabilityRegina Pfeifer2019-08-201-1/+2
| |
* | Source code: Use cmExpandList instead of cmSystemTools::ExpandListArgumentSebastian Holtermann2019-08-141-5/+5
| |
* | clang-tidy: Enable performance-inefficient-string-concatenationSebastian Holtermann2019-08-051-2/+2
| | | | | | | | | | | | | | Enables the clang-tidy test performance-inefficient-string-concatenation and replaces all inefficient string concatenations with `cmStrCat`. Closes: #19555
* | 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`.
* | 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: Fix CUDA device linking when using response filesFrancisco Facioni2019-06-251-13/+2
| | | | | | Fix the logic added by commit d91b5a72cd (Ninja: Add support for CUDA nvcc response files, 2019-05-30, v3.15.0-rc1~8^2) to always use the CUDA compiler response file flag for response files during device linking.
* Ninja: Add support for CUDA nvcc response filesFrancisco Facioni2019-06-031-6/+15
|
* Ninja: Compute linker response file flag earlierFrancisco Facioni2019-06-031-22/+28
|