Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
62 changes: 60 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -172,6 +172,8 @@ target_include_directories(cint
PUBLIC
$<BUILD_INTERFACE:${PROJECT_BINARY_DIR}/include>
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
INTERFACE
$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>
PRIVATE
${PROJECT_BINARY_DIR}/src
${PROJECT_SOURCE_DIR}/src
Expand All @@ -187,11 +189,67 @@ if(QUADMATH_FOUND)
endif()
target_link_libraries(cint "-lm")

# for consistency between FetchContent / add_subdirectory
# and find_package, so one can always link to cint::cint.
add_library(cint::cint ALIAS cint)


install(TARGETS cint COMPONENT "lib")
# install headers
install(FILES ${CintHeaders} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} COMPONENT "dev")

# install the library and associate the installed targets
# with export set "cint-targets"
install(TARGETS cint
EXPORT cint-targets
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
)

# generate cintTargets.cmake and prepend the namespace "cint::"
# to exported targets.
export(EXPORT cint-targets
FILE ${CMAKE_CURRENT_BINARY_DIR}/cintTargets.cmake
NAMESPACE cint::
)

# install cintTargets.cmake and associate this file with
# the export set "cint-targets"
install(EXPORT cint-targets
FILE cintTargets.cmake
NAMESPACE cint::
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/cint
)

include(CMakePackageConfigHelpers)

# configure cintConfig.cmake
configure_package_config_file(${PROJECT_SOURCE_DIR}/cmake/cintConfig.cmake.in
${CMAKE_CURRENT_BINARY_DIR}/cintConfig.cmake
INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/cint)

# generate cintConfigVersion.cmake
write_basic_package_version_file(
"${CMAKE_CURRENT_BINARY_DIR}/cintConfigVersion.cmake"
VERSION ${cint_VERSION}
COMPATIBILITY SameMajorVersion
)

# and install both of these two files...
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/cintConfig.cmake"
"${CMAKE_CURRENT_BINARY_DIR}/cintConfigVersion.cmake"
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/cint
)

# configure the pkg-config file...
configure_file(${PROJECT_SOURCE_DIR}/cmake/cint.pc.in
${CMAKE_CURRENT_BINARY_DIR}/cint.pc @ONLY)

# and install it.
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/cint.pc"
DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig
)


if(ENABLE_EXAMPLE)
enable_language(Fortran)
Expand Down
11 changes: 11 additions & 0 deletions cmake/cint.pc.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
prefix=@CMAKE_INSTALL_PREFIX@
exec_prefix=${prefix}
includedir=${prefix}/include
libdir=${exec_prefix}/lib

Name: libcint
Description: Open source library for analytical Gaussian integrals.
Requires:
Version: @cint_VERSION@
Libs: -L${libdir} -lcint
Cflags: -I${includedir}
7 changes: 7 additions & 0 deletions cmake/cintConfig.cmake.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
@PACKAGE_INIT@

check_required_components("@PROJECT_NAME@")

include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake")

include(CMakeFindDependencyMacro)