Unverified Commit fe9e6736 authored by Stan Moore's avatar Stan Moore Committed by GitHub
Browse files

Merge branch 'master' into kk_dihedral_charmm

parents 0b93b45f 910d00f5
Loading
Loading
Loading
Loading
+9 −10
Original line number Diff line number Diff line
@@ -135,23 +135,20 @@ if(PKG_USER-ADIOS)
  target_link_libraries(lammps PRIVATE adios2::adios2)
endif()

if (CMAKE_SYSTEM_NAME STREQUAL Windows)
  option(BUILD_MPI "Build MPI version" OFF)
else()
  # do MPI detection after language activation,
  # in case MPI for these languages is required
if(NOT CMAKE_CROSSCOMPILING)
  set(MPI_CXX_SKIP_MPICXX TRUE)
  find_package(MPI QUIET)
  option(BUILD_MPI "Build MPI version" ${MPI_FOUND})
else()
  option(BUILD_MPI "Build MPI version" OFF)
endif()

if(BUILD_MPI)
  # We use a non-standard procedure to compile with MPI on windows
  if (CMAKE_SYSTEM_NAME STREQUAL Windows)
  # We use a non-standard procedure to cross-compile with MPI on Windows
  if((CMAKE_SYSTEM_NAME STREQUAL Windows) AND CMAKE_CROSSCOMPILING)
    include(MPI4WIN)
    target_link_libraries(lammps PUBLIC MPI::MPI_CXX)
  else()
    set(MPI_CXX_SKIP_MPICXX ON)
    find_package(MPI REQUIRED)
    target_link_libraries(lammps PUBLIC MPI::MPI_CXX)
    option(LAMMPS_LONGLONG_TO_LONG "Workaround if your system or MPI version does not recognize 'long long' data types" OFF)
@@ -332,8 +329,9 @@ set(CMAKE_TUNE_FLAGS "${CMAKE_TUNE_DEFAULT}" CACHE STRING "Compiler specific opt
separate_arguments(CMAKE_TUNE_FLAGS)
include(CheckCXXCompilerFlag)
foreach(_FLAG ${CMAKE_TUNE_FLAGS})
  check_cxx_compiler_flag("${_FLAG}" COMPILER_SUPPORTS${_FLAG})
  if(COMPILER_SUPPORTS${_FLAG})
  string(REGEX REPLACE "[=\"]" "" _FLAGX ${_FLAG})
  check_cxx_compiler_flag("${_FLAG}" COMPILER_SUPPORTS${_FLAGX})
  if(COMPILER_SUPPORTS${_FLAGX})
    target_compile_options(lammps PRIVATE ${_FLAG})
  else()
    message(WARNING "${_FLAG} found in CMAKE_TUNE_FLAGS, but not supported by the compiler, skipping")
@@ -705,6 +703,7 @@ 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}")
endif()
+5 −0
Original line number Diff line number Diff line
@@ -23,3 +23,8 @@ set_target_properties(MPI::MPI_CXX PROPERTIES
  INTERFACE_INCLUDE_DIRECTORIES "${SOURCE_DIR}/include"
  INTERFACE_COMPILE_DEFINITIONS "MPICH_SKIP_MPICXX")
add_dependencies(MPI::MPI_CXX 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")
+13 −2
Original line number Diff line number Diff line
@@ -330,7 +330,7 @@ elseif(GPU_API STREQUAL "HIP")

  if(HIP_PLATFORM STREQUAL "nvcc")
    target_compile_definitions(gpu PRIVATE -D__HIP_PLATFORM_NVCC__)
    target_include_directories(gpu PRIVATE ${HIP_ROOT_DIR}/include)
    target_include_directories(gpu PRIVATE ${HIP_ROOT_DIR}/../include)
    target_include_directories(gpu PRIVATE ${CUDA_INCLUDE_DIRS})
    target_link_libraries(gpu PRIVATE ${CUDA_LIBRARIES} ${CUDA_CUDA_LIBRARY})

@@ -338,6 +338,12 @@ elseif(GPU_API STREQUAL "HIP")
    target_include_directories(hip_get_devices PRIVATE ${HIP_ROOT_DIR}/include)
    target_include_directories(hip_get_devices PRIVATE ${CUDA_INCLUDE_DIRS})
    target_link_libraries(hip_get_devices PRIVATE ${CUDA_LIBRARIES} ${CUDA_CUDA_LIBRARY})
  elseif(HIP_PLATFORM STREQUAL "hcc")
    target_compile_definitions(gpu PRIVATE -D__HIP_PLATFORM_HCC__)
    target_include_directories(gpu PRIVATE ${HIP_ROOT_DIR}/../include)

    target_compile_definitions(hip_get_devices PRIVATE -D__HIP_PLATFORM_HCC__)
    target_include_directories(hip_get_devices PRIVATE ${HIP_ROOT_DIR}/../include)
  endif()

  target_link_libraries(lammps PRIVATE gpu)
@@ -353,7 +359,12 @@ RegisterStylesExt(${GPU_SOURCES_DIR} gpu GPU_SOURCES)

get_property(GPU_SOURCES GLOBAL PROPERTY GPU_SOURCES)

if(NOT BUILD_MPI)
  # mpistubs is aliased to MPI::MPI_CXX, but older versions of cmake won't work forward the include path
  target_link_libraries(gpu PRIVATE mpi_stubs)
else()
  target_link_libraries(gpu PRIVATE MPI::MPI_CXX)
endif()
if(NOT BUILD_SHARED_LIBS)
  install(TARGETS gpu EXPORT LAMMPS_Targets LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
endif()
+9 −1
Original line number Diff line number Diff line
enable_language(Fortran)

# using lammps in a super-build setting
if(TARGET LATTE::latte)
  target_link_libraries(lammps PRIVATE LATTE::latte)
  return()
endif()

find_package(LATTE)
if(LATTE_FOUND)
  set(DOWNLOAD_LATTE_DEFAULT OFF)
@@ -35,5 +42,6 @@ else()
  if(NOT LATTE_FOUND)
    message(FATAL_ERROR "LATTE library not found, help CMake to find it by setting LATTE_LIBRARY, or set DOWNLOAD_LATTE=ON to download it")
  endif()
  target_link_libraries(lammps PRIVATE LATTE::latte)
  # latte needs lapack
  target_link_libraries(lammps PRIVATE LATTE::latte ${LAPACK_LIBRARIES})
endif()
+1 −1
Original line number Diff line number Diff line
@@ -2,7 +2,7 @@

set(CMAKE_CXX_COMPILER "clang++" CACHE STRING "" FORCE)
set(CMAKE_C_COMPILER "clang" CACHE STRING "" FORCE)
set(CMAKE_CXX_FLAGS "-Wall -Wextra -g -O2 -DNDEBG" CACHE STRING "" FORCE)
set(CMAKE_CXX_FLAGS "-Wall -Wextra -g -O2 -DNDEBUG" CACHE STRING "" FORCE)
set(MPI_CXX "clang++" CACHE STRING "" FORCE)
set(MPI_CXX_COMPILER "mpicxx" CACHE STRING "" FORCE)
unset(HAVE_OMP_H_INCLUDE CACHE)
Loading