8000 Add cmake package targets · libgit2/libgit2@dfc4d4b · GitHub
[go: up one dir, main page]

Skip to content

Commit dfc4d4b

Browse files
committed
Add cmake package targets
1 parent 585210a commit dfc4d4b

File tree

4 files changed

+30
-1
lines changed

4 files changed

+30
-1
lines changed

src/CMakeLists.txt

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -198,6 +198,30 @@ add_feature_info(iconv GIT_USE_ICONV "iconv encoding conversion support")
198198
# Include child projects
199199
#
200200

201+
set(LIBGIT2_GENERATED_DIR "${CMAKE_CURRENT_BINARY_DIR}/generated")
202+
set(LIBGIT2_VERSION_CONFIG "${LIBGIT2_GENERATED_DIR}/${PROJECT_NAME}ConfigVersion.cmake")
203+
set(LIBGIT2_PROJECT_CONFIG "${LIBGIT2_GENERATED_DIR}/${PROJECT_NAME}Config.cmake")
204+
set(LIBGIT2_TARGETS_EXPORT_NAME "${PROJECT_NAME}Targets")
205+
set(LIBGIT2_CONFIG_INSTALL_DIR "lib/cmake/${PROJECT_NAME}")
206+
set(LIBGIT2_NAMESPACE "${PROJECT_NAME}::")
207+
set(LIBGIT2_VERSION ${PROJECT_VERSION})
208+
209+
include(CMakePackageConfigHelpers)
210+
write_basic_package_version_file(
211+
"${LIBGIT2_VERSION_CONFIG}" VERSION ${LIBGIT2_VERSION} COMPATIBILITY SameMajorVersion
212+
)
213+
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/cmake_utils/config.cmake.in" "${LIBGIT2_PROJECT_CONFIG}" @ONLY)
214+
215+
# Install cmake config files
216+
install(
217+
FILES "${LIBGIT2_PROJECT_CONFIG}" "${LIBGIT2_VERSION_CONFIG}"
218+
DESTINATION "${LIBGIT2_CONFIG_INSTALL_DIR}")
219+
220+
install(
221+
EXPORT "${LIBGIT2_TARGETS_EXPORT_NAME}"
222+
NAMESPACE "${LIBGIT2_NAMESPACE}"
223+
DESTINATION "${LIBGIT2_CONFIG_INSTALL_DIR}")
224+
201225
add_subdirectory(libgit2)
202226
add_subdirectory(util)
203227

src/cli/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,4 +54,4 @@ if(MSVC_IDE)
5454
set_source_files_properties(win32/precompiled.c COMPILE_FLAGS "/Ycprecompiled.h")
5555
endif()
5656

57-
install(TARGETS git2_cli RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
57+
install(TARGETS git2_cli EXPORT ${LIBGIT2_TARGETS_EXPORT_NAME} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})

src/cmake_utils/config.cmake.in

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
include(CMakeFindDependencyMacro)
2+
3+
include("${CMAKE_CURRENT_LIST_DIR}/@LIBGIT2_TARGETS_EXPORT_NAME@.cmake")

src/libgit2/CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ set(LIBGIT2_SYSTEM_LIBS ${LIBGIT2_SYSTEM_LIBS} PARENT_SCOPE)
5959
add_library(libgit2package ${SRC_RC} ${LIBGIT2_OBJECTS})
6060
target_link_libraries(libgit2package ${LIBGIT2_SYSTEM_LIBS})
6161
target_include_directories(libgit2package SYSTEM PRIVATE ${LIBGIT2_INCLUDES})
62+
target_include_directories(libgit2package INTERFACE $<INSTALL_INTERFACE:./include/git2>)
6263

6364
set_target_properties(libgit2package PROPERTIES C_STANDARD 90)
6465
set_target_properties(libgit2package PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR})
@@ -105,6 +106,7 @@ FILE(WRITE "${PROJECT_BINARY_DIR}/include/${LIBGIT2_FILENAME}.h" ${LIBGIT2_INCLU
105106
# Install
106107

107108
install(TARGETS libgit2package
109+
EXPORT ${LIBGIT2_TARGETS_EXPORT_NAME}
108110
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
109111
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
110112
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})

0 commit comments

Comments
 (0)
0