diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index 3ef3e8d7f48d31f1e0e02d748d4482801ef801e7..ec33f913e0feb0674f60aa1bc201c4222dadb482 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -1041,13 +1041,13 @@ if(BUILD_LIB) add_dependencies(lammps ${LAMMPS_DEPS}) endif() set_target_properties(lammps PROPERTIES OUTPUT_NAME lammps${LIB_SUFFIX}) - if(BUILD_SHARED_LIBS) - set_target_properties(lammps PROPERTIES SOVERSION ${SOVERSION}) - install(TARGETS lammps LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) - install(FILES ${LAMMPS_SOURCE_DIR}/library.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/lammps) - configure_file(pkgconfig/liblammps.pc.in ${CMAKE_CURRENT_BINARY_DIR}/liblammps${LIB_SUFFIX}.pc @ONLY) - install(FILES ${CMAKE_CURRENT_BINARY_DIR}/liblammps${LIB_SUFFIX}.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) - endif() + set_target_properties(lammps PROPERTIES SOVERSION ${SOVERSION}) + install(TARGETS lammps LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) + install(FILES ${LAMMPS_SOURCE_DIR}/library.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/lammps) + configure_file(pkgconfig/liblammps.pc.in ${CMAKE_CURRENT_BINARY_DIR}/liblammps${LIB_SUFFIX}.pc @ONLY) + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/liblammps${LIB_SUFFIX}.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) + configure_file(FindLAMMPS.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/FindLAMMPS${LIB_SUFFIX}.cmake @ONLY) + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/FindLAMMPS${LIB_SUFFIX}.cmake DESTINATION ${CMAKE_INSTALL_DATADIR}/cmake/Module) else() list(APPEND LMP_SOURCES ${LIB_SOURCES}) endif() diff --git a/cmake/FindLAMMPS.cmake.in b/cmake/FindLAMMPS.cmake.in new file mode 100644 index 0000000000000000000000000000000000000000..e8fac703af5c249e9d859b646c82a7dcaa5ebbde --- /dev/null +++ b/cmake/FindLAMMPS.cmake.in @@ -0,0 +1,47 @@ +# - Find liblammps +# Find the native liblammps headers and libraries. +# +# The following variables will set: +# LAMMPS_INCLUDE_DIRS - where to find lammps/library.h, etc. +# LAMMPS_LIBRARIES - List of libraries when using lammps. +# LAMMPS_VERSION - lammps library version +# LAMMPS_FOUND - True if liblammps found. +# +# In addition a LAMMPS::LAMMPS imported target is getting created. +# +# LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator +# http://lammps.sandia.gov, Sandia National Laboratories +# Steve Plimpton, sjplimp@sandia.gov +# +# Copyright (2003) Sandia Corporation. Under the terms of Contract +# DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains +# certain rights in this software. This software is distributed under +# the GNU General Public License. +# +# See the README file in the top-level LAMMPS directory. +# + +find_package(PkgConfig) + +pkg_check_modules(PC_LAMMPS liblammps@LIB_SUFFIX@) +find_path(LAMMPS_INCLUDE_DIR lammps/library.h HINTS ${PC_LAMMPS_INCLUDE_DIRS} @CMAKE_INSTALL_FULL_INCLUDEDIR@) + +# TODO figure out library version from header +set(LAMMPS_VERSION 20180822) + +find_library(LAMMPS_LIBRARY NAMES lammps@LIB_SUFFIX@ HINTS ${PC_LAMMPS_LIBRARY_DIRS} @CMAKE_INSTALL_FULL_LIBDIR@) + +set(LAMMPS_INCLUDE_DIRS "${LAMMPS_INCLUDE_DIR}") +set(LAMMPS_LIBRARIES "${LAMMPS_LIBRARY}") + +include(FindPackageHandleStandardArgs) +# handle the QUIETLY and REQUIRED arguments and set LAMMPS_FOUND to TRUE +# if all listed variables are TRUE +find_package_handle_standard_args(LAMMPS REQUIRED_VARS LAMMPS_LIBRARY LAMMPS_INCLUDE_DIR VERSION_VAR LAMMPS_VERSION) + +mark_as_advanced(LAMMPS_INCLUDE_DIR LAMMPS_LIBRARY) + +if(LAMMPS_FOUND AND NOT TARGET LAMMPS::LAMMPS) + add_library(LAMMPS::LAMMPS UNKNOWN IMPORTED) + set_target_properties(LAMMPS::LAMMPS PROPERTIES IMPORTED_LOCATION ${LAMMPS_LIBRARY} INTERFACE_INCLUDE_DIRECTORIES ${LAMMPS_INCLUDE_DIR}) +endif()