diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index d35c851c1..73c46e210 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -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) diff --git a/src/libgit2/CMakeLists.txt b/src/libgit2/CMakeLists.txt index be3ee8cd2..a7d3c7ca4 100644 --- a/src/libgit2/CMakeLists.txt +++ b/src/libgit2/CMakeLists.txt @@ -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}) diff --git a/src/cmake_utils/config.cmake.in b/src/libgit2/config.cmake.in similarity index 100% rename from src/cmake_utils/config.cmake.in rename to src/libgit2/config.cmake.in