summaryrefslogtreecommitdiffstats
path: root/Source/cmMakefileTargetGenerator.cxx
Commit message (Collapse)AuthorAgeFilesLines
...
| * ObjC: Add _COMPILE_LAUNCHER supportCristian Adam2020-01-091-2/+2
| | | | | | | | Fixes: #20178
* | CUDA: Device linking use now link optionsMarc Chevrier2020-04-191-0/+12
| | | | | | | | | | | | | | | | | | | | 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
* | Merge topic 'makefile-target-special'Brad King2020-04-161-4/+10
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | a4173ef165 Tests: Enable coverage of special chars in include dirs for Makefiles d74e651b78 Makefiles: Re-implement makefile target path escaping and quoting 031bfaa865 Makefiles: Factor out makefile target path escaping and quoting ca343dad07 Makefiles: Convert paths with '#' on command-lines to short path on Windows af7de05853 Makefiles: Do not use '\#' escape sequence with Windows-style make tools 1639ee70ef cmDepends: Update types to always use a Makefile generator 413d26030f cmGlobalNinjaGenerator: Remove outdated comment Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !4605
| * | Makefiles: Do not use '\#' escape sequence with Windows-style make toolsBrad King2020-04-151-4/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since commit fbf7a92975 (Makefile: Handle '#' in COMPILE_OPTIONS, 2014-08-12, v3.1.0-rc1~174^2) we escape `#` as `\#` in `flags.make` variable assignments so that they are not treated as a comment. Windows-style make tools like NMake do not interpret backslashes in that way. Other means will be needed to handle `#` in contexts where it is even possible. The test suite is not covering this for NMake anyway, and actually has a workaround in `Tests/TryCompile` for the old behavior, which we can now update.
* | | cmSourceFile::GetProperty: return cmPropVitaly Stakhovsky2020-04-141-14/+14
|/ /
* | Merge topic 'pch-ios-multi-arch'Brad King2020-04-031-18/+49
|\ \ | | | | | | | | | | | | | | | | | | f593b354da PCH: Add support for multi architecture iOS projects Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !4561
| * | PCH: Add support for multi architecture iOS projectsCristian Adam2020-04-021-18/+49
| | | | | | | | | | | | Fixes: #20497
* | | cmMakefile::GetProperty: return cmPropVitaly Stakhovsky2020-04-011-4/+4
|/ /
* | Merge topic 'cleanup-endls-1'Brad King2020-03-271-2/+1
|\ \ | | | | | | | | | | | | | | | | | | 3fdd8db3aa Refactor: Avoid `std::endl` where it's not necessary (part 1) Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !4513
| * | Refactor: Avoid `std::endl` where it's not necessary (part 1)Alex Turbov2020-03-261-2/+1
| | | | | | | | | | | | | | | | | | | | | The `std::endl` manupulator, except inserting `\n` character, also performs `os.flush()`, which may leads to undesired effects (like disk I/O in the middle of forming data strings). For the `std::stringstream` it also has no meaning.
* | | Merge topic 'cmprop-getglobalprop'Brad King2020-03-271-3/+2
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | c84cf42897 cmState::GetGlobalProperty: return cmProp Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !4521
| * | | cmState::GetGlobalProperty: return cmPropVitaly Stakhovsky2020-03-251-3/+2
| | | |
* | | | Merge topic 'cleanup-CollapseFullPath-calls'Brad King2020-03-261-14/+11
|\ \ \ \ | |_|/ / |/| | | | | | | | | | | | | | | | | | | | | | | 25f48761fa Simplify absolute path conversions using CollapseFullPath full signature 12b39aef75 Remove redundant calls to CollapseFullPath Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !4518
| * | | Simplify absolute path conversions using CollapseFullPath full signatureBrad King2020-03-241-2/+4
| | | |
| * | | Remove redundant calls to CollapseFullPathBrad King2020-03-241-12/+7
| |/ / | | | | | | | | | | | | Remove calls where it is known the input is already a collapsed full path.
* | | cmState::GetTargetTypeName: return type is *cmPropVitaly Stakhovsky2020-03-191-1/+1
|/ /
* | cmGeneratorExpression: remove const char* overloadsVitaly Stakhovsky2020-03-081-1/+1
| |
* | clang-tidy: Fix explicit --driver-mode= argumentBrad King2020-01-311-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | Since commit f6f4eb0907 (clang-tidy: Add driver mode argument, 2020-01-19) the `clang-tidy` tool rejects the new option: Unknown command line argument '--driver-mode=g++'. This is because we are adding the flag before the main compiler command-line. Encode it with `--extra-arg-before=` so that `clang-tidy` knows it is supposed to be part of the compiler command. Suggested-by: Hanjiang Yu
* | clang-tidy: Add driver mode argumentHanjiang Yu2020-01-271-1/+7
| | | | | | | | | | | | | | `clang-tidy` does not infer driver mode if it is not provided with a JSON compilation database. This is exactly the way cmake launches it. Hence clang-tidy will only use the default driver mode. Add an explicit driver mode argument to avoid this.
* | cmMakefileTargetGenerator: modernize memory managementMarc Chevrier2020-01-211-28/+21
| |
* | ObjC: Add _COMPILE_LAUNCHER supportCristian Adam2020-01-091-2/+2
| | | | | | | | Fixes: #20178
* | cmGlobalGenerator: modernize memrory managemenbtMarc Chevrier2019-12-301-1/+3
| |
* | Refactoring: use append functions from cmext/algorithmMarc Chevrier2019-12-171-11/+13
| |
* | Refactor: Prepare Ninja generator for multi-configKyle Edwards2019-12-131-50/+73
|/
* PCH: Fix Makefile dependencies to rebuild PCH on header changesBrad King2019-10-171-1/+5
| | | | | | | | Teach the Makefile generator to scan the implicit dependencies of PCH creation. When a header named by `target_precompile_headers` changes the corresponding PCH must be rebuilt and all consumers recompiled. Fixes: #19830
* cmMakefileTargetGenerator: Inline WriteObjectBuildFile in only call siteBrad King2019-10-161-17/+4
|
* PCH: Generate sources during Compute stepCristian Adam2019-10-091-2/+33
|
* cmGeneratorExpression: Add cmGeneratorExpression::Evaluate utilityDaniel Eiband2019-09-231-5/+4
| | | | | | | cmGeneratorExpression::Evaluate is a shortcut when only the evaluated string is needed or an instance of cmCompiledGeneratorExpression cannot be cached. Fixes: #19686
* cmGeneratorExpression: Move quiet flag to cmCompiledGeneratorExpressionDaniel Eiband2019-09-221-1/+1
| | | | | | The quiet flag is false for all but one call to Evaluate. Make the quiet flag a setter of cmCompiledGeneratorExpression to be able to remove it from the Evaluate function signature.
* Genex: Evaluate byproduct generator expressions in cmCustomCommandGeneratorDaniel Eiband2019-09-171-1/+2
| | | | | | | | | | | Evaluate and expand generator expressions in byproducts of custom commands. Note that it is still not possible to use generator expressions in byproducts of the commands `add_custom_command` and `add_custom_target`. These commands still reject the input. This is a preparation step for OUTPUT generator expression support. Issue: #12877
* Refactoring: Use ConfigName instead of property CMAKE_BUILD_TYPEDaniel Eiband2019-09-171-17/+11
| | | | | Use memorized `this->ConfigName` instead of retrieving the value of property CMAKE_BUILD_TYPE.
* clang-tidy: modernize-deprecated-headersRegina Pfeifer2019-09-161-1/+1
|
* cmLocalGenerator: Remove AppendFlags 'const char*' overloadBrad King2019-09-051-2/+2
| | | | | Update call sites to ensure the `std::string` argument can be constructed safely.
* Merge topic 'clang-ipo-support'Brad King2019-09-031-0/+7
|\ | | | | | | | | | | | | | | | | | | 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/+7
| |
* | Precompile headers: Add methods to generate PCH sourcesCristian Adam2019-08-281-1/+19
|/ | | | Co-Author: Daniel Pfeifer <daniel@pfeifer-mail.de>
* Merge topic 'pvs-cleanup'Brad King2019-08-261-4/+4
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7fe3e874d5 cmCPackLog: Fix support for multiple log message tags 74f2c0ea56 cmCTestTestHandler: Remove extra layer of parentheses 7c2767ef3b cmCTestMultiProcessHandler: Explain testRun ownership in comments 303e813438 CTest: Simplify some boolean conditions 51565abe79 cmMessageCommand: Remove extra layer of parentheses b1cfaf7b91 cmVSSetupHelper: Remove unused SmartBSTR copy operations 3f4c4e7afe cmVSSetupHelper: Fix SmartBSTR copy operations a8ca5aea94 cmMakefileTargetGenerator: Check for null before using a pointer ... Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: Daniel Pfeifer <daniel@pfeifer-mail.de> Acked-by: Artalus <artalus-mail@yandex.ru> Merge-request: !3715
| * cmMakefileTargetGenerator: Check for null before using a pointerBrad King2019-08-261-4/+4
| | | | | | | | | | | | | | | | Fix the order of logic added by commit 7740ccd1a4 (ENH: some cleanup of the makefile generator, 2006-02-14, v2.4.0~517) to check for allocation failure ('new' returns null) before using the pointer. Issue: #19610
* | Source sweep: Replace cmExpandList with the shorter cmExpandedListSebastian Holtermann2019-08-231-6/+5
| | | | | | | | | | | | | | | | | | | | | | | | This replaces the code pattern ``` std::vector<std::string> args; cmExpandList(valueStr, args, ...) ``` with ``` std::vector<std::string> args = cmExpandedList(valueStr, ...) ```
* | Source sweep: Use cmStrCat for string concatenationSebastian Holtermann2019-08-221-131/+100
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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)`
* Source sweep: Use cmIsOn instead of cmSystemTools::IsOnSebastian Holtermann2019-08-171-4/+4
| | | | | | | | | This replaces invocations of - `cmSystemTools::IsInternallyOn` with `cmIsInternallyOn` - `cmSystemTools::IsNOTFOUND` with `cmIsNOTFOUND` - `cmSystemTools::IsOn` with `cmIsOn` - `cmSystemTools::IsOff` with `cmIsOff`
* Source code: Use cmExpandList instead of cmSystemTools::ExpandListArgumentSebastian Holtermann2019-08-141-11/+10
|
* clang-tidy: Enable performance-inefficient-string-concatenationSebastian Holtermann2019-08-051-1/+1
| | | | | | | 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`.
* 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.
* Use cmAppend to append ranges to std::vector instancesSebastian Holtermann2019-05-231-22/+10
|
* Ninja,Makefile: Fix <LANG>_COMPILER_LAUNCHER shell command syntaxBrad King2019-05-221-2/+6
| | | | | | | | | The first entry in the compiler launcher command argument list is the command itself and should be converted to the shell's native command syntax (e.g. backslashes on Windows). Without this, the `RunCMake.CompilerLauncher` test fails on Windows when there are *no* spaces in the path to `cmake.exe`.
* Makefiles: Process ADDTIONAL_CLEAN_FILES dir prop at directory levelSebastian Holtermann2019-05-181-12/+0
| | | | | | | | | | | | | | In the "Unix Makefiles" generator, the `ADDTIONAL_CLEAN_FILES` directory property was evaluated on a per target basis. This had two drawbacks: - per directory clean files were repeated in every target clean script - per directory clean files weren't removed in directories without targets (issue #8164) This patch moves the `ADDTIONAL_CLEAN_FILES` directory property processing from the target to the directory level clean target. Fixes: #8164 "ADDITIONAL_CLEAN_FILES directory property not respected if no target present in directory"
* Merge topic 'string-cleanup'Brad King2019-05-171-2/+3
|\ | | | | | | | | | | | | | | 23e8364aed Source: std::string related cleanup Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: Sebastian Holtermann <sebholt@web.de> Merge-request: !3324
| * Source: std::string related cleanupVitaly Stakhovsky2019-05-151-2/+3
| |