summaryrefslogtreecommitdiffstats
path: root/Source/cmMakefileTargetGenerator.cxx
Commit message (Collapse)AuthorAgeFilesLines
...
| * | clang-tidy: allow OBJC and OBJCXXAndrew Fuller2020-11-051-7/+13
| | |
* | | Makefiles: Honor CMAKE_EXPORT_COMPILE_COMMANDS for ASMMaxime Girard2020-11-041-1/+1
|/ / | | | | | | | | | | Generate build command for assembly file in `compile_command.json`. Issue: #20059
* | cmLocalGenerator::GetRuleLauncher: return cmPropvvs314152020-11-021-2/+2
|/
* CUDA: Clang separable compilationRaul Tambre2020-09-241-2/+131
| | | | | | | | | | | | For NVCC the compiler takes care of device linking when passed the "-dlink" flag. Clang doesn't support such magic and requires the buildsystem to do the work that NVCC does behind the scenes. The implementation is based on Bazel's device linking documentation: https://github.com/tensorflow/tensorflow/blob/7cabcdf073abad8c46e9dda62bb8fa4682d2061e/third_party/nccl/build_defs.bzl.tpl#L259 Closes: #20726
* Makefile: Add policy CMP0113 to avoid duplication of custom commandsBrad King2020-09-081-0/+35
| | | | | | | | | | | | | | | | | Do not attach a custom command to a target if it is already attached to one of the target's dependencies. The command's output will be available by the time the target needs it because the dependency containing the command will have already been built. This may break existing projects that do not properly mark non-created outputs with the `SYMBOLIC` property. Previously a chain of two custom commands whose intermediate dependency is not created would put both commands in a dependent project's Makefile even if the first command is also in its dependency's Makefile. The first command would run twice but the build would work. Now the second command needs an explicit `SYMBOLIC` mark on its input to tell CMake that it is not expected to exist. To maintain compatibility with projects that left out the mark, add a policy activating the behavior.
* cmMakefileTargetGenerator: Simplify custom command output collectionBrad King2020-09-081-10/+3
|
* ISPC: Support generation for multiple instruction setsRobert Maynard2020-09-041-2/+16
|
* ISPC: Add compiler launcher supportRobert Maynard2020-09-031-1/+1
|
* cmMakefile::GetDefinition: return cmPropVitaly Stakhovsky2020-09-021-34/+40
|
* Merge topic 'ispc_lang_support'Brad King2020-09-011-2/+37
|\ | | | | | | | | | | | | | | | | | | | | | | 5ece12b7e4 gitlab-ci: add ISPC to the Fedora CI image 8976817d6d ISPC: Update help documentation to include ISPC 2368f46ba4 ISPC: Support building with the MSVC toolchain e783bf8aa6 ISPC: Support ISPC header generation byproducts and parallel builds 34cc6acc81 Add ISPC compiler support to CMake 419d70d490 Refactor some swift only logic to be re-used by other languages Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !5065
| * ISPC: Support ISPC header generation byproducts and parallel buildsRobert Maynard2020-08-281-1/+35
| |
| * Add ISPC compiler support to CMakeRobert Maynard2020-08-281-1/+2
| |
* | Add INTERFACE libraries to generated buildsystem if they have SOURCESBrad King2020-08-071-0/+1
|/ | | | | | | | | | | | | | | | | | | | | | | | INTERFACE libraries were created with the intention of collecting usage requirements for use by other targets via `target_link_libraries`. Therefore they were not allowed to have SOURCES and were not included in the generated buildsystem. In practice, this has become limiting: * Header-only libraries do have sources, they just do not compile. Developers should be able to edit those sources (the header files) in their IDE. * Header-only libraries may need to generate some of their header files via custom commands. Some projects work around these limitations by pairing each interface library with an `add_custom_target` that makes the header files and custom commands appear in the generated buildsystem and in IDEs. Lift such limitations by allowing INTERFACE libraries to have SOURCES. For those with sources, add a corresponding build target to the generated buildsystem. Fixes: #19145
* Source: use cmNonempty()Vitaly Stakhovsky2020-07-281-2/+2
|
* Merge topic 'cmnonempty'Kyle Edwards2020-07-151-10/+10
|\ | | | | | | | | | | | | eaad8072ee cmNonempty: Convenience inlines to check for non-empty string Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !5017
| * cmNonempty: Convenience inlines to check for non-empty stringVitaly Stakhovsky2020-07-141-10/+10
| |
* | cmIsOn: add overload accepting const std::string*Vitaly Stakhovsky2020-07-141-2/+1
|/
* Explicitly specify language flag when source LANGUAGE property is setRobert Maynard2020-06-091-0/+7
| | | | Fixes: #14516, #20716
* Single location for cmProp typedefVitaly Stakhovsky2020-06-011-0/+1
|
* Merge topic 'fortran-preprocess-property'Brad King2020-05-221-0/+1
|\ | | | | | | | | | | | | | | | | | | 3888de23da Ninja: Skip Fortran preprocessing if Fortran_PREPROCESS is OFF 66c4e87282 Ninja: Add helper functions to generate Fortran build 5cca1ec893 Ninja: Add helper functions to generate Fortran preprocess rule b0a6161190 Fortran: Add Fortran_PREPROCESS property Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !4659
| * Fortran: Add Fortran_PREPROCESS propertyPeter Hill2020-05-211-0/+1
| | | | | | | | Issue: #18870
* | Multi-Ninja: Fix PCHs for Visual C++Cristian Adam2020-05-201-3/+8
|/ | | | Fixes: #20711
* Merge topic 'gitlab-ci-lint'Brad King2020-04-301-1/+1
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4318e8ed35 gitlab-ci: add iwyu job 0866b9253b gitlab-ci: add initial clang-tidy build 0a5bcf97b9 gitlab-ci: add scripts for use by CI 960158b90d ci: add scripts to download build tools 6af91c7c4d ci: add an image for Debian 10 68903ae238 ci: add a Docker container for building CMake 3ac24a8a6e cmFunctionBlocker: include missing header b745b8fd36 IWYU: mark includes needed for assert statements as needed ... Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !4643
| * IWYU: mark cmLinkLineComputer as necessaryBen Boeckel2020-04-291-1/+1
| | | | | | | | | | IWYU is not seeing that the full declaration is necessary for `std::unique_ptr<cmLinkLineComputer>`.
* | cmGeneratorTarget::GetProperty: return cmPropVitaly Stakhovsky2020-04-291-22/+21
|/
* Merge topic 'makefile-objc'Brad King2020-04-281-2/+3
|\ | | | | | | | | | | | | | | c4d09fdc6d Makefiles: Add Objective C/C++ compilations to compile_commands.json 98aa628f0b Makefiles: Scan Objective C/C++ preprocessor dependencies Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !4675
| * Makefiles: Add Objective C/C++ compilations to compile_commands.jsonBrad King2020-04-281-2/+3
| | | | | | | | Fixes: #20634
| * 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
| |