summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* FindCUDA: Improve deprecation guidance wordingRaul Tambre2021-05-221-5/+5
| | | | | | | | | | | Simplified the text regarding adding sources to be more general as there's also target_sources(). Improved the wording for FindCUDAToolkit to be more explicit of its usecase and avoid using "superseded" since the common usecase of FindCUDA was superseded by the language support. Wording suggestions incopropated from discussion on #22203.
* FindCUDA: Make the deprecation notice more prominentRaul Tambre2021-05-221-1/+1
| | | | | | | | | | | | | | FindCUDA is still widely used, but has been superseded by the much more robust native language support. However the deprecation hasn't been noticed well enough and real-world experience shows there's still new code written to use it. Change this particular notice to a warning to get a hard to miss red box. We lose the semantic meaning, but we don't want to make all notices like this. If there are similar cases in the future requiring it would be worth adding a custom variant of the deprecated directive. Fixes #22203.
* CMake Nightly Date StampKitware Robot2021-05-221-1/+1
|
* Merge topic 'ci-fedora34-mpi'Brad King2021-05-213-2/+3
|\ | | | | | | | | | | | | | | 2bc0708c39 ci: Switch to MPICH in Fedora jobs ef25359eda ci: add MPICH to Fedora base image Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6152
| * ci: Switch to MPICH in Fedora jobsBrad King2021-05-212-2/+2
| | | | | | | | | | | | | | The OpenMPI package in Fedora 34 requires a CPU with AVX instructions. Some of our CI machines do not have them, and so fail the FindMPI.Test test with `SIGILL`. Switch to MPICH. Since we test with OpenMPI on the Debian jobs, this covers more MPI vendors anyway.
| * ci: add MPICH to Fedora base imageBrad King2021-05-211-0/+1
|/
* Merge topic 'imported-framework-soname-file'Brad King2021-05-214-3/+49
|\ | | | | | | | | | | | | | | | | 820d3afb28 Framework: Fix $<TARGET_SONAME_FILE:...> for imported frameworks Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: Ben Boeckel <ben.boeckel@kitware.com> Acked-by: Brad King <brad.king@kitware.com> Merge-request: !6147
| * Framework: Fix $<TARGET_SONAME_FILE:...> for imported frameworksKyle Edwards2021-05-204-3/+49
| |
* | Merge topic 'message-color'Brad King2021-05-2110-20/+79
|\ \ | | | | | | | | | | | | | | | | | | | | | 0a0a0f8a74 cmMessenger: Color messages to terminal by type bceb8e2ed2 cmMessenger: Pass title inside a metadata structure Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6105
| * | cmMessenger: Color messages to terminal by typeMarius Messerschmidt2021-05-204-4/+32
| | | | | | | | | | | | Fixes: #16183
| * | cmMessenger: Pass title inside a metadata structureMarius Messerschmidt2021-05-199-19/+50
| | |
* | | Merge branch 'release-3.20'Brad King2021-05-210-0/+0
|\ \ \
| * \ \ Merge topic 'git-config-version-check' into release-3.20Brad King2021-05-211-3/+5
| |\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8a9753e427 ExternalProject: Only add git config setting with git 1.7.7 or later Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6145
* | \ \ \ Merge topic 'git-config-version-check'Brad King2021-05-211-3/+5
|\ \ \ \ \ | | |/ / / | |/| | | | | | | | | | | | | | | | | | | | | | | 8a9753e427 ExternalProject: Only add git config setting with git 1.7.7 or later Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6145
| * | | | ExternalProject: Only add git config setting with git 1.7.7 or laterCraig Scott2021-05-201-3/+5
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1cb65e680d (ExternalProject: Prevent the noisy detached head messages on checkout, 2021-01-17) unconditionally added the advice.detachedHead git config setting, but it requires git 1.7.7 or later. Since it isn't fatal to not have it, just noisier, only add it when it is supported. Fixes: #22206
* | | | CMake Nightly Date StampKitware Robot2021-05-211-1/+1
| |_|/ |/| |
* | | Merge topic 'cmake-ninja-workdir'Brad King2021-05-2010-59/+160
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2725ecff38 Ninja: Handle depfiles with absolute paths to generated files bc40cd7a4e Tests: Add case covering a unity build with a generated source ae927f936d cmGlobalNinjaGenerator: Improve allocation pattern in WriteBuild 68e5f92cad cmGlobalNinjaGenerator: Factor out custom command output collection c5195193d3 cmGlobalNinjaGenerator: Reduce string copies in WriteCustomCommandBuild 8bac527b0c cmGlobalNinjaGenerator: Re-order logic in WriteCustomCommandBuild ddc030f5ca cmGlobalNinjaGenerator: Record implicit outputs as known too ceb82752ef cmLocalNinjaGenerator: Use variable for main custom command output path Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6143
| * | | Ninja: Handle depfiles with absolute paths to generated filesBrad King2021-05-196-2/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Ninja treats every (normalized) path as its own node. It does not recognize `/abs/path/to/file` in a depfile as matching `path/to/file` even when `build.ninja` and the working directory are in `/abs/`. See Ninja Issue 1251. In cases where we pass absolute paths to the compiler, it will write a depfile containing absolute paths. If those files are generated in the build tree by custom commands, `build.ninja` references them by relative path in build statement outputs, so Ninja does not hook up the dependency and rebuild the project correctly. Add infrastructure to work around this problem by adding implicit outputs to custom command build statements that reference the main outputs by absolute path. Use a `${cmake_ninja_workdir}` placeholder to avoid repeating the base path. For example: build out.txt | ${cmake_ninja_workdir}out.txt: CUSTOM_COMMAND ... Ninja will create two nodes for the output file, one with a relative path and one with an absolute path. A depfile may then mention either form of the path and Ninja will hook up the dependency. Unfortunately Ninja will also stat the file twice. Issue: #13894 Fixes: #21865
| * | | Tests: Add case covering a unity build with a generated sourceBrad King2021-05-194-0/+50
| | | | | | | | | | | | | | | | | | | | | | | | Exclude the case on generators where it does not yet work. Issue: #21865
| * | | cmGlobalNinjaGenerator: Improve allocation pattern in WriteBuildBrad King2021-05-191-5/+4
| | | |
| * | | cmGlobalNinjaGenerator: Factor out custom command output collectionBrad King2021-05-194-28/+40
| | | | | | | | | | | | | | | | | | | | | | | | De-duplicate code paths calling ConvertToNinjaPath and SeenCustomCommandOutput on custom command outputs and custom target byproducts.
| * | | cmGlobalNinjaGenerator: Reduce string copies in WriteCustomCommandBuildBrad King2021-05-194-20/+23
| | | | | | | | | | | | | | | | | | | | Re-order arguments to group those with similar roles. Use move semantics to avoid copying vectors of strings.
| * | | cmGlobalNinjaGenerator: Re-order logic in WriteCustomCommandBuildBrad King2021-05-191-8/+8
| | | | | | | | | | | | | | | | Save explicit dependencies earlier.
| * | | cmGlobalNinjaGenerator: Record implicit outputs as known tooBrad King2021-05-191-0/+3
| | | |
| * | | cmLocalNinjaGenerator: Use variable for main custom command output pathBrad King2021-05-191-5/+8
| | |/ | |/|
* | | Merge topic 'install-script-all-components'Brad King2021-05-2025-20/+133
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | 99ff75455e install: Implement new install(CODE|SCRIPT) option ALL_COMPONENTS Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6140
| * | | install: Implement new install(CODE|SCRIPT) option ALL_COMPONENTSNils Gladitz2021-05-1925-20/+133
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In a per-component installation the generated installation scripts are invoked once for each component. Per default custom installation script code added by install(CODE|SCRIPT) only runs for one specific component in this context. The new ALL_COMPONENTS option allows custom script code to be run once for each component being installed.
* | | Merge topic 'cmCommandLineArgument_understands_exact_versus_matching_variables'Brad King2021-05-205-55/+133
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 396e0a840e cmCommandLineArgument: OneOrMore mode supports `=` separator 372bf1bcc4 cmCommandLineArgument: Understands which commands require partial matching Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6142
| * | | cmCommandLineArgument: OneOrMore mode supports `=` separatorRobert Maynard2021-05-192-32/+46
| | | | | | | | | | | | | | | | Fixes #22187
| * | | cmCommandLineArgument: Understands which commands require partial matchingRobert Maynard2021-05-194-29/+93
| | | | | | | | | | | | | | | | | | | | Allows us to provide better error messages when commands such as `--target` are passed invalid input.
* | | | CMake Nightly Date StampKitware Robot2021-05-201-1/+1
| |/ / |/| |
* | | Merge branch 'release-3.20'Brad King2021-05-190-0/+0
|\ \ \ | | |/ | |/|
| * | Merge topic 'nvhpc-ninja-depfile' into release-3.20Brad King2021-05-192-0/+18
| |\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 364f6af1d7 NVHPC: Support Ninja dependency scanning 521cfc38a3 NVHPC: Support explicit language flags Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6136
* | \ \ Merge topic 'nvhpc-ninja-depfile'Brad King2021-05-192-0/+18
|\ \ \ \ | | |/ / | |/| | | | | | | | | | | | | | | | | | | | | | 364f6af1d7 NVHPC: Support Ninja dependency scanning 521cfc38a3 NVHPC: Support explicit language flags Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6136
| * | | NVHPC: Support Ninja dependency scanningRobert Maynard2021-05-182-0/+10
| | | | | | | | | | | | | | | | Fixes: #22168
| * | | NVHPC: Support explicit language flagsRobert Maynard2021-05-182-0/+8
| | | |
* | | | CMake Nightly Date StampKitware Robot2021-05-191-1/+1
| |_|/ |/| |
* | | Merge topic 'gitignore'Brad King2021-05-181-0/+7
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | cbeff3082d .gitignore: Add CLion directories and VS build directory Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6138
| * | | .gitignore: Add CLion directories and VS build directoryViktor Wallner2021-05-181-0/+7
|/ / /
* | | Merge topic 'relative-paths'Brad King2021-05-1818-257/+188
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8526756b61 cmOutputConverter: Adopt relative path conversion helpers 013ec595c8 cmLocalGenerator: De-duplicate StateSnapshot member 24bfdbcffb cmLocalGenerator: Remove unused MaybeRelativeToCurSrcDir method d6fe1bdb6d cmLocalGenerator: Localize logic mapping source path to object file name 4cb6a53bf5 cmListFileCache: Simplify relative path conversion in backtraces 5b3a71a83f cmSystemTools: Adopt RelativeIfUnder helper ea9b1d36b8 cmStateDirectory: Clarify relative path top selection logic 2d9109df7c cmStateDirectory: Remove network path logic from relative path top selection ... Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6128
| * | | cmOutputConverter: Adopt relative path conversion helpersBrad King2021-05-1712-177/+142
| | | | | | | | | | | | | | | | Move them up from cmLocalGenerator and out of cmStateDirectory.
| * | | cmLocalGenerator: De-duplicate StateSnapshot memberBrad King2021-05-173-4/+3
| | | | | | | | | | | | | | | | We have the member from the cmOutputConverter parent.
| * | | cmLocalGenerator: Remove unused MaybeRelativeToCurSrcDir methodBrad King2021-05-172-7/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | With the recent update to `GetObjectFileNameWithoutTarget`, we no longer have any call sites for `MaybeRelativeToCurSrcDir`. It does not make sense for the generator to produce paths relative to the source tree in general, so remove the method.
| * | | cmLocalGenerator: Localize logic mapping source path to object file nameBrad King2021-05-171-2/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We select an object file name based on the path to its source file. Localize the logic for shortening this via relative paths. It does not need to use the generator-wide relative path conversion rules because we are not actually generating a relative path that needs to be consistent with anything else.
| * | | cmListFileCache: Simplify relative path conversion in backtracesBrad King2021-05-172-6/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Printing paths to CMake input files does not need to use the generator-wide relative path conversion rules because we are not actually generating a relative path for the build system that needs to be consistent with anything else. Instead, simply print a relative path if it does not need to start in `../`, and otherwise an absolute path.
| * | | cmSystemTools: Adopt RelativeIfUnder helperBrad King2021-05-173-9/+21
| | | | | | | | | | | | | | | | This returns a relative path if it does not start in `../`.
| * | | cmStateDirectory: Clarify relative path top selection logicBrad King2021-05-171-38/+18
| | | | | | | | | | | | | | | | | | | | Re-implement the same algorithm using direct iteration without collecting a vector first.
| * | | cmStateDirectory: Remove network path logic from relative path top selectionBrad King2021-05-171-12/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The logic skipping relative paths for build trees on network paths came from commit b5035770bc (BUG: On Windows network paths do not really work..., 2003-12-24, v2.4.0~3517). However, since commit ad4055f3e2 (ENH: Set RelativePathTopSource and RelativePathTopBinary independently ..., 2007-03-07, v2.6.0~2061) we effectively ignore this logic if the build tree is inside the source tree on a network path. Also, it is not clear that logic using `RelativePathTopBinary` is prepared for it to be empty. Remove the logic for now. If a problem comes up, we can choose a new approach.
| * | | cmStateDirectory: Fix comment on relative path top directory selectionBrad King2021-05-171-4/+2
| | | | | | | | | | | | | | | | | | | | | | | | Fix the comment added by commit f6d4fa63f8 (cmStateDirectory: Comment relative path top directory selection approach, 2021-05-13) to describe the actual behavior.
| * | | Makefiles: Remove non-functioning relative path conversionBrad King2021-05-171-19/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In CMake 3.6 and below, running cmake --build . --target "$(pwd)/SomeTarget" with a Makefiles generator automatically converted the target name and invoked `make SomeTarget`. This made the build command work even though make "$(pwd)/SomeTarget" would fail. This behavior was not implemented for any other generators, and does not make sense because `cmake --build` is supposed to be a thin wrapper around the native build tool. It has also been broken since commit 8d47a20f13 (cmOutputConverter: use new ConvertToRelativePath signature internally, 2016-06-16, v3.7.0-rc1~90^2~1) because cmState's relative path conversion logic is not initialized in `cmake --build`. Remove the non-functioning code.