|
|
|
|
@ -314,10 +314,15 @@ pkg_depends(USER-LB MPI)
|
|
|
|
|
pkg_depends(USER-PHONON KSPACE)
|
|
|
|
|
pkg_depends(USER-SCAFACOS MPI)
|
|
|
|
|
|
|
|
|
|
include(CheckIncludeFileCXX)
|
|
|
|
|
find_package(OpenMP QUIET)
|
|
|
|
|
option(BUILD_OMP "Build with OpenMP support" ${OpenMP_FOUND})
|
|
|
|
|
if(BUILD_OMP)
|
|
|
|
|
find_package(OpenMP REQUIRED)
|
|
|
|
|
check_include_file_cxx(omp.h HAVE_OMP_H_INCLUDE)
|
|
|
|
|
if(NOT HAVE_OMP_H_INCLUDE)
|
|
|
|
|
message(FATAL_ERROR "Cannot find required 'omp.h' header file")
|
|
|
|
|
endif()
|
|
|
|
|
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
|
|
|
|
|
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
|
|
|
|
|
endif()
|
|
|
|
|
@ -436,7 +441,13 @@ else()
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
if(PKG_VORONOI)
|
|
|
|
|
option(DOWNLOAD_VORO "Download and compile the Voro++ library instead of using an already installed one" OFF)
|
|
|
|
|
find_package(VORO)
|
|
|
|
|
if(VORO_FOUND)
|
|
|
|
|
set(DOWNLOAD_VORO_DEFAULT OFF)
|
|
|
|
|
else()
|
|
|
|
|
set(DOWNLOAD_VORO_DEFAULT ON)
|
|
|
|
|
endif()
|
|
|
|
|
option(DOWNLOAD_VORO "Download and compile the Voro++ library instead of using an already installed one" ${DOWNLOAD_VORO_DEFAULT})
|
|
|
|
|
if(DOWNLOAD_VORO)
|
|
|
|
|
message(STATUS "Voro++ download requested - we will build our own")
|
|
|
|
|
include(ExternalProject)
|
|
|
|
|
@ -469,7 +480,13 @@ if(PKG_VORONOI)
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
if(PKG_LATTE)
|
|
|
|
|
option(DOWNLOAD_LATTE "Download the LATTE library instead of using an already installed one" OFF)
|
|
|
|
|
find_package(LATTE)
|
|
|
|
|
if(LATTE_FOUND)
|
|
|
|
|
set(DOWNLOAD_LATTE_DEFAULT OFF)
|
|
|
|
|
else()
|
|
|
|
|
set(DOWNLOAD_LATTE_DEFAULT ON)
|
|
|
|
|
endif()
|
|
|
|
|
option(DOWNLOAD_LATTE "Download the LATTE library instead of using an already installed one" ${DOWNLOAD_LATTE_DEFAULT})
|
|
|
|
|
if(DOWNLOAD_LATTE)
|
|
|
|
|
if (CMAKE_VERSION VERSION_LESS "3.7") # due to SOURCE_SUBDIR
|
|
|
|
|
message(FATAL_ERROR "For downlading LATTE you need at least cmake-3.7")
|
|
|
|
|
@ -480,7 +497,7 @@ if(PKG_LATTE)
|
|
|
|
|
URL https://github.com/lanl/LATTE/archive/v1.2.1.tar.gz
|
|
|
|
|
URL_MD5 85ac414fdada2d04619c8f936344df14
|
|
|
|
|
SOURCE_SUBDIR cmake
|
|
|
|
|
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=<INSTALL_DIR> ${CMAKE_REQUEST_PIC}
|
|
|
|
|
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=<INSTALL_DIR> ${CMAKE_REQUEST_PIC} -DBLAS_LIBRARIES=${BLAS_LIBRARIES} -DLAPACK_LIBRARIES=${LAPACK_LIBRARIES}
|
|
|
|
|
)
|
|
|
|
|
ExternalProject_get_property(latte_build INSTALL_DIR)
|
|
|
|
|
set(LATTE_LIBRARIES ${INSTALL_DIR}/${CMAKE_INSTALL_LIBDIR}/liblatte.a)
|
|
|
|
|
@ -496,7 +513,15 @@ endif()
|
|
|
|
|
|
|
|
|
|
if(PKG_USER-SCAFACOS)
|
|
|
|
|
find_package(GSL REQUIRED)
|
|
|
|
|
option(DOWNLOAD_SCAFACOS "Download ScaFaCoS library instead of using an already installed one" OFF)
|
|
|
|
|
find_package(PkgConfig QUIET)
|
|
|
|
|
set(DOWNLOAD_SCAFACOS_DEFAULT ON)
|
|
|
|
|
if(PKG_CONFIG_FOUND)
|
|
|
|
|
pkg_check_modules(SCAFACOS QUIET scafacos)
|
|
|
|
|
if(SCAFACOS_FOUND)
|
|
|
|
|
set(DOWNLOAD_SCAFACOS_DEFAULT OFF)
|
|
|
|
|
endif()
|
|
|
|
|
endif()
|
|
|
|
|
option(DOWNLOAD_SCAFACOS "Download ScaFaCoS library instead of using an already installed one" ${DOWNLOAD_SCAFACOS_DEFAULT})
|
|
|
|
|
if(DOWNLOAD_SCAFACOS)
|
|
|
|
|
message(STATUS "ScaFaCoS download requested - we will build our own")
|
|
|
|
|
include(ExternalProject)
|
|
|
|
|
@ -536,8 +561,8 @@ if(PKG_USER-SCAFACOS)
|
|
|
|
|
list(APPEND LAMMPS_LINK_LIBS ${MPI_Fortran_LIBRARIES})
|
|
|
|
|
list(APPEND LAMMPS_LINK_LIBS ${MPI_C_LIBRARIES})
|
|
|
|
|
else()
|
|
|
|
|
FIND_PACKAGE(PkgConfig REQUIRED)
|
|
|
|
|
PKG_CHECK_MODULES(SCAFACOS scafacos REQUIRED)
|
|
|
|
|
find_package(PkgConfig REQUIRED)
|
|
|
|
|
pkg_check_modules(SCAFACOS REQUIRED scafacos)
|
|
|
|
|
list(APPEND LAMMPS_LINK_LIBS ${SCAFACOS_LDFLAGS})
|
|
|
|
|
endif()
|
|
|
|
|
include_directories(${SCAFACOS_INCLUDE_DIRS})
|
|
|
|
|
@ -551,7 +576,16 @@ if(PKG_USER-PLUMED)
|
|
|
|
|
validate_option(PLUMED_MODE PLUMED_MODE_VALUES)
|
|
|
|
|
string(TOUPPER ${PLUMED_MODE} PLUMED_MODE)
|
|
|
|
|
|
|
|
|
|
option(DOWNLOAD_PLUMED "Download Plumed package instead of using an already installed one" OFF)
|
|
|
|
|
find_package(PkgConfig QUIET)
|
|
|
|
|
set(DOWNLOAD_PLUMED_DEFAULT ON)
|
|
|
|
|
if(PKG_CONFIG_FOUND)
|
|
|
|
|
pkg_check_modules(PLUMED QUIET plumed)
|
|
|
|
|
if(PLUMED_FOUND)
|
|
|
|
|
set(DOWNLOAD_PLUMED_DEFAULT OFF)
|
|
|
|
|
endif()
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
option(DOWNLOAD_PLUMED "Download Plumed package instead of using an already installed one" ${DOWNLOAD_PLUMED_DEFAULT})
|
|
|
|
|
if(DOWNLOAD_PLUMED)
|
|
|
|
|
if(BUILD_MPI)
|
|
|
|
|
set(PLUMED_CONFIG_MPI "--enable-mpi")
|
|
|
|
|
@ -596,7 +630,7 @@ if(PKG_USER-PLUMED)
|
|
|
|
|
set(PLUMED_INCLUDE_DIRS "${PLUMED_INSTALL_DIR}/include")
|
|
|
|
|
else()
|
|
|
|
|
find_package(PkgConfig REQUIRED)
|
|
|
|
|
pkg_check_modules(PLUMED plumed REQUIRED)
|
|
|
|
|
pkg_check_modules(PLUMED REQUIRED plumed)
|
|
|
|
|
if(PLUMED_MODE STREQUAL "STATIC")
|
|
|
|
|
add_definitions(-D__PLUMED_WRAPPER_CXX=1)
|
|
|
|
|
include(${PLUMED_LIBDIR}/plumed/src/lib/Plumed.cmake.static)
|
|
|
|
|
@ -630,7 +664,13 @@ if(PKG_USER-NETCDF)
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
if(PKG_USER-SMD)
|
|
|
|
|
option(DOWNLOAD_EIGEN3 "Download Eigen3 instead of using an already installed one)" OFF)
|
|
|
|
|
find_package(Eigen3 NO_MODULE)
|
|
|
|
|
if(EIGEN3_FOUND)
|
|
|
|
|
set(DOWNLOAD_EIGEN3_DEFAULT OFF)
|
|
|
|
|
else()
|
|
|
|
|
set(DOWNLOAD_EIGEN3_DEFAULT ON)
|
|
|
|
|
endif()
|
|
|
|
|
option(DOWNLOAD_EIGEN3 "Download Eigen3 instead of using an already installed one)" ${DOWNLOAD_EIGEN3_DEFAULT})
|
|
|
|
|
if(DOWNLOAD_EIGEN3)
|
|
|
|
|
message(STATUS "Eigen3 download requested - we will build our own")
|
|
|
|
|
include(ExternalProject)
|
|
|
|
|
@ -678,7 +718,13 @@ if(PKG_KIM)
|
|
|
|
|
list(APPEND LAMMPS_LINK_LIBS ${CURL_LIBRARIES})
|
|
|
|
|
add_definitions(-DLMP_KIM_CURL)
|
|
|
|
|
endif()
|
|
|
|
|
option(DOWNLOAD_KIM "Download KIM-API from OpenKIM instead of using an already installed one" OFF)
|
|
|
|
|
find_package(KIM-API QUIET)
|
|
|
|
|
if(KIM-API_FOUND)
|
|
|
|
|
set(DOWNLOAD_KIM_DEFAULT OFF)
|
|
|
|
|
else()
|
|
|
|
|
set(DOWNLOAD_KIM_DEFAULT ON)
|
|
|
|
|
endif()
|
|
|
|
|
option(DOWNLOAD_KIM "Download KIM-API from OpenKIM instead of using an already installed one" ${DOWNLOAD_KIM_DEFAULT})
|
|
|
|
|
if(DOWNLOAD_KIM)
|
|
|
|
|
message(STATUS "KIM-API download requested - we will build our own")
|
|
|
|
|
enable_language(C)
|
|
|
|
|
@ -699,10 +745,7 @@ if(PKG_KIM)
|
|
|
|
|
set(KIM-API_LDFLAGS ${INSTALL_DIR}/${CMAKE_INSTALL_LIBDIR}/libkim-api${CMAKE_SHARED_LIBRARY_SUFFIX})
|
|
|
|
|
list(APPEND LAMMPS_DEPS kim_build)
|
|
|
|
|
else()
|
|
|
|
|
find_package(KIM-API)
|
|
|
|
|
if(NOT KIM-API_FOUND)
|
|
|
|
|
message(FATAL_ERROR "KIM-API not found, help CMake to find it by setting PKG_CONFIG_PATH, or set DOWNLOAD_KIM=ON to download it")
|
|
|
|
|
endif()
|
|
|
|
|
find_package(KIM-API REQUIRED)
|
|
|
|
|
endif()
|
|
|
|
|
list(APPEND LAMMPS_LINK_LIBS "${KIM-API_LDFLAGS}")
|
|
|
|
|
include_directories(${KIM-API_INCLUDE_DIRS})
|
|
|
|
|
@ -740,7 +783,13 @@ endif()
|
|
|
|
|
|
|
|
|
|
if(PKG_MSCG)
|
|
|
|
|
find_package(GSL REQUIRED)
|
|
|
|
|
option(DOWNLOAD_MSCG "Download MSCG library instead of using an already installed one)" OFF)
|
|
|
|
|
find_package(MSCG QUIET)
|
|
|
|
|
if(MSGC_FOUND)
|
|
|
|
|
set(DOWNLOAD_MSCG_DEFAULT OFF)
|
|
|
|
|
else()
|
|
|
|
|
set(DOWNLOAD_MSCG_DEFAULT ON)
|
|
|
|
|
endif()
|
|
|
|
|
option(DOWNLOAD_MSCG "Download MSCG library instead of using an already installed one)" ${DOWNLOAD_MSCG_DEFAULT})
|
|
|
|
|
if(DOWNLOAD_MSCG)
|
|
|
|
|
if (CMAKE_VERSION VERSION_LESS "3.7") # due to SOURCE_SUBDIR
|
|
|
|
|
message(FATAL_ERROR "For downlading MSCG you need at least cmake-3.7")
|
|
|
|
|
@ -789,7 +838,6 @@ endif()
|
|
|
|
|
########################################################################
|
|
|
|
|
# Basic system tests (standard libraries, headers, functions, types) #
|
|
|
|
|
########################################################################
|
|
|
|
|
include(CheckIncludeFileCXX)
|
|
|
|
|
foreach(HEADER cmath)
|
|
|
|
|
check_include_file_cxx(${HEADER} FOUND_${HEADER})
|
|
|
|
|
if(NOT FOUND_${HEADER})
|
|
|
|
|
@ -1444,6 +1492,15 @@ if(BUILD_EXE)
|
|
|
|
|
if(ENABLE_TESTING)
|
|
|
|
|
add_test(ShowHelp ${LAMMPS_BINARY} -help)
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
enable_language(C)
|
|
|
|
|
get_filename_component(MSI2LMP_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../tools/msi2lmp/src ABSOLUTE)
|
|
|
|
|
file(GLOB MSI2LMP_SOURCES ${MSI2LMP_SOURCE_DIR}/[^.]*.c)
|
|
|
|
|
add_executable(msi2lmp ${MSI2LMP_SOURCES})
|
|
|
|
|
target_link_libraries(msi2lmp m)
|
|
|
|
|
install(TARGETS msi2lmp DESTINATION ${CMAKE_INSTALL_BINDIR})
|
|
|
|
|
install(FILES ${LAMMPS_DOC_DIR}/msi2lmp.1 DESTINATION ${CMAKE_INSTALL_MANDIR}/man1)
|
|
|
|
|
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
###############################################################################
|
|
|
|
|
@ -1507,11 +1564,14 @@ if(BUILD_DOC)
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
###############################################################################
|
|
|
|
|
# Install potential files in data directory
|
|
|
|
|
# Install potential and force field files in data directory
|
|
|
|
|
###############################################################################
|
|
|
|
|
set(LAMMPS_POTENTIALS_DIR ${CMAKE_INSTALL_FULL_DATADIR}/lammps/potentials)
|
|
|
|
|
install(DIRECTORY ${LAMMPS_SOURCE_DIR}/../potentials/ DESTINATION ${LAMMPS_POTENTIALS_DIR})
|
|
|
|
|
|
|
|
|
|
set(LAMMPS_FRC_FILES_DIR ${CMAKE_INSTALL_FULL_DATADIR}/lammps/frc_files)
|
|
|
|
|
install(DIRECTORY ${LAMMPS_SOURCE_DIR}/../tools/msi2lmp/frc_files/ DESTINATION ${LAMMPS_FRC_FILES_DIR})
|
|
|
|
|
|
|
|
|
|
configure_file(etc/profile.d/lammps.sh.in ${CMAKE_BINARY_DIR}/etc/profile.d/lammps.sh @ONLY)
|
|
|
|
|
configure_file(etc/profile.d/lammps.csh.in ${CMAKE_BINARY_DIR}/etc/profile.d/lammps.csh @ONLY)
|
|
|
|
|
install(
|
|
|
|
|
|