5341f5e4a1 CUDA: get header deps from compiler invocation when possible
7f15c99851 CUDA: forward unknown flags to host compiler when possible.
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4099
This makes it much easier to use a launcher for all CMake projects in an
environment rather than having to remember to pass the setting to every
CMake build.
Revert commit de5f123d3a (FindThreads: Do not hard-code '-l' flag on
library name, 2019-09-23, v3.16.0-rc1~71^2). Some clients depend
on the value of `CMAKE_THREAD_LIBS_INIT` to contain a valid flag.
Fixes: #20061, #20065
When cross compiling from a unix machine, if(UNIX) is false,
whih causes the path not to be fixed for unix, leading to false
negative if PKG_CONFIG_PATH needs to be probed
Starting with CUDA 10.2 the nvcc compiler has gained support
to automatically forward unknown flags to the host compiler.
This behavior is highly desired as projcts that mix CUDA, C, C++
run into situation where flags such as `-pthread` which aren't
supported by nvcc, are being applied to all source files and
therefore break CUDA compilation.
We search for tools `ninja-build`, `ninja`, and `samu` as the build tool
for the Ninja generator. Re-order the search to prefer whichever tool
appears first in the `PATH`. This makes it easier for users to control
which tool gets used when more than one is available.
Fixes: #20028
The CUDA language failed to persist CMAKE_CUDA_LIBRARY_ARCHITECTURE
and CMAKE_LIBRARY_ARCHITECTURE, causing find_ calls to fail when
the only enabled language was CUDA.
In commit fe54989fcd (FindwxWidgets: Add support for wxQt, 2019-11-12,
v3.16.0-rc4~12^2~1) the internal `WX_FIND_LIBS` macro gained an argument
but not all call sites were updated. Update the missing one now.
Fixes: #20005
The Ninja generator's support for Fortran requires that source files
be preprocessed explicitly first. However, the `xlf` compiler does
not have a simple `-E` option or equivalent to do preprocessing.
The only documented way to get preprocessed output is to use `-d`
to leave it behind, but only at an inflexible location.
Instead, create our own `cpp` wrapper script and substitute it for the
real preprocessor using `-tF -B ...`. Teach the wrapper to map the
`cpp` output to the location we need and then invoke the real `cpp`
underneath.
Fixes: #19450
8d47b97a69 UseJava: Use correct path separator in javadoc
1b27ac78ac UseJava: Use list(APPEND) to simplify javadoc option construction
c7a4b1a58e UseJava: Extract the path separator to module level
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3967
Previously, if a CMake project requests a component for a language that is
not enabled, it would simply give an error with the message
Could NOT find MPI (missing: MPI_${LANG}_FOUND)
which is not indicative that the language was not enabled. This change
provides an error message indicating that it failed to find the
particular MPI component because no compiler was available for the
language and the language might need to be enabled for the project.
Closes: #19996
5cf404d36f SDCC compiler: use sdar instead of sdcclib as librarian for recent versions
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4065