mirror of
https://github.com/libgit2/libgit2.git
synced 2026-06-22 06:26:26 +00:00
Fixing experimental headers install
This commit is contained in:
@@ -41,7 +41,12 @@ ide_split_sources(libgit2)
|
||||
list(APPEND LIBGIT2_OBJECTS $<TARGET_OBJECTS:util> $<TARGET_OBJECTS:libgit2> ${LIBGIT2_DEPENDENCY_OBJECTS})
|
||||
list(APPEND LIBGIT2_INCLUDES ${LIBGIT2_DEPENDENCY_INCLUDES})
|
||||
|
||||
target_include_directories(libgit2 PRIVATE ${LIBGIT2_INCLUDES} ${LIBGIT2_DEPENDENCY_INCLUDES} PUBLIC ${PROJECT_SOURCE_DIR}/include)
|
||||
# Build should look at headers in source tree but installed target should point to the possibly mutated
|
||||
# includes which will be generated
|
||||
target_include_directories(libgit2 PRIVATE ${LIBGIT2_INCLUDES} ${LIBGIT2_DEPENDENCY_INCLUDES}
|
||||
PUBLIC
|
||||
$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>
|
||||
$<INSTALL_INTERFACE:include>)
|
||||
target_include_directories(libgit2 SYSTEM PRIVATE ${LIBGIT2_SYSTEM_INCLUDES})
|
||||
|
||||
set(LIBGIT2_INCLUDES ${LIBGIT2_INCLUDES} PARENT_SCOPE)
|
||||
@@ -96,12 +101,22 @@ endif()
|
||||
|
||||
configure_file(experimental.h.in "${PROJECT_BINARY_DIR}/include/git2/experimental.h")
|
||||
|
||||
# translate filenames in the git2.h so that they match the install directory
|
||||
# translate filenames in the headers so that they match the install directory
|
||||
# (allows for side-by-side installs of libgit2 and libgit2-experimental.)
|
||||
|
||||
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})
|
||||
foreach(HEADER_SOURCE ${SRC_H})
|
||||
# Compute desired path in the binary dir
|
||||
FILE(RELATIVE_PATH HEADER_RELATIVE ${PROJECT_SOURCE_DIR} ${HEADER_SOURCE})
|
||||
STRING(REPLACE "git2/" "git2-experimental/" HEADER_RELATIVE ${HEADER_RELATIVE})
|
||||
SET(HEADER_OUT ${PROJECT_BINARY_DIR}/${HEADER_RELATIVE})
|
||||
|
||||
FILE(READ "${HEADER_SOURCE}" HEADER_CONTENTS)
|
||||
STRING(REGEX REPLACE "#include \"git2\/" "#include \"${LIBGIT2_FILENAME}/" HEADER_CONTENTS "${HEADER_CONTENTS}")
|
||||
FILE(WRITE "${HEADER_OUT}" "${HEADER_CONTENTS}")
|
||||
endforeach()
|
||||
|
||||
# Rename git2.h after the regex & move
|
||||
FILE(RENAME "${PROJECT_BINARY_DIR}/include/git2.h" "${PROJECT_BINARY_DIR}/include/${LIBGIT2_FILENAME}.h")
|
||||
|
||||
# cmake package targets
|
||||
|
||||
@@ -132,9 +147,7 @@ install(TARGETS libgit2package
|
||||
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||
install(DIRECTORY ${PROJECT_SOURCE_DIR}/include/git2/
|
||||
DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/${LIBGIT2_FILENAME}")
|
||||
install(FILES ${PROJECT_BINARY_DIR}/include/git2/experimental.h
|
||||
install(DIRECTORY ${PROJECT_BINARY_DIR}/include/${LIBGIT2_FILENAME}/
|
||||
DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/${LIBGIT2_FILENAME}")
|
||||
install(FILES "${PROJECT_BINARY_DIR}/include/${LIBGIT2_FILENAME}.h"
|
||||
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
|
||||
|
||||
Reference in New Issue
Block a user