Commit b6a6638f authored by Giacomo Fiorin's avatar Giacomo Fiorin
Browse files

Add CMake recipe for USER-COLVARS, test C++11 before including Lepton

parent e04a18fc
Loading
Loading
Loading
Loading
+6 −10
Original line number Diff line number Diff line
@@ -322,13 +322,14 @@ endif()
include(Packages/KSPACE)
include(Packages/PYTHON)
include(Packages/VORONOI)
include(Packages/USER-SCAFACOS)
include(Packages/USER-PLUMED)
include(Packages/USER-COLVARS)
include(Packages/USER-MOLFILE)
include(Packages/USER-NETCDF)
include(Packages/USER-SMD)
include(Packages/USER-QUIP)
include(Packages/USER-PLUMED)
include(Packages/USER-QMMM)
include(Packages/USER-QUIP)
include(Packages/USER-SCAFACOS)
include(Packages/USER-SMD)
include(Packages/USER-VTK)
include(Packages/KIM)
include(Packages/LATTE)
@@ -418,8 +419,7 @@ endforeach()
##############################################
# add lib sources of (simple) enabled packages
############################################
foreach(SIMPLE_LIB POEMS USER-ATC USER-AWPMD USER-COLVARS USER-H5MD
  USER-QMMM)
foreach(SIMPLE_LIB POEMS USER-ATC USER-AWPMD USER-H5MD USER-QMMM)
  if(PKG_${SIMPLE_LIB})
    string(REGEX REPLACE "^USER-" "" PKG_LIB "${SIMPLE_LIB}")
    string(TOLOWER "${PKG_LIB}" PKG_LIB)
@@ -433,10 +433,6 @@ foreach(SIMPLE_LIB POEMS USER-ATC USER-AWPMD USER-COLVARS USER-H5MD
      target_include_directories(awpmd PUBLIC ${LAMMPS_LIB_SOURCE_DIR}/awpmd/systems/interact ${LAMMPS_LIB_SOURCE_DIR}/awpmd/ivutils/include)
    elseif(PKG_LIB STREQUAL h5md)
      target_include_directories(h5md PUBLIC ${LAMMPS_LIB_SOURCE_DIR}/h5md/include ${HDF5_INCLUDE_DIRS})
    elseif(PKG_LIB STREQUAL colvars)
      target_compile_options(colvars PRIVATE -DLEPTON)
      target_include_directories(colvars PRIVATE ${LAMMPS_LIB_SOURCE_DIR}/colvars/lepton/include)
      target_include_directories(colvars PUBLIC ${LAMMPS_LIB_SOURCE_DIR}/colvars)
    else()
      target_include_directories(${PKG_LIB} PUBLIC ${LAMMPS_LIB_SOURCE_DIR}/${PKG_LIB})
    endif()
+28 −0
Original line number Diff line number Diff line
if(PKG_USER-COLVARS)

  set(COLVARS_SOURCE_DIR ${LAMMPS_LIB_SOURCE_DIR}/colvars)

  file(GLOB COLVARS_SOURCES ${COLVARS_SOURCE_DIR}/[^.]*.cpp)

  if(DEFINED CMAKE_CXX_STANDARD)
    # The condition below should match most modern C++ standards
    if((${CMAKE_CXX_STANDARD} GREATER 0) AND (${CMAKE_CXX_STANDARD} LESS 70))
      set(ENABLE_LEPTON ON)
      set(LEPTON_DIR ${LAMMPS_LIB_SOURCE_DIR}/colvars/lepton)
      file(GLOB LEPTON_SOURCES ${LEPTON_DIR}/src/[^.]*.cpp)
      add_library(lepton STATIC ${LEPTON_SOURCES})
      target_include_directories(lepton PRIVATE ${LEPTON_DIR}/include)
    endif()
  endif()

  add_library(colvars STATIC ${COLVARS_SOURCES})
  target_include_directories(colvars PUBLIC ${LAMMPS_LIB_SOURCE_DIR}/colvars)
  list(APPEND LAMMPS_LINK_LIBS colvars)

  if(ENABLE_LEPTON)
    list(APPEND LAMMPS_LINK_LIBS lepton)
    target_compile_options(colvars PRIVATE -DLEPTON)
    target_include_directories(colvars PUBLIC ${LEPTON_DIR}/include)
  endif()

endif()