diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index bf57398c71..288b8b2476 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -154,7 +154,7 @@ if(ENABLE_TESTING) endif(ENABLE_TESTING) set(DEFAULT_PACKAGES ASPHERE BODY CLASS2 COLLOID COMPRESS CORESHELL DIPOLE GRANULAR - KSPACE MANYBODY MC MEAM MISC MOLECULE PERI QEQ REAX REPLICA RIGID SHOCK SPIN SNAP + KSPACE MANYBODY MC MEAM MISC MOLECULE MESSAGE PERI QEQ REAX REPLICA RIGID SHOCK SPIN SNAP SRD KIM PYTHON MSCG MPIIO VORONOI POEMS LATTE USER-ATC USER-AWPMD USER-BOCS USER-CGDNA USER-MESO USER-CGSDK USER-COLVARS USER-DIFFRACTION USER-DPD USER-DRUDE USER-EFF USER-FEP USER-H5MD USER-LB USER-MANIFOLD USER-MEAMC USER-MGPT USER-MISC @@ -426,6 +426,32 @@ if(PKG_KIM) include_directories(${KIM_INCLUDE_DIRS}) endif() +if(PKG_MESSAGE) + option(MESSAGE_ZMQ "Use ZeroMQ in MESSAGE package" OFF) + file(GLOB_RECURSE cslib_SOURCES ${LAMMPS_LIB_SOURCE_DIR}/message/cslib/*.F + ${LAMMPS_LIB_SOURCE_DIR}/message/cslib/*.c ${LAMMPS_LIB_SOURCE_DIR}/message/cslib/*.cpp) + add_library(cslib STATIC ${cslib_SOURCES}) + + if(BUILD_MPI) + target_compile_definitions(cslib PRIVATE -DMPI_YES) + else() + target_compile_definitions(cslib PRIVATE -DMPI_NO) + endif() + + if(MESSAGE_ZMQ) + target_compile_definitions(cslib PRIVATE -DZMQ_YES) + find_package(ZMQ REQUIRED) + target_include_directories(cslib PRIVATE ${ZMQ_INCLUDE_DIRS}) + target_link_libraries(cslib PUBLIC ${ZMQ_LIBRARIES}) + else() + target_compile_definitions(cslib PRIVATE -DZMQ_NO) + target_include_directories(cslib PRIVATE ${LAMMPS_SOURCE_DIR}/message/cslib/src/STUBS_ZMQ) + endif() + + list(APPEND LAMMPS_LINK_LIBS cslib) + include_directories(${LAMMPS_LIB_SOURCE_DIR}/message/cslib/src) +endif() + if(PKG_MSCG) find_package(GSL REQUIRED) option(DOWNLOAD_MSCG "Download latte (instead of using the system's one)" OFF) diff --git a/cmake/Modules/FindZMQ.cmake b/cmake/Modules/FindZMQ.cmake new file mode 100644 index 0000000000..608ccda777 --- /dev/null +++ b/cmake/Modules/FindZMQ.cmake @@ -0,0 +1,8 @@ +find_path(ZMQ_INCLUDE_DIR zmq.h) +find_library(ZMQ_LIBRARY NAMES zmq) + +set(ZMQ_LIBRARIES ${ZMQ_LIBRARY}) +set(ZMQ_INCLUDE_DIRS ${ZMQ_INCLUDE_DIR}) + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(ZMQ DEFAULT_MSG ZMQ_LIBRARY ZMQ_INCLUDE_DIR)