From c5861307f6f3d16570eea928d62a658608b0eaa3 Mon Sep 17 00:00:00 2001 From: Christoph Junghans <junghans@lanl.gov> Date: Wed, 29 Aug 2018 10:58:09 -0600 Subject: [PATCH] cmake: add FindLAMMPS.cmake.in --- cmake/CMakeLists.txt | 14 ++++++------ cmake/FindLAMMPS.cmake.in | 47 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 54 insertions(+), 7 deletions(-) create mode 100644 cmake/FindLAMMPS.cmake.in diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index 3ef3e8d7f4..ec33f913e0 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 0000000000..e8fac703af --- /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() -- GitLab