diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index e28bab6385..5c695d4002 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -541,6 +541,8 @@ endforeach() configure_file(pkgconfig/liblammps.pc.in ${CMAKE_CURRENT_BINARY_DIR}/liblammps${LAMMPS_MACHINE}.pc @ONLY) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/liblammps${LAMMPS_MACHINE}.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) install(EXPORT LAMMPS_Targets FILE LAMMPS_Targets.cmake NAMESPACE LAMMPS:: DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/LAMMPS) +file(GLOB MODULE_FILES ${CMAKE_CURRENT_SOURCE_DIR}/Modules/Find*.cmake) +install(FILES ${MODULE_FILES} DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/LAMMPS) include(CMakePackageConfigHelpers) configure_file(LAMMPSConfig.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/LAMMPSConfig.cmake @ONLY) write_basic_package_version_file("LAMMPSConfigVersion.cmake" VERSION ${PROJECT_VERSION} COMPATIBILITY ExactVersion) diff --git a/cmake/LAMMPSConfig.cmake.in b/cmake/LAMMPSConfig.cmake.in index fac56efba2..6abeb202f7 100644 --- a/cmake/LAMMPSConfig.cmake.in +++ b/cmake/LAMMPSConfig.cmake.in @@ -1,23 +1,14 @@ +set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}) include(CMakeFindDependencyMacro) if(@BUILD_MPI@) find_dependency(MPI REQUIRED CXX) endif() +if(@BUILD_OMP@) + find_dependency(OpenMP REQUIRED) +endif() if(@PKG_KSPACE@) if(@FFT@ STREQUAL "FFTW3") - if(@FFTW@ STREQUAL "FFTW3" AND NOT TARGET FFTW3::FFTW3) - add_library(FFTW3::FFTW3 UNKNOWN IMPORTED) - set_target_properties(FFTW3::FFTW3 PROPERTIES - IMPORTED_LINK_INTERFACE_LANGUAGES "C" - IMPORTED_LOCATION "@FFTW3_LIBRARY@" - INTERFACE_INCLUDE_DIRECTORIES "@FFTW3_INCLUDE_DIRS@") - endif() - if(@FFTW@ STREQUAL "FFTW3F" AND NOT TARGET FFTW3F::FFTW3F) - add_library(FFTW3F::FFTW3F UNKNOWN IMPORTED) - set_target_properties(FFTW3F::FFTW3F PROPERTIES - IMPORTED_LINK_INTERFACE_LANGUAGES "C" - IMPORTED_LOCATION "@FFTW3F_LIBRARY@" - INTERFACE_INCLUDE_DIRECTORIES "@FFTW3F_INCLUDE_DIRS@") - endif() + find_dependency(@FFTW@ REQUIRED MODULE) endif() endif() if(NOT @BUILD_SHARED_LIBS@) @@ -28,36 +19,20 @@ if(NOT @BUILD_SHARED_LIBS@) find_dependency(PNG REQUIRED) find_dependency(ZLIB REQUIRED) endif() - if(@PKG_KIM@ AND NOT @DOWNLOAD_KIM@) + if(@PKG_KIM@) find_dependency(PkgConfig REQUIRED) pkg_check_modules(KIM-API REQUIRED IMPORTED_TARGET libkim-api>=@KIM-API_MIN_VERSION@) if(@CURL_FOUND@) find_dependency(CURL REQUIRED) endif() endif() - if(@PKG_USER-SMD@ AND NOT @DOWNLOAD_EIGEN3@) + if(@PKG_USER-SMD@) find_dependency(Eigen3 NO_MODULE REQUIRED) endif() - if(@PKG_KSPACE@) - if(@FFT@ STREQUAL "FFTW3" AND @FFT_FFTW_THREADS@) - if(@FFTW@ STREQUAL "FFTW3" AND NOT TARGET FFTW3::FFTW3_OMP) - add_library(FFTW3::FFTW3_OMP UNKNOWN IMPORTED) - set_target_properties(FFTW3::FFTW3_OMP PROPERTIES - IMPORTED_LINK_INTERFACE_LANGUAGES "C" - IMPORTED_LOCATION "@FFTW3_OMP_LIBRARY@" - INTERFACE_INCLUDE_DIRECTORIES "@FFTW3_OMP_INCLUDE_DIRS@") - endif() - if(@FFTW@ STREQUAL "FFTW3F" AND NOT TARGET FFTW3F::FFTW3F_OMP) - add_library(FFTW3F::FFTW3F_OMP UNKNOWN IMPORTED) - set_target_properties(FFTW3F::FFTW3F_OMP PROPERTIES - IMPORTED_LINK_INTERFACE_LANGUAGES "C" - IMPORTED_LOCATION "@FFTW3F_OMP_LIBRARY@" - INTERFACE_INCLUDE_DIRECTORIES "@FFTW3F_OMP_INCLUDE_DIRS@") - endif() - endif() - endif() - if(@PKG_USER-SCAFACOS@ AND NOT @DOWNLOAD_SCAFACOS@) + if(@PKG_USER-SCAFACOS@) find_dependency(PkgConfig REQUIRED) + find_ependency(GSL REQUIRED) + find_dependency(MPI REQUIRED C Fortran) pkg_check_modules(SCAFACOS REQUIRED IMPORTED_TARGET scafacos) endif() if(@PKG_PYTHON@ AND NOT CMAKE_VERSION VERSION_LESS 3.12) @@ -71,26 +46,42 @@ if(NOT @BUILD_SHARED_LIBS@) find_dependency(Kokkos 3 REQUIRED) endif() endif() - if(@PKG_VORONOI@ AND NOT @DOWNLOAD_VORO@) - if(NOT TARGET VORO::VORO) - add_library(VORO::VORO UNKNOWN IMPORTED) - set_target_properties(VORO::VORO PROPERTIES - IMPORTED_LOCATION "@VORO_LIBRARY@" - INTERFACE_INCLUDE_DIRECTORIES "@VORO_INCLUDE_DIR@") - endif() + if(@PKG_VORONOI@) + find_dependency(VORO REQUIRED) endif() if(@PKG_USER-INTEL@) if(@INTEL_LRT_MODE@ STREQUAL "THREADS") find_dependency(Threads REQUIRED) endif() if(@TBB_MALLOC_FOUND@) - if(NOT TARGET TBB::TBB_MALLOC) - add_library(TBB::TBB_MALLOC UNKNOWN IMPORTED) - set_target_properties(TBB::TBB_MALLOC PROPERTIES - IMPORTED_LOCATION "@TBB_MALLOC_LIBRARY@" - INTERFACE_INCLUDE_DIRECTORIES "@TBB_MALLOC_INCLUDE_DIR@") - endif() + find_ependency(TBB_MALLOC REQUIRED) endif() endif() + if(@PKG_USER-ADIOS@) + find_ependency(ADIOS2 REQUIRED) + endif() + if(@PKG_LATTE@) + find_ependency(LATTE REQUIRED) + endif() + if(@PKG_MESSAGE@) + if(@MESSAGE_ZMQ@) + find_ependency(ZMQ REQUIRED) + endif() + endif() + if(@PKG_MSCG@) + find_ependency(GSL REQUIRED) + find_ependency(MSCG REQUIRED) + endif() + if(@USER-NETCDF@) + if(@NETCDF_FOUND@) + find_ependency(NetCDF REQUIRED) + endif() + if(@PNETCDF_FOUND@) + find_ependency(PNetCDF REQUIRED) + endif() + endif() + if(@PKG_QUIP@) + find_ependency(QUIP REQUIRED) + endif() endif() include("${CMAKE_CURRENT_LIST_DIR}/LAMMPS_Targets.cmake")