Merge branch 'cmake_target'

This commit is contained in:
Edward Thomson
2024-12-28 00:30:28 +00:00
2 changed files with 28 additions and 0 deletions

View File

@@ -4,6 +4,7 @@
add_library(libgit2 OBJECT)
include(PkgBuildConfig)
include(CMakePackageConfigHelpers)
set(LIBGIT2_INCLUDES
"${PROJECT_BINARY_DIR}/src/util"
@@ -57,6 +58,7 @@ set(LIBGIT2_SYSTEM_LIBS ${LIBGIT2_SYSTEM_LIBS} PARENT_SCOPE)
add_library(libgit2package ${SRC_RC} ${LIBGIT2_OBJECTS})
target_link_libraries(libgit2package ${LIBGIT2_SYSTEM_LIBS})
target_include_directories(libgit2package SYSTEM PRIVATE ${LIBGIT2_INCLUDES})
target_include_directories(libgit2package INTERFACE $<INSTALL_INTERFACE:./include/git2>)
set_target_properties(libgit2package PROPERTIES C_STANDARD 90)
set_target_properties(libgit2package PROPERTIES C_EXTENSIONS OFF)
@@ -101,9 +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}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})

View File

@@ -0,0 +1,3 @@
include(CMakeFindDependencyMacro)
include("${CMAKE_CURRENT_LIST_DIR}/@LIBGIT2_TARGETS_EXPORT_NAME@.cmake")