cmake: only add package target for libgit2 itself

This commit is contained in:
Edward Thomson
2024-12-23 16:15:43 +00:00
parent 5d6e679e21
commit ded9494954
3 changed files with 24 additions and 25 deletions

View File

@@ -199,30 +199,6 @@ add_feature_info(iconv GIT_USE_ICONV "iconv encoding conversion support")
# Include child projects
#
set(LIBGIT2_GENERATED_DIR "${CMAKE_CURRENT_BINARY_DIR}/generated")
set(LIBGIT2_VERSION_CONFIG "${LIBGIT2_GENERATED_DIR}/${PROJECT_NAME}ConfigVersion.cmake")
set(LIBGIT2_PROJECT_CONFIG "${LIBGIT2_GENERATED_DIR}/${PROJECT_NAME}Config.cmake")
set(LIBGIT2_TARGETS_EXPORT_NAME "${PROJECT_NAME}Targets")
set(LIBGIT2_CONFIG_INSTALL_DIR "lib/cmake/${PROJECT_NAME}")
set(LIBGIT2_NAMESPACE "${PROJECT_NAME}::")
set(LIBGIT2_VERSION ${PROJECT_VERSION})
include(CMakePackageConfigHelpers)
write_basic_package_version_file(
"${LIBGIT2_VERSION_CONFIG}" VERSION ${LIBGIT2_VERSION} COMPATIBILITY SameMajorVersion
)
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/cmake_utils/config.cmake.in" "${LIBGIT2_PROJECT_CONFIG}" @ONLY)
# Install cmake config files
install(
FILES "${LIBGIT2_PROJECT_CONFIG}" "${LIBGIT2_VERSION_CONFIG}"
DESTINATION "${LIBGIT2_CONFIG_INSTALL_DIR}")
install(
EXPORT "${LIBGIT2_TARGETS_EXPORT_NAME}"
NAMESPACE "${LIBGIT2_NAMESPACE}"
DESTINATION "${LIBGIT2_CONFIG_INSTALL_DIR}")
add_subdirectory(libgit2)
add_subdirectory(util)

View File

@@ -4,6 +4,7 @@
add_library(libgit2 OBJECT)
include(PkgBuildConfig)
include(CMakePackageConfigHelpers)
set(LIBGIT2_INCLUDES
"${PROJECT_BINARY_DIR}/src/util"
@@ -102,10 +103,32 @@ FILE(READ "${PROJECT_SOURCE_DIR}/include/git2.h" LIBGIT2_INCLUDE)
STRING(REGEX REPLACE "#include \"git2\/" "#include \"${LIBGIT2_FILENAME}/" LIBGIT2_INCLUDE "${LIBGIT2_INCLUDE}")
FILE(WRITE "${PROJECT_BINARY_DIR}/include/${LIBGIT2_FILENAME}.h" ${LIBGIT2_INCLUDE})
# cmake package targets
set(LIBGIT2_TARGETS_EXPORT_NAME "${PROJECT_NAME}Targets")
write_basic_package_version_file(
"${PROJECT_BINARY_DIR}/cmake/${PROJECT_NAME}ConfigVersion.cmake"
VERSION ${PROJECT_VERSION}
COMPATIBILITY SameMajorVersion)
configure_file(config.cmake.in
"${PROJECT_BINARY_DIR}/cmake/${PROJECT_NAME}Config.cmake"
@ONLY)
install(FILES
"${PROJECT_BINARY_DIR}/cmake/${PROJECT_NAME}Config.cmake"
"${PROJECT_BINARY_DIR}/cmake/${PROJECT_NAME}ConfigVersion.cmake"
DESTINATION "lib/cmake/${PROJECT_NAME}")
install(
EXPORT ${LIBGIT2_TARGETS_EXPORT_NAME}
NAMESPACE "${PROJECT_NAME}::"
DESTINATION "lib/cmake/${PROJECT_NAME}")
# Install
install(TARGETS libgit2package
EXPORT ${LIBGIT2_TARGETS_EXPORT_NAME}
EXPORT ${LIBGIT2_TARGETS_EXPORT_NAME}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})