From f5bf86b32d668d9fcbe1e5e80089f620ddcfab9e Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 30 Jul 2019 16:27:00 -0400 Subject: [PATCH] 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 --- cmake/Modules/Packages/USER-PLUMED.cmake | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/cmake/Modules/Packages/USER-PLUMED.cmake b/cmake/Modules/Packages/USER-PLUMED.cmake index a9c5a59338..0b3d13cd70 100644 --- a/cmake/Modules/Packages/USER-PLUMED.cmake +++ b/cmake/Modules/Packages/USER-PLUMED.cmake @@ -1,15 +1,25 @@ if(PKG_USER-PLUMED) - find_package(GSL REQUIRED) - set(PLUMED_MODE "static" CACHE STRING "Linkage mode for Plumed2 library") + 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")