diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index afa3f2a12e..d7f79974de 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -386,7 +386,6 @@ if(PKG_ADIOS) # The search for ADIOS2 must come before MPI because # it includes its own MPI search with the latest FindMPI.cmake # script that defines the MPI::MPI_C target - enable_language(C) find_package(ADIOS2 REQUIRED) if(BUILD_MPI) if(NOT ADIOS2_HAVE_MPI) @@ -401,7 +400,7 @@ if(PKG_ADIOS) endif() if(NOT CMAKE_CROSSCOMPILING) - find_package(MPI QUIET) + find_package(MPI QUIET COMPONENTS C) option(BUILD_MPI "Build MPI version" ${MPI_FOUND}) else() option(BUILD_MPI "Build MPI version" OFF) @@ -415,7 +414,6 @@ if(BUILD_MPI) if((CMAKE_SYSTEM_NAME STREQUAL "Windows") AND CMAKE_CROSSCOMPILING) include(MPI4WIN) else() - enable_language(C) find_package(MPI REQUIRED COMPONENTS C) option(LAMMPS_LONGLONG_TO_LONG "Workaround if your system or MPI version does not recognize 'long long' data types" OFF) if(LAMMPS_LONGLONG_TO_LONG) @@ -543,7 +541,6 @@ if((CMAKE_CXX_COMPILER_ID STREQUAL "Intel") AND (CMAKE_CXX_STANDARD GREATER_EQUA endif() if(PKG_ATC OR PKG_AWPMD OR PKG_ML-QUIP OR PKG_ML-POD OR PKG_ELECTRODE OR PKG_RHEO OR BUILD_TOOLS) - enable_language(C) if (NOT USE_INTERNAL_LINALG) find_package(LAPACK) find_package(BLAS) @@ -1058,9 +1055,9 @@ else() endif() if(BUILD_MPI) message(STATUS "<<< MPI flags >>> --- MPI_defines: ${MPI_CXX_COMPILE_DEFINITIONS} --- MPI includes: ${MPI_CXX_INCLUDE_PATH} --- MPI libraries: ${MPI_CXX_LIBRARIES};${MPI_Fortran_LIBRARIES}") +-- MPI_defines: ${MPI_C_COMPILE_DEFINITIONS} +-- MPI includes: ${MPI_C_INCLUDE_PATH} +-- MPI libraries: ${MPI_C_LIBRARIES};${MPI_Fortran_LIBRARIES}") endif() if(PKG_GPU) message(STATUS "<<< GPU package settings >>> diff --git a/cmake/Modules/MPI4WIN.cmake b/cmake/Modules/MPI4WIN.cmake index 9c5a2c8b6c..18a551b1c7 100644 --- a/cmake/Modules/MPI4WIN.cmake +++ b/cmake/Modules/MPI4WIN.cmake @@ -29,9 +29,9 @@ if(USE_MSMPI) add_dependencies(MPI::MPI_C mpi4win_build) # set variables for status reporting at the end of CMake run - set(MPI_CXX_INCLUDE_PATH "${SOURCE_DIR}/include") - set(MPI_CXX_COMPILE_DEFINITIONS "MPICH_SKIP_MPICXX") - set(MPI_CXX_LIBRARIES "${SOURCE_DIR}/lib/libmsmpi.a") + set(MPI_C_INCLUDE_PATH "${SOURCE_DIR}/include") + set(MPI_C_COMPILE_DEFINITIONS "MPICH_SKIP_MPICXX") + set(MPI_C_LIBRARIES "${SOURCE_DIR}/lib/libmsmpi.a") else() message(STATUS "Downloading and configuring MPICH2-1.4.1 for Windows cross-compilation") set(MPICH2_WIN64_DEVEL_URL "${LAMMPS_THIRDPARTY_URL}/mpich2-win64-devel.tar.gz" CACHE STRING "URL for MPICH2 (win64) tarball") @@ -68,7 +68,7 @@ else() add_dependencies(MPI::MPI_C mpi4win_build) # set variables for status reporting at the end of CMake run - set(MPI_CXX_INCLUDE_PATH "${SOURCE_DIR}/include") - set(MPI_CXX_COMPILE_DEFINITIONS "MPICH_SKIP_MPICXX") - set(MPI_CXX_LIBRARIES "${SOURCE_DIR}/lib/libmpi.a") + set(MPI_C_INCLUDE_PATH "${SOURCE_DIR}/include") + set(MPI_C_COMPILE_DEFINITIONS "MPICH_SKIP_MPICXX") + set(MPI_C_LIBRARIES "${SOURCE_DIR}/lib/libmpi.a") endif() diff --git a/examples/COUPLE/plugin/CMakeLists.txt b/examples/COUPLE/plugin/CMakeLists.txt index 00f86058fb..c8deb5c7c6 100644 --- a/examples/COUPLE/plugin/CMakeLists.txt +++ b/examples/COUPLE/plugin/CMakeLists.txt @@ -27,7 +27,7 @@ if(MSVC) add_compile_definitions(_CRT_SECURE_NO_WARNINGS) endif() -find_package(MPI REQUIRED) +find_package(MPI REQUIRED COMPONENTS C) # do not include the (obsolete) MPI C++ bindings which makes # for leaner object files and avoids namespace conflicts set(MPI_CXX_SKIP_MPICXX TRUE) diff --git a/examples/COUPLE/simple/CMakeLists.txt b/examples/COUPLE/simple/CMakeLists.txt index c09b372183..6d26db1877 100644 --- a/examples/COUPLE/simple/CMakeLists.txt +++ b/examples/COUPLE/simple/CMakeLists.txt @@ -25,7 +25,7 @@ if(MSVC) add_compile_definitions(_CRT_SECURE_NO_WARNINGS) endif() -find_package(MPI QUIET) +find_package(MPI QUIET COMPONENTS C) # do not include the (obsolete) MPI C++ bindings which makes # for leaner object files and avoids namespace conflicts set(MPI_CXX_SKIP_MPICXX TRUE) @@ -38,7 +38,7 @@ if(NOT LAMMPS_SOURCE_DIR) endif() add_executable(simpleCC simple.cpp) -target_link_libraries(simpleCC PRIVATE LAMMPS::lammps MPI::MPI_CXX) +target_link_libraries(simpleCC PRIVATE LAMMPS::lammps MPI::MPI_C) add_executable(simpleC simple.c) target_link_libraries(simpleC PRIVATE LAMMPS::lammps MPI::MPI_C) diff --git a/examples/plugins/LAMMPSInterfaceCXX.cmake b/examples/plugins/LAMMPSInterfaceCXX.cmake index 4cd4510a61..cdfcb498fe 100644 --- a/examples/plugins/LAMMPSInterfaceCXX.cmake +++ b/examples/plugins/LAMMPSInterfaceCXX.cmake @@ -34,8 +34,9 @@ endif() ################################################################################ # MPI configuration if(NOT CMAKE_CROSSCOMPILING) + enable_language(C) set(MPI_CXX_SKIP_MPICXX TRUE) - find_package(MPI QUIET) + find_package(MPI QUIET COMPONENTS C) option(BUILD_MPI "Build MPI version" ${MPI_FOUND}) else() option(BUILD_MPI "Build MPI version" OFF) @@ -69,17 +70,17 @@ if(BUILD_MPI) ExternalProject_get_property(mpi4win_build SOURCE_DIR) file(MAKE_DIRECTORY "${SOURCE_DIR}/include") - add_library(MPI::MPI_CXX UNKNOWN IMPORTED) - set_target_properties(MPI::MPI_CXX PROPERTIES + add_library(MPI::MPI_C UNKNOWN IMPORTED) + set_target_properties(MPI::MPI_C PROPERTIES IMPORTED_LOCATION "${SOURCE_DIR}/lib/libmsmpi.a" INTERFACE_INCLUDE_DIRECTORIES "${SOURCE_DIR}/include" INTERFACE_COMPILE_DEFINITIONS "MPICH_SKIP_MPICXX") - add_dependencies(MPI::MPI_CXX mpi4win_build) + add_dependencies(MPI::MPI_C mpi4win_build) # set variables for status reporting at the end of CMake run - set(MPI_CXX_INCLUDE_PATH "${SOURCE_DIR}/include") - set(MPI_CXX_COMPILE_DEFINITIONS "MPICH_SKIP_MPICXX") - set(MPI_CXX_LIBRARIES "${SOURCE_DIR}/lib/libmsmpi.a") + set(MPI_C_INCLUDE_PATH "${SOURCE_DIR}/include") + set(MPI_C_COMPILE_DEFINITIONS "MPICH_SKIP_MPICXX") + set(MPI_C_LIBRARIES "${SOURCE_DIR}/lib/libmsmpi.a") else() # Download and configure custom MPICH files for Windows message(STATUS "Downloading and configuring MPICH-1.4.1 for Windows") @@ -105,17 +106,17 @@ if(BUILD_MPI) ExternalProject_get_property(mpi4win_build SOURCE_DIR) file(MAKE_DIRECTORY "${SOURCE_DIR}/include") - add_library(MPI::MPI_CXX UNKNOWN IMPORTED) - set_target_properties(MPI::MPI_CXX PROPERTIES + add_library(MPI::MPI_C UNKNOWN IMPORTED) + set_target_properties(MPI::MPI_C PROPERTIES IMPORTED_LOCATION "${SOURCE_DIR}/lib/libmpi.a" INTERFACE_INCLUDE_DIRECTORIES "${SOURCE_DIR}/include" INTERFACE_COMPILE_DEFINITIONS "MPICH_SKIP_MPICXX") - add_dependencies(MPI::MPI_CXX mpi4win_build) + add_dependencies(MPI::MPI_C mpi4win_build) # set variables for status reporting at the end of CMake run - set(MPI_CXX_INCLUDE_PATH "${SOURCE_DIR}/include") - set(MPI_CXX_COMPILE_DEFINITIONS "MPICH_SKIP_MPICXX") - set(MPI_CXX_LIBRARIES "${SOURCE_DIR}/lib/libmpi.a") + set(MPI_C_INCLUDE_PATH "${SOURCE_DIR}/include") + set(MPI_C_COMPILE_DEFINITIONS "MPICH_SKIP_MPICXX") + set(MPI_C_LIBRARIES "${SOURCE_DIR}/lib/libmpi.a") endif() else() find_package(MPI REQUIRED) @@ -124,7 +125,7 @@ if(BUILD_MPI) target_compile_definitions(lammps INTERFACE -DLAMMPS_LONGLONG_TO_LONG) endif() endif() - target_link_libraries(lammps INTERFACE MPI::MPI_CXX) + target_link_libraries(lammps INTERFACE MPI::MPI_C) else() target_include_directories(lammps INTERFACE "${LAMMPS_SOURCE_DIR}/STUBS") endif()