Unverified Commit f5bf86b3 authored by Axel Kohlmeyer's avatar Axel Kohlmeyer
Browse files

more improvements to CMake build for USER-PLUMED on MacOSX

default to shared linkage on MacOSX to avoid linker issues from
configure/cmake library detection differences

link/depend on GSL and LAPACK explicitly only for static linkage
parent d4503a05
Loading
Loading
Loading
Loading
+14 −4
Original line number Diff line number Diff line
if(PKG_USER-PLUMED)
  find_package(GSL REQUIRED)
  if(APPLE)
    set(PLUMED_MODE "shared" CACHE STRING "Linkage mode for Plumed2 library")
  else()
    set(PLUMED_MODE "static" CACHE STRING "Linkage mode for Plumed2 library")
  endif()
  set(PLUMED_MODE_VALUES static shared runtime)
  set_property(CACHE PLUMED_MODE PROPERTY STRINGS ${PLUMED_MODE_VALUES})
  validate_option(PLUMED_MODE PLUMED_MODE_VALUES)
  string(TOUPPER ${PLUMED_MODE} PLUMED_MODE)

  if((PLUMED_MODE STREQUAL "STATIC") AND NOT LAPACK_LIBRARIES)
  set(PLUMED_LINK_LIBS "")
  if(PLUMED_MODE STREQUAL "STATIC")
    find_package(LAPACK REQUIRED)
    find_package(BLAS REQUIRED)
    find_package(GSL REQUIRED)
    list(APPEND LAPACK_LIBRARIES ${BLAS_LIBRARIES})
    list(APPEND PLUMED_LINK_LIBS ${LAPACK_LIBRARIES} ${GSL_LIBRARIES})
    find_package(ZLIB QUIET)
    if(ZLIB_FOUND)
      list(APPEND PLUMED_LINK_LIBS ${ZLIB_LIBRARIES})
    endif()
  endif()

  find_package(PkgConfig QUIET)
@@ -59,7 +69,7 @@ if(PKG_USER-PLUMED)
    list(APPEND LAMMPS_DEPS plumed_build)
    if(PLUMED_MODE STREQUAL "STATIC")
      add_definitions(-D__PLUMED_WRAPPER_CXX=1)
      list(APPEND LAMMPS_LINK_LIBS ${PLUMED_INSTALL_DIR}/lib/libplumed.a ${GSL_LIBRARIES} ${LAPACK_LIBRARIES} ${CMAKE_DL_LIBS})
      list(APPEND LAMMPS_LINK_LIBS ${PLUMED_INSTALL_DIR}/lib/libplumed.a ${PLUMED_LINK_LIBS} ${CMAKE_DL_LIBS})
    elseif(PLUMED_MODE STREQUAL "SHARED")
      list(APPEND LAMMPS_LINK_LIBS ${PLUMED_INSTALL_DIR}/lib/libplumed${CMAKE_SHARED_LIBRARY_SUFFIX} ${PLUMED_INSTALL_DIR}/lib/libplumedKernel${CMAKE_SHARED_LIBRARY_SUFFIX} ${CMAKE_DL_LIBS})
    elseif(PLUMED_MODE STREQUAL "RUNTIME")