@@ -2,6 +2,8 @@ IF(DEBUG_POOL)
22 SET (GIT_DEBUG_POOL 1)
33ENDIF ()
44
5+ SET (LIBGIT2_OBJECTS "" )
6+
57# This variable will contain the libraries we need to put into
68# libgit2.pc's Requires.private. That is, what we're linking to or
79# what someone who's statically linking us needs to link to.
@@ -181,7 +183,7 @@ ENDIF()
181183IF (WIN32 OR AMIGA OR CMAKE_SYSTEM_NAME MATCHES "(Solaris|SunOS)" )
182184 ADD_SUBDIRECTORY ("${CMAKE_SOURCE_DIR} /deps/regex" "${CMAKE_BINARY_DIR} /deps/regex" )
183185 LIST (APPEND LIBGIT2_INCLUDES "${CMAKE_SOURCE_DIR} /deps/regex" )
184- LIST (APPEND LIBGIT2_LIBS regex )
186+ LIST (APPEND LIBGIT2_OBJECTS $<TARGET_OBJECTS: regex > )
185187ENDIF ()
186188
187189# Optional external dependency: http-parser
@@ -194,7 +196,7 @@ ELSE()
194196 MESSAGE (STATUS "http-parser version 2 was not found or disabled; using bundled 3rd-party sources." )
195197 ADD_SUBDIRECTORY ("${CMAKE_SOURCE_DIR} /deps/http-parser" "${CMAKE_BINARY_DIR} /deps/http-parser" )
196198 LIST (APPEND LIBGIT2_INCLUDES "${CMAKE_SOURCE_DIR} /deps/http-parser" )
197- LIST (APPEND LIBGIT2_LIBS http-parser)
199+ LIST (APPEND LIBGIT2_OBJECTS "$<TARGET_OBJECTS: http-parser>" )
198200ENDIF ()
199201
200202# Optional external dependency: zlib
@@ -212,7 +214,7 @@ ELSE()
212214 MESSAGE (STATUS "zlib was not found; using bundled 3rd-party sources." )
213215 ADD_SUBDIRECTORY ("${CMAKE_SOURCE_DIR} /deps/zlib" "${CMAKE_BINARY_DIR} /deps/zlib" )
214216 LIST (APPEND LIBGIT2_INCLUDES "${CMAKE_SOURCE_DIR} /deps/zlib" )
215- LIST (APPEND LIBGIT2_LIBS zlib)
217+ LIST (APPEND LIBGIT2_OBJECTS $<TARGET_OBJECTS: zlib> )
216218ENDIF ()
217219
218220# Optional external dependency: libssh2
@@ -330,32 +332,28 @@ ENDIF()
330332
331333CONFIGURE_FILE (features.h.in git2/sys/features.h)
332334
333- SET (GIT2INTERNAL_OBJECTS ${SRC_H} ${SRC_GIT2} ${SRC_OS} ${SRC_SSH} ${SRC_SHA1} )
335+ SET (LIBGIT2_SOURCES ${SRC_H} ${SRC_GIT2} ${SRC_OS} ${SRC_SSH} ${SRC_SHA1} )
334336
335- IF (CMAKE_VERSION VERSION_GREATER 2.8.7)
336- ADD_LIBRARY (git2internal OBJECT ${GIT2INTERNAL_OBJECTS} )
337- IDE_SPLIT_SOURCES(git2internal)
338- SET (GIT2INTERNAL_OBJECTS $<TARGET_OBJECTS:git2internal>)
337+ ADD_LIBRARY (git2internal OBJECT ${LIBGIT2_SOURCES} )
338+ IDE_SPLIT_SOURCES(git2internal)
339+ LIST (APPEND LIBGIT2_OBJECTS $<TARGET_OBJECTS:git2internal>)
339340
340- IF (${CMAKE_VERSION} VERSION_LESS 2.8.12)
341- INCLUDE_DIRECTORIES (${LIBGIT2_INCLUDES} )
342- ELSE ()
343- TARGET_INCLUDE_DIRECTORIES (git2internal
344- PRIVATE ${LIBGIT2_INCLUDES}
345- PUBLIC ${CMAKE_SOURCE_DIR} /include )
346- ENDIF ()
347- ELSE ()
341+ IF (${CMAKE_VERSION} VERSION_LESS 2.8.12)
348342 INCLUDE_DIRECTORIES (${LIBGIT2_INCLUDES} )
343+ ELSE ()
344+ TARGET_INCLUDE_DIRECTORIES (git2internal
345+ PRIVATE ${LIBGIT2_INCLUDES}
346+ PUBLIC ${CMAKE_SOURCE_DIR} /include )
349347ENDIF ()
350348
351- SET (GIT2INTERNAL_OBJECTS ${GIT2INTERNAL_OBJECTS } PARENT_SCOPE)
349+ SET (LIBGIT2_OBJECTS ${LIBGIT2_OBJECTS } PARENT_SCOPE)
352350SET (LIBGIT2_INCLUDES ${LIBGIT2_INCLUDES} PARENT_SCOPE)
353351SET (LIBGIT2_LIBS ${LIBGIT2_LIBS} PARENT_SCOPE)
354352SET (LIBGIT2_LIBDIRS ${LIBGIT2_LIBDIRS} PARENT_SCOPE)
355353
356354# Compile and link libgit2
357355LINK_DIRECTORIES (${LIBGIT2_LIBDIRS} )
358- ADD_LIBRARY (git2 ${WIN_RC} ${GIT2INTERNAL_OBJECTS } )
356+ ADD_LIBRARY (git2 ${WIN_RC} ${LIBGIT2_OBJECTS } )
359357TARGET_LINK_LIBRARIES (git2 ${LIBGIT2_LIBS} )
360358
361359SET_TARGET_PROPERTIES (git2 PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR} )
0 commit comments