summaryrefslogtreecommitdiffstats
path: root/Source/cmMakefileTargetGenerator.cxx
Commit message (Collapse)AuthorAgeFilesLines
* Merge topic 'makefile-CMAKE_EXPORT_COMPILE_COMMANDS-HIP'Brad King2021-12-071-1/+1
|\ | | | | | | | | | | | | b59f7600c4 HIP: Enable CMAKE_EXPORT_COMPILE_COMMANDS for HIP Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6789
| * HIP: Enable CMAKE_EXPORT_COMPILE_COMMANDS for HIPBrad King2021-12-071-1/+1
| | | | | | | | Fixes: #22986
* | CUDA: Support CMP0105 on ClangRaul Tambre2021-11-081-0/+4
| | | | | | | | | | | | | | Add link flags during the "device compile" step. Enabled the relevant tests. The disable reasons regarding separable compilation were outdated and the actual failure case was device link flags support.
* | CUDA: Use local shorthands for variables in Clang device link codeRaul Tambre2021-11-071-14/+12
| | | | | | | | Helps reduce wrapping of lines making code more readable.
* | Source: Replace most calls to sprintf with snprintfSean McBride2021-10-251-1/+1
| |
* | CUDA: Allow both CUDA_SEPARABLE_COMPILATION and CUDA_PTX_COMPILATIONRobert Maynard2021-10-201-15/+18
|/ | | | | | The target properties `CUDA_SEPARABLE_COMPILATION` and `CUDA_PTX_COMPILATION` now aren't mutually exclusive and can now be used together on the same target.
* Source: Fix clang -Wimplicit-fallthrough warningsSean McBride2021-09-281-0/+1
|
* Rename cmProp in cmValueMarc Chevrier2021-09-211-35/+36
|
* IWYU: Add `--driver-mode=cl` when applicablePigeonF2021-09-101-1/+19
| | | | | | We already do this for `clang-tidy`. Fixes: #16554
* Refactor: reduce cmToCStr usageMarc Chevrier2021-08-191-4/+3
|
* Merge branch ↵Marc Chevrier2021-08-011-2/+20
|\ | | | | | | 'backport-3.21-CC-DEPFILE-independent-from-CMAKE_DEPENDS_USE_COMPILER' into CC-DEPFILE-independent-from-CMAKE_DEPENDS_USE_COMPILER
| * add_custom_command(DEPFILE) independent from CMAKE_DEPENDS_USE_COMPILERMarc Chevrier2021-08-011-2/+20
| | | | | | | | Fixes: #22486
* | Merge topic 'cuda_separable_clang_make'Brad King2021-07-291-19/+23
|\ \ | |/ | | | | | | | | | | | | 3975678fcc CUDA/Clang: Simplify --register-link-binaries logic 0b1cea66cd CUDA/Clang: Fix separable compilation in non-root directories with Makefiles Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6400
| * CUDA/Clang: Simplify --register-link-binaries logicroot2021-07-291-10/+10
| | | | | | | | | | | | | | Move the logic for appending cubin afterwards, so the check can simply be empty(). With the Makefile generator the option is now at the front instead of being intermixed with the actual bins.
| * CUDA/Clang: Fix separable compilation in non-root directories with Makefilesroot2021-07-291-10/+14
| | | | | | | | | | | | | | | | Seems the relative paths were wrong basically all around such that only compiling files in the top-level directory would work. I've modified CudaOnly.SeparateCompilation to cover this. Fixes #22482.
* | Makefiles: Add support for building Fortran intrinsicsIsuru Fernando2021-06-241-0/+7
|/ | | | Fixes: #21463
* HIP: Add language to CMakeRobert Maynard2021-06-071-1/+2
|
* Merge topic 'fix-compile-db-crash'Brad King2021-05-291-2/+5
|\ | | | | | | | | | | | | 316cbbe8d5 Makefiles: Fix CMAKE_EXPORT_COMPILE_COMMANDS crash with custom compile rule Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6173
| * Makefiles: Fix CMAKE_EXPORT_COMPILE_COMMANDS crash with custom compile ruleBrad King2021-05-281-2/+5
| | | | | | | | | | | | | | | | | | | | Extend the fix from commit 67e2130c96 (Makefiles: Fix CMAKE_EXPORT_COMPILE_COMMANDS crash with custom compile rule, 2020-11-20, v3.19.1~8^2) to work for the `<FLAGS>` placeholder too. Also fix the test case to actually enable `EXPORT_COMPILE_COMMANDS` on the test target. Fixes: #22261
* | cmOutputConverter: Adopt relative path conversion helpersBrad King2021-05-171-10/+2
| | | | | | | | Move them up from cmLocalGenerator and out of cmStateDirectory.
* | cmLocalGenerator: Factor out relative path conversion helpersBrad King2021-05-131-71/+42
| | | | | | | | | | | | Most calls to `MaybeConvertToRelativePath` use one of our common work directories (e.g. top of the build tree) as the local path. Add helpers for each of the common cases to simplify and clarify call sites.
* | cmMakefileTargetGenerator: Clarify name of relative path conversion helperBrad King2021-05-131-6/+6
| |
* | Source: Remove unnecessary comparisons to nullptrVitaly Stakhovsky2021-05-101-1/+1
| |
* | NMake: Use UTF-8 with BOM if supported by nmakeAmine Najahi2021-05-051-1/+2
| | | | | | | | Fixes: #21792
* | cmLocalGenerator: Simplify some GetIncludeFlag call sitesBrad King2021-02-251-3/+2
| | | | | | | | | | The path style argument is meaningful only with the Ninja generator, so drop it from call sites in Makefile and Xcode generators.
* | cmLocalGenerator: Clarify GetIncludeFlags signatureBrad King2021-02-251-3/+4
|/ | | | | | | | | | | | | Make the `config` argument non-optional so all callers must be explicit. Convert the path style argument to an enumeration to make its role clear at call sites. The path style argument is implemented by `ConvertToIncludeReference`, which was introduced with the Ninja generator by commit 5b114c9bee (Introduce a cmLocalGenerator::ConvertToIncludeReference function, 2011-09-07, v2.8.7~187^2~4). Its only purpose is to allow the Ninja generator to use relative paths in `-I` flags. Add a comment explaining this role.
* PCH: Remove restrictions for REUSE_FROM signature for MSVCCristian Adam2021-02-021-0/+4
| | | | Fixes: #20201
* Revert "PCH: Remove restrictions for REUSE_FROM signature for MSVC"Brad King2021-02-021-4/+0
| | | | | This reverts commit 9f060971411aca979807f70307d8b9fe1b43ff24. It was merged accidentally.
* PCH: Remove restrictions for REUSE_FROM signature for MSVCCristian Adam2021-02-021-0/+4
| | | | Fixes: #20201
* Makefiles: ensure transparent switch between dependencies strategiesMarc Chevrier2021-01-091-24/+39
|
* Merge topic 'export-compile-commands-per-target'Brad King2021-01-071-1/+1
|\ | | | | | | | | | | | | a742b5d137 CMAKE_EXPORT_COMPILE_COMMANDS: allow configuration per target Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !5651
| * CMAKE_EXPORT_COMPILE_COMMANDS: allow configuration per targetShannon Booth2021-01-051-1/+1
| | | | | | | | | | | | | | | | The new target property `EXPORT_COMPILE_COMMANDS` associated with the existing global variable can be used to optionally configure targets for their compile commands to be exported. Fixes: #19462
* | Code style: add missed explicit 'this->'Oleksandr Koval2021-01-051-1/+2
|/ | | | | CMake uses explicit 'this->' style. Using custom clang-tidy check we can detect and fix places where 'this->' was missed.
* Makefiles: Add support of DEPFILE for add_custom_commandMarc Chevrier2020-12-231-0/+19
| | | | | Issue: #20286 Fixes: #21415
* Merge topic 'ispc_control_header_suffixes'Brad King2020-12-151-1/+6
|\ | | | | | | | | | | | | c9a50f3556 ISPC: Generated Headers suffix configurable with a better default Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !5597
| * ISPC: Generated Headers suffix configurable with a better defaultRobert Maynard2020-12-141-1/+6
| | | | | | | | | | | | | | | | | | The target property `ISPC_HEADER_SUFFIX` and associated global variable now can control the suffix used when generating the C/C++ interoperability ISPC headers. In addition the default suffix is now "_ispc.h" which matches the common convention that the ISPC compiler team uses and recommends.
| * Merge topic 'fix-compile-db-crash' into release-3.19Brad King2020-11-231-6/+10
| |\ | | | | | | | | | | | | | | | | | | 67e2130c96 Makefiles: Fix CMAKE_EXPORT_COMPILE_COMMANDS crash with custom compile rule Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !5521
* | | Compile with explicit language flag when source LANGUAGE property is setBrad King2020-12-021-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change was originally made by commit 74b1c9fc8e (Explicitly specify language flag when source LANGUAGE property is set, 2020-06-01, v3.19.0-rc1~722^2), but it was reverted by commit 30aa715fac (Revert "specify language flag when source LANGUAGE property is set", 2020-11-19) to restore compatibility with pre-3.19 behavior. Implement the change again, but add policy CMP0119 to make this change while preserving compatibility with existing projects. Note that the `Compiler/{Clang,Intel,MSVC}-CXX` modules do not need to specify `-TP` for their MSVC-like variants because we already use the flag in `CMAKE_CXX_COMPILE_OBJECT`. Similarly for `Compiler/XL-CXX` and `Platform/Windows-Embarcadero`. Note also that this does not seem possible to implement for XL C. Even with `-qsourcetype=c`, `xlc` complains about an unknown suffix: `1501-218 (W) file /.../AltExtC.zzz contains an incorrect file suffix`. It returns non-zero even with `-qsuppress=1501-218`. Co-Author: Robert Maynard <robert.maynard@kitware.com> Fixes: #14516, #20716
* | | Makefiles Generators: use compiler for dependencies generationMarc Chevrier2020-11-291-15/+140
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Each source compilation generates a dependencies file. These dependencies files are consolidated in one file per target. This consolidation is done as part of command 'cmake -E cmake_depends` launched before evaluation of makefile dependency graph. The consolidation uses the same approach as `CMake` dependencies management. Fixes: #21321
* | | Refactoring: Abstract Makefile line continuation formatMarc Chevrier2020-11-281-8/+3
| | |
* | | Refactoring: Makefiles Generators: Add support for various depends scannersMarc Chevrier2020-11-281-0/+1
| | |
* | | Merge topic 'fix-compile-db-crash'Brad King2020-11-231-6/+10
|\ \ \ | | |/ | |/| | | | | | | | | | | | | 67e2130c96 Makefiles: Fix CMAKE_EXPORT_COMPILE_COMMANDS crash with custom compile rule Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !5521
| * | Makefiles: Fix CMAKE_EXPORT_COMPILE_COMMANDS crash with custom compile ruleBrad King2020-11-201-6/+10
| | | | | | | | | | | | Fixes: #21471
* | | Merge topic 'revert-explicit-LANGUAGE-flag'Brad King2020-11-201-7/+0
|\ \ \ | | |/ | |/| | | | | | | | | | | | | 30aa715fac Revert "specify language flag when source LANGUAGE property is set" Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !5519
| * | Revert "specify language flag when source LANGUAGE property is set"Brad King2020-11-191-7/+0
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Revert commit 74b1c9fc8e (Explicitly specify language flag when source LANGUAGE property is set, 2020-06-01, v3.19.0-rc1~722^2) and the lookup tables from its two immediate ancestors. The purpose of that change was to convert an explicit `LANGUAGE` source file property into an explicit language specification compiler flag like `-x c`. This seems reasonable since the property is documented as meaning "indicate what programming language the source file is". It is also needed to help compilers deal with non-standard source file extensions they don't recognize. However, some projects have been setting `LANGUAGE C` on `.S` assembler source files to mean "use the C compiler". Passing `-x c` for them breaks the build because the `.S` sources are not written in C. These projects should be updated to use `enable_language(ASM)`, for which CMake often chooses the C compiler as the assembler when using toolchains that support it (which would have to be the case for projects using the approach). Revert the change for now to preserve the old behavior for such projects. We can re-introduce it with a policy in a future version of CMake. Fixes: #21469 Issue: #14516, #20716
* | Merge topic 'clang-tidy-for-objc'Brad King2020-11-061-7/+13
|\ \ | | | | | | | | | | | | | | | | | | 1134064e22 clang-tidy: allow OBJC and OBJCXX Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !5467
| * | 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