| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
When FindMPI parses include output like:
```
warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
-I....
```
|
|
|
|
| |
Prefer these when the project is built with FujitsuClang.
|
|\
| |
| |
| |
| |
| |
| |
| |
| | |
e6dee2a4bd FindMPI: Fix finding IntelLLVM wrappers on Windows
Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: scivision <michael@scivision.dev>
Acked-by: Changkai Qiu <qiuchangkai@hotmail.com>
Merge-request: !9395
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
In commit 5e700411d2 (FindMPI: add IntelLLVM MPI wrappers, 2024-01-19,
v3.29.0-rc1~92^2) we added `mpiicpx.bat` for C++ on Windows, but that is
a GNU-like front-end that we do not yet support. Use `mpiicx.bat` for
both C and C++ on Windows, just as we use `icx` to compile both.
Fixes: #25807
|
|/
|
|
| |
Closes: #25829
|
|
|
|
|
| |
The Intel MPI library now provides `mpiicx`, `mpiicpx`, and `mpiifx`
wrappers, which respectively use `icx`, `icpx`, and `ifx` by default.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
`try_compile` and `try_run` now automatically log checks using them to
`CMakeConfigureLog.yaml`.
Add `LOG_DESCRIPTION` arguments to some `try_compile` calls to
replace the description previously written to the old logs.
Issue: #23200
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Modify some additional modules that ship with CMake to use the new
SOURCES_FROM_* arguments to try_compile / try_run as added by commits
cb14ae2b87 (try_compile: Add SOURCE_FROM_{ARG,VAR}, 2022-09-21) and
611d801790 (try_compile: Add SOURCE_FROM_FILE, 2022-09-22). This covers
modules that need to read and alter a template source file, which were
not addressed in the previous commit.
Note that FindOpenACC.cmake does not actually need configure_file
functionality; it appears to have inherited the (gratuitous) use thereof
from FindOpenMP.cmake, with which its code bears significant similarity.
|
|\
| |
| |
| |
| |
| |
| | |
2edf0fc6d7 Modules: Use new keyword-dispatched try_compile signature
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7656
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Modify most of the modules that ship with CMake to use the new
try_compile / try_run signatures added by commit aa9220d3a0
(try_compile: Add keyword-dispatched signature, 2022-09-02). This
improves debugging by each invocation using its own directory so that
the results of multiple invocations can be retained.
This does not cover any invocations which provide an entire project, as
that flavor of try_compile has not yet been updated.
|
| | |
|
| |
| |
| |
| |
| | |
There is no reason `CSharp` should go down this codepath (assuming it
ever gets here in the first place).
|
|/
|
|
|
|
|
| |
Some projects accidentally end up doing the equivalent of `set(0 1)`
which makes things work very poorly here. Be more defensive.
See: #23954
|
|
|
|
|
|
|
|
|
|
| |
With the msmpi package in MSYS2:
$ pkg-config --libs msmpi
-LC:/msys64/mingw64/lib -l:libmsmpi.dll.a
MSYS2-Issue: https://github.com/msys2/MINGW-packages/pull/11839
Fixes: #23620
|
|
|
|
|
| |
We want to see if a language is inside `MPI_FIND_COMPONENTS` not if
the variables `C`/`CXX` is set to a positive value.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In commit 0723b2c935 (MPI: Add fallback detection code for MPI when cross
compiling, 2021-09-17, v3.22.0-rc1~89^2) the FindPkgConfig module was
included directly. This produces warnings like:
The package name passed to `find_package_handle_standard_args` (PkgConfig)
does not match the name of the calling package (MPI).
Use `find_package(PkgConfig)` instead, as other find modules do.
Fixes: #22823
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The MPI libraries use a compiler wrapper to automatically inject
required flags and libraries into the compiler argument list. However,
the wrapper does not support cross-compiling: the wrapper will try to
invoke the native compiler which cannot handle the cross architecture
MPI libraries and fail.
This MR adds some fallback code for this case, which tries to bypass the
faulty wrapper and determine the necessary flags and libraries directly
from the MPI pkg-config files. The patch tries to be as unintrusive as
possible and should not break any existing use-cases.
Fixes: #22650
|
|\
| |
| |
| |
| |
| |
| |
| | |
2b2a6a7170 FindMPI: do not detect `-framework` as a compile flag
Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Utkarsh Ayachit <utkarsh.ayachit@kitware.com>
Merge-request: !6467
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
MPICH 3.4.2 now reports `-framework OpenCL` as one of its compilation
flag. The compile flag extraction is seeing it as a generic `-f` flag
and misses its argument. This ends up with a compile option of
`-framework` which eats the next flag (and may be very important).
It does not seem that passing `-framework` as a link flag is necessary
at this time, so that is being actively ignored for now.
Fixes: #22555
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Cray traditionally does not ship mpicc/mpic++ compiler wrappers.
Due to that, the traditional CMake logic to find MPI is to *only*
support MPI on Cray systems if either
1. Cray Wrappers are used for compiling, or
2. an auxiliary MPI executable is found.
On many new Exascale prototypes, using the Cray wrappers for develop
work is extremely painful. Vendors such as AMD and integrators such
as HPE seem not to go well in lock-step in Cray programming envs,
making offloading with Cray wrappers too challenging. On the other
hand, using the working experimental Vendor compilers works well,
as long as one does not need MPI.
Extend the fallback MPI search logic by also interrogating the
CC/cc/ftn binaries if found for their MPI flags. This does not
change existing logic, i.e. using the Cray wrappers directly, but
provides an additional way to get MPI programs compiled on Cray.
Fixes: #22368
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | | |
0c1b9b3516 FindMPI: Choose definitions for MPI_CXX_SKIP_MPICXX before first use
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6303
|
| |/
| |
| |
| | |
Fixes: #22391
|
|/
|
|
|
|
|
|
|
|
|
| |
Express the cache entry with `option()`. In combination with policies
CMP0077 and CMP0102, this allows project code to control the switch with
a variable:
```
set(MPI_CXX_SKIP_MPICXX TRUE)
find_package(MPI COMPONENTS CXX)
```
|
|\
| |
| |
| |
| |
| |
| |
| |
| | |
666f689e48 FindMPI: avoid host link options to be propagated to device link step
Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robertjmaynard@gmail.com>
Acked-by: Alex <leha-bot@yandex.ru>
Merge-request: !5966
|
| |
| |
| |
| | |
Fixes: #21887
|
|/
|
|
| |
Co-Author: Yuichiro Utsumi <utsumi.yuichiro@jp.fujitsu.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In pure C/CXX projects, when doing an optional search for C/CXX
MPI APIs, I keep getting a reason appended of the form:
```
-- Could NOT find MPI_C (missing: MPI_C_LIB_NAMES MPI_C_HEADER_DIR MPI_C_WORKS)
-- Could NOT find MPI_CXX (missing: MPI_CXX_LIB_NAMES MPI_CXX_HEADER_DIR MPI_CXX_WORKS)
-- Could NOT find MPI (missing: MPI_C_FOUND MPI_CXX_FOUND)
Reason given by package: MPI component 'Fortran' was requested, but language Fortran is not enabled.
```
The reason makes no sense since I did not request Fortran and thus
confuses the reader. It is now only added if the component was truly
requested.
|
|
|
|
| |
Signed-off-by: William R. Dieter <william.r.dieter@intel.com>
|
|\
| |
| |
| |
| |
| |
| | |
a5b223aa7f FindMPI: remove single quotes from include path
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5654
|
| |
| |
| |
| |
| |
| |
| | |
Intel OneAPI's MPI wraps include paths into single quotes,
remove them when sanitizing _MPI_INCLUDE_PATH
Fixes: #21634
|
|/
|
|
| |
Issue: #19715
|
|\
| |
| |
| |
| |
| |
| |
| | |
47abe5f225 FindMPI: Fix regression in pthread guard
Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Raul Tambre <raul@tambre.ee>
Merge-request: !5147
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Fix a regression with MPI and CUDA<10.2 that did let `-pthread` flags
slip to nvcc again. In commit b725a19072 (FindMPI: Deny -fexceptions
from NVCC, 2020-07-02, v3.18.0-rc4~12^2) we accidentally forgot to use
the variable containing the replacement result.
Fixes: #21108
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
See https://github.com/codespell-project/codespell#readme
The following command was used:
```
codespell -q6 --skip="\
.git,\
*.json,\
./Copyright.txt,\
./Help/command/foreach.rst,\
./Help/prop_test/REQUIRED_FILES.rst,\
./Help/variable/CTEST_COVERAGE_COMMAND.rst,\
./Modules/CMakeCheckCompilerFlagCommonPatterns.cmake,\
./Modules/CMakeRCInformation.cmake,\
./Modules/Internal/CPack/NSIS.template.in,\
./Modules/FindMatlab.cmake,\
./Modules/MatlabTestsRedirect.cmake,\
./Modules/Platform/Windows-Clang.cmake,\
./Modules/Platform/Windows-Intel-Fortran.cmake,\
./Modules/Platform/Windows-MSVC.cmake,\
./Source/CMakeVersion.cmake,\
./Source/cmConvertMSBuildXMLToJSON.py,\
./Source/cmCreateTestSourceList.cxx,\
./Source/cmGlobalVisualStudio10Generator.cxx,\
./Source/cmExportBuildFileGenerator.cxx,\
./Source/cmExportInstallAndroidMKGenerator.cxx,\
./Source/cmExportInstallFileGenerator.cxx,\
./Source/cmExportSet.cxx,\
./Source/cmExportTryCompileFileGenerator.cxx,\
./Source/cmFindPackageCommand.cxx,\
./Source/cmInstallCommand.cxx,\
./Source/cmGeneratorExpressionLexer.cxx,\
./Source/cmLocalVisualStudio7Generator.cxx,\
./Source/cmOrderDirectories.cxx,\
./Source/cmTarget.cxx,\
./Source/kwsys/*,\
./Source/QtDialog/CMakeSetupDialog.ui,\
./Source/CPack/WiX/cmWIXRichTextFormatWriter.cxx,\
./Source/CTest/cmParseCoberturaCoverage.h,\
./Tests/CMakeTests/ImplicitLinkInfoTest.cmake.in,\
./Tests/RunCMake/CPack/tests/DMG_SLA/English.license.rtf,\
./Tests/RunCMake/CPack/tests/DMG_SLA/German.license.txt,\
./Tests/RunCMake/CPack/tests/DMG_SLA/German.menu.txt,\
./Tests/RunCMake/GoogleTest/xml_output.cpp,\
./Tests/RunCMake/Make/TargetMessages*,\
./Utilities/*,\
" \
-L "\
dependees,\
endwhile,\
fo,\
filetest,\
helpfull,\
nd,\
objext,\
stoll,\
supercedes,\
superceded,\
vas,\
varn,\
"
```
|
|
|
|
| |
Fixes: #20924
|
|
|
|
|
|
| |
Do not forward -fexceptions (set from MVAPICH2) to NVCC.
Fixes: #18558
|
|
|
|
|
|
| |
Currently CMake passes `-Xcompiler -pthread` flags to CUDA compilers
irrespective of the actual CUDA compiler ID. This makes sure the
additional `-Xcompiler` flag is only used with nvcc.
|
|
|
|
| |
Fixes: #20606
|
|\
| |
| |
| |
| |
| |
| | |
cd449c6175 FindMPI: Add the pgi compiler wrapper names used by IBM Spectrum MPI
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4598
|
| | |
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
b4d5ea8233 FindMPI: Preserve order of include directories on re-runs of CMake
8261ee3a9c FindMPI: Restore re-construction of include directories
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4341
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The fix in commit 5861c6d450 (FindMPI: Preserve include order when
extracting component directories, 2019-12-19) only works on the first
run of CMake in which we find MPI. Extend the fix to save the compiler
wrapper's entire include path in our cache without splitting anything
out. That way we can preserve the order when CMake re-runs.
Fixes: #20338
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The fix in commit 5861c6d450 (FindMPI: Preserve include order when
extracting component directories, 2019-12-19) only works on the first
run of CMake in which we find MPI. It preserves the include directories
on the first run but still splits them up and saves the pieces in the
cache. On future runs the pieces are not re-assembled, and we do not
know the order anyway.
Restore the re-assembly step so that at least all the include dirs are
available. Leave preservation of the original order to later work.
Issue: #20338
|
|\ \ \
| |/ /
|/| /
| |/
| |
| |
| | |
95a501addb Help: Add more variable documentation to FindMPI
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4263
|
| | |
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | | |
8217a26d29 FindMPI: Fix regression when compiling with MPI wrappers
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4254
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The change in commit 5861c6d450 (FindMPI: Preserve include order when
extracting component directories, 2019-12-19) converted a CMake-language
function to a macro. However, it contains a `return()` call that now
applies in the caller's scope, which is in correct. The `return()` is
meant to skip work when using a MPI compiler wrapper as the main
compiler. Move that condition to the call site instead.
Fixes: #20234
|
|/ / |
|