simplify building serial executables by incorporating the STUBS/mpi.o object in LAMMPS library
This commit is contained in:
@ -290,25 +290,8 @@ if(BUILD_MPI)
|
|||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
else()
|
else()
|
||||||
file(GLOB MPI_SOURCES ${LAMMPS_SOURCE_DIR}/STUBS/mpi.cpp)
|
target_sources(lammps PRIVATE ${LAMMPS_SOURCE_DIR}/STUBS/mpi.cpp)
|
||||||
add_library(mpi_stubs STATIC ${MPI_SOURCES})
|
target_include_directories(lammps PUBLIC ${LAMMPS_SOURCE_DIR}/STUBS)
|
||||||
set_target_properties(mpi_stubs PROPERTIES OUTPUT_NAME lammps_mpi_stubs${LAMMPS_MACHINE})
|
|
||||||
target_include_directories(mpi_stubs PUBLIC $<BUILD_INTERFACE:${LAMMPS_SOURCE_DIR}/STUBS>)
|
|
||||||
if(BUILD_SHARED_LIBS)
|
|
||||||
target_link_libraries(lammps PRIVATE mpi_stubs)
|
|
||||||
if(MSVC)
|
|
||||||
target_link_libraries(lmp PRIVATE mpi_stubs)
|
|
||||||
target_include_directories(lmp INTERFACE $<BUILD_INTERFACE:${LAMMPS_SOURCE_DIR}/STUBS>)
|
|
||||||
target_compile_definitions(lmp INTERFACE $<INSTALL_INTERFACE:LAMMPS_LIB_NO_MPI>)
|
|
||||||
endif()
|
|
||||||
target_include_directories(lammps INTERFACE $<BUILD_INTERFACE:${LAMMPS_SOURCE_DIR}/STUBS>)
|
|
||||||
target_compile_definitions(lammps INTERFACE $<INSTALL_INTERFACE:LAMMPS_LIB_NO_MPI>)
|
|
||||||
else()
|
|
||||||
target_include_directories(lammps INTERFACE $<BUILD_INTERFACE:${LAMMPS_SOURCE_DIR}/STUBS>)
|
|
||||||
target_compile_definitions(lammps INTERFACE $<INSTALL_INTERFACE:LAMMPS_LIB_NO_MPI>)
|
|
||||||
target_link_libraries(lammps PUBLIC mpi_stubs)
|
|
||||||
endif()
|
|
||||||
add_library(MPI::MPI_CXX ALIAS mpi_stubs)
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(LAMMPS_SIZES "smallbig" CACHE STRING "LAMMPS integer sizes (smallsmall: all 32-bit, smallbig: 64-bit #atoms #timesteps, bigbig: also 64-bit imageint, 64-bit atom ids)")
|
set(LAMMPS_SIZES "smallbig" CACHE STRING "LAMMPS integer sizes (smallsmall: all 32-bit, smallbig: 64-bit #atoms #timesteps, bigbig: also 64-bit imageint, 64-bit atom ids)")
|
||||||
@ -594,7 +577,7 @@ if(PKG_ATC)
|
|||||||
if(BUILD_MPI)
|
if(BUILD_MPI)
|
||||||
target_link_libraries(atc PRIVATE MPI::MPI_CXX)
|
target_link_libraries(atc PRIVATE MPI::MPI_CXX)
|
||||||
else()
|
else()
|
||||||
target_link_libraries(atc PRIVATE mpi_stubs)
|
target_include_directories(atc PRIVATE ${LAMMPS_SOURCE_DIR}/STUBS)
|
||||||
endif()
|
endif()
|
||||||
target_include_directories(atc PRIVATE ${LAMMPS_SOURCE_DIR})
|
target_include_directories(atc PRIVATE ${LAMMPS_SOURCE_DIR})
|
||||||
target_compile_definitions(atc PRIVATE -DLAMMPS_${LAMMPS_SIZES})
|
target_compile_definitions(atc PRIVATE -DLAMMPS_${LAMMPS_SIZES})
|
||||||
|
|||||||
@ -424,8 +424,8 @@ RegisterFixStyle(${GPU_SOURCES_DIR}/fix_gpu.h)
|
|||||||
get_property(GPU_SOURCES GLOBAL PROPERTY GPU_SOURCES)
|
get_property(GPU_SOURCES GLOBAL PROPERTY GPU_SOURCES)
|
||||||
|
|
||||||
if(NOT BUILD_MPI)
|
if(NOT BUILD_MPI)
|
||||||
# mpistubs is aliased to MPI::MPI_CXX, but older versions of cmake won't work forward the include path
|
# add include include path to MPI STUBS for non-MPI build
|
||||||
target_link_libraries(gpu PRIVATE mpi_stubs)
|
target_include_directories(gpu PRIVATE ${LAMMPS_SOURCE_DIR}/STUBS)
|
||||||
else()
|
else()
|
||||||
target_link_libraries(gpu PRIVATE MPI::MPI_CXX)
|
target_link_libraries(gpu PRIVATE MPI::MPI_CXX)
|
||||||
endif()
|
endif()
|
||||||
|
|||||||
@ -48,8 +48,6 @@ target_include_directories(style_tests PRIVATE ${LAMMPS_SOURCE_DIR})
|
|||||||
target_link_libraries(style_tests PUBLIC gmock Yaml::Yaml lammps)
|
target_link_libraries(style_tests PUBLIC gmock Yaml::Yaml lammps)
|
||||||
if(BUILD_MPI)
|
if(BUILD_MPI)
|
||||||
target_link_libraries(style_tests PUBLIC MPI::MPI_CXX)
|
target_link_libraries(style_tests PUBLIC MPI::MPI_CXX)
|
||||||
else()
|
|
||||||
target_link_libraries(style_tests PUBLIC mpi_stubs)
|
|
||||||
endif()
|
endif()
|
||||||
# propagate sanitizer options to test tools
|
# propagate sanitizer options to test tools
|
||||||
if(ENABLE_SANITIZER AND (NOT (ENABLE_SANITIZER STREQUAL "none")))
|
if(ENABLE_SANITIZER AND (NOT (ENABLE_SANITIZER STREQUAL "none")))
|
||||||
|
|||||||
Reference in New Issue
Block a user