@@ -128,6 +128,10 @@ SET(LIBGIT2_PC_REQUIRES "")
128128# pc file.
129129SET (LIBGIT2_PC_LIBS "" )
130130
131+ SET (LIBGIT2_INCLUDES "" )
132+ SET (LIBGIT2_LIBS "" )
133+ SET (LIBGIT2_LIBDIRS "" )
134+
131135# Installation paths
132136#
133137SET (BIN_INSTALL_DIR bin CACHE PATH "Where to install binaries to." )
@@ -218,24 +222,24 @@ IF (SECURITY_FOUND)
218222 IF (HAVE_NEWER_SECURITY)
219223 MESSAGE ("-- Found Security ${SECURITY_DIRS} " )
220224 LIST (APPEND LIBGIT2_PC_LIBS "-framework Security" )
225+ LIST (APPEND LIBGIT2_LIBS ${SECURITY_DIRS} )
221226 ELSE ()
222227 MESSAGE ("-- Security framework is too old, falling back to OpenSSL" )
223228 SET (SECURITY_FOUND "NO" )
224- SET (SECURITY_DIRS "" )
225- SET (SECURITY_DIR "" )
226229 SET (USE_OPENSSL "ON" )
227230 ENDIF ()
228231ENDIF ()
229232
230233IF (COREFOUNDATION_FOUND)
231234 MESSAGE ("-- Found CoreFoundation ${COREFOUNDATION_DIRS} " )
232235 LIST (APPEND LIBGIT2_PC_LIBS "-framework CoreFoundation" )
236+ LIST (APPEND LIBGIT2_LIBS ${COREFOUNDATION_DIRS} )
233237ENDIF ()
234238
235239
236240IF (WIN32 AND EMBED_SSH_PATH)
237241 FILE (GLOB SRC_SSH "${EMBED_SSH_PATH} /src/*.c" )
238- INCLUDE_DIRECTORIES ( "${EMBED_SSH_PATH} /include" )
242+ LIST ( APPEND LIBGIT2_INCLUDES "${EMBED_SSH_PATH} /include" )
239243 FILE (WRITE "${EMBED_SSH_PATH} /src/libssh2_config.h" "#define HAVE_WINCNG\n #define LIBSSH2_WINCNG\n #include \" ../win32/libssh2_config.h\" " )
240244 SET (GIT_SSH 1)
241245ENDIF ()
@@ -273,11 +277,11 @@ IF (WIN32 AND WINHTTP)
273277 PROPERTIES OBJECT_DEPENDS ${LIBWINHTTP_PATH} /libwinhttp.a
274278 )
275279
276- INCLUDE_DIRECTORIES ( "${CMAKE_SOURCE_DIR} /deps/winhttp" )
277- LINK_DIRECTORIES ( ${LIBWINHTTP_PATH} )
280+ LIST ( APPEND LIBGIT2_INCLUDES "${CMAKE_SOURCE_DIR} /deps/winhttp" )
281+ LIST ( APPEND LIBGIT2_LIBDIRS ${LIBWINHTTP_PATH} )
278282 ENDIF ()
279283
280- LINK_LIBRARIES ( winhttp rpcrt4 crypt32 ole32)
284+ LIST ( APPEND LIBGIT2_LIBS " winhttp" " rpcrt4" " crypt32" " ole32" )
281285 LIST (APPEND LIBGIT2_PC_LIBS "-lwinhttp" "-lrpcrt4" "-lcrypt32" "-lole32" )
282286ELSE ()
283287 IF (CURL)
@@ -290,9 +294,9 @@ ELSE ()
290294
291295 IF (CURL_FOUND)
292296 SET (GIT_CURL 1)
293- INCLUDE_DIRECTORIES ( ${CURL_INCLUDE_DIRS} )
294- LINK_DIRECTORIES ( ${CURL_LIBRARY_DIRS} )
295- LINK_LIBRARIES ( ${CURL_LIBRARIES} )
297+ LIST ( APPEND LIBGIT2_INCLUDES ${CURL_INCLUDE_DIRS} )
298+ LIST ( APPEND LIBGIT2_LIBDIRS ${CURL_LIBRARY_DIRS} )
299+ LIST ( APPEND LIBGIT2_LIBS ${CURL_LIBRARIES} )
296300 LIST (APPEND LIBGIT2_PC_LIBS ${CURL_LDFLAGS} )
297301 ENDIF ()
298302ENDIF ()
@@ -327,35 +331,36 @@ ENDIF()
327331
328332# Include POSIX regex when it is required
329333IF (WIN32 OR AMIGA OR CMAKE_SYSTEM_NAME MATCHES "(Solaris|SunOS)" )
330- INCLUDE_DIRECTORIES ( "${CMAKE_SOURCE_DIR} /deps/regex" )
334+ LIST ( APPEND LBIGIT2_INCLUDES "${CMAKE_SOURCE_DIR} /deps/regex" )
331335 SET (SRC_REGEX "${CMAKE_SOURCE_DIR} /deps/regex/regex.c" )
332336ENDIF ()
333337
334338# Optional external dependency: http-parser
335339FIND_PACKAGE (HTTP_Parser)
336340IF (USE_EXT_HTTP_PARSER AND HTTP_PARSER_FOUND AND HTTP_PARSER_VERSION_MAJOR EQUAL 2)
337- INCLUDE_DIRECTORIES ( ${HTTP_PARSER_INCLUDE_DIRS} )
338- LINK_LIBRARIES ( ${HTTP_PARSER_LIBRARIES} )
341+ LIST ( APPEND LIBGIT2_INCLUDES ${HTTP_PARSER_INCLUDE_DIRS} )
342+ LIST ( APPEND LIBGIT2_LIBS ${HTTP_PARSER_LIBRARIES} )
339343 LIST (APPEND LIBGIT2_PC_LIBS "-lhttp_parser" )
340344ELSE ()
341345 MESSAGE (STATUS "http-parser version 2 was not found or disabled; using bundled 3rd-party sources." )
342- INCLUDE_DIRECTORIES ( "${CMAKE_SOURCE_DIR} /deps/http-parser" )
346+ LIST ( APPEND LIBGIT2_INCLUDES "${CMAKE_SOURCE_DIR} /deps/http-parser" )
343347 FILE (GLOB SRC_HTTP "${CMAKE_SOURCE_DIR} /deps/http-parser/*.c" "${CMAKE_SOURCE_DIR} /deps/http-parser/*.h" )
344348ENDIF ()
345349
346350# Optional external dependency: zlib
347351FIND_PACKAGE (ZLIB)
348352IF (ZLIB_FOUND)
349- INCLUDE_DIRECTORIES ( ${ZLIB_INCLUDE_DIRS} )
350- LINK_LIBRARIES ( ${ZLIB_LIBRARIES} )
353+ LIST ( APPEND LIBGIT2_INCLUDES ${ZLIB_INCLUDE_DIRS} )
354+ LIST ( APPEND LIBGIT2_LIBS ${ZLIB_LIBRARIES} )
351355 IF (APPLE OR CMAKE_SYSTEM_NAME MATCHES "FreeBSD" )
356+ LIST (APPEND LIBGIT2_LIBS "z" )
352357 LIST (APPEND LIBGIT2_PC_LIBS "-lz" )
353358 ELSE ()
354359 SET (LIBGIT2_PC_REQUIRES "${LIBGIT2_PC_REQUIRES} zlib" )
355360 ENDIF ()
356361ELSE ()
357362 MESSAGE (STATUS "zlib was not found; using bundled 3rd-party sources." )
358- INCLUDE_DIRECTORIES ( "${CMAKE_SOURCE_DIR} /deps/zlib" )
363+ LIST ( APPEND LIBGIT2_INCLUDES "${CMAKE_SOURCE_DIR} /deps/zlib" )
359364 ADD_DEFINITIONS (-DNO_VIZ -DSTDC -DNO_GZIP)
360365 FILE (GLOB SRC_ZLIB "${CMAKE_SOURCE_DIR} /deps/zlib/*.c" "${CMAKE_SOURCE_DIR} /deps/zlib/*.h" )
361366ENDIF ()
@@ -366,11 +371,11 @@ IF (USE_SSH)
366371ENDIF ()
367372IF (LIBSSH2_FOUND)
368373 SET (GIT_SSH 1)
369- INCLUDE_DIRECTORIES (${LIBSSH2_INCLUDE_DIRS} )
370- LINK_DIRECTORIES (${LIBSSH2_LIBRARY_DIRS} )
374+ LIST (APPEND LIBGIT2_INCLUDES ${LIBSSH2_INCLUDE_DIRS} )
375+ LIST (APPEND LIBGIT2_LIBS ${LIBSSH2_LIBRARIES} )
376+ LIST (APPEND LIBGIT2_LIBDIRS ${LIBSSH2_LIBRARY_DIRS} )
371377 LIST (APPEND LIBGIT2_PC_LIBS ${LIBSSH2_LDFLAGS} )
372378 #SET(LIBGIT2_PC_LIBS "${LIBGIT2_PC_LIBS} ${LIBSSH2_LDFLAGS}")
373- SET (SSH_LIBRARIES ${LIBSSH2_LIBRARIES} )
374379
375380 CHECK_LIBRARY_EXISTS("${LIBSSH2_LIBRARIES} " libssh2_userauth_publickey_frommemory "${LIBSSH2_LIBRARY_DIRS} " HAVE_LIBSSH2_MEMORY_CREDENTIALS)
376381 IF (HAVE_LIBSSH2_MEMORY_CREDENTIALS)
@@ -386,6 +391,7 @@ IF (USE_GSSAPI)
386391ENDIF ()
387392IF (GSSAPI_FOUND)
388393 SET (GIT_GSSAPI 1)
394+ LIST (APPEND LIBGIT2_LIBS ${GSSAPI_LIBRARIES} )
389395ENDIF ()
390396
391397# Optional external dependency: iconv
@@ -394,7 +400,8 @@ IF (USE_ICONV)
394400ENDIF ()
395401IF (ICONV_FOUND)
396402 SET (GIT_USE_ICONV 1)
397- INCLUDE_DIRECTORIES (${ICONV_INCLUDE_DIR} )
403+ LIST (APPEND LIBGIT2_INCLUDES ${ICONV_INCLUDE_DIR} )
404+ LIST (APPEND LIBGIT2_LIBS ${ICONV_LIBRARIES} )
398405 LIST (APPEND LIBGIT2_PC_LIBS ${ICONV_LIBRARIES} )
399406ENDIF ()
400407
@@ -551,14 +558,14 @@ ENDIF()
551558IF (SECURITY_FOUND)
552559 SET (GIT_SECURE_TRANSPORT 1)
553560 SET (GIT_HTTPS 1)
554- INCLUDE_DIRECTORIES ( ${SECURITY_INCLUDE_DIR} )
561+ LIST ( APPEND LIBGIT2_INCLUDES ${SECURITY_INCLUDE_DIR} )
555562ENDIF ()
556563
557564IF (OPENSSL_FOUND)
558565 SET (GIT_OPENSSL 1)
559566 SET (GIT_HTTPS 1)
560- INCLUDE_DIRECTORIES ( ${OPENSSL_INCLUDE_DIR} )
561- SET (SSL_LIBRARIES ${OPENSSL_LIBRARIES} )
567+ LIST ( APPEND LIBGIT2_INCLUDES ${OPENSSL_INCLUDE_DIR} )
568+ LIST ( APPEND LIBGIT2_LIBS ${OPENSSL_LIBRARIES} )
562569ENDIF ()
563570
564571
@@ -614,32 +621,31 @@ ELSE()
614621ENDIF ()
615622
616623CONFIGURE_FILE (src/features.h.in git2/sys/features.h)
617- INCLUDE_DIRECTORIES (${CMAKE_CURRENT_BINARY_DIR} )
618624
619625SET (GIT2INTERNAL_OBJECTS ${SRC_H} ${SRC_GIT2} ${SRC_OS} ${SRC_ZLIB} ${SRC_HTTP} ${SRC_REGEX} ${SRC_SSH} ${SRC_SHA1} )
620626
627+ LIST (APPEND LIBGIT2_INCLUDES ${CMAKE_CURRENT_BINARY_DIR} "${CMAKE_SOURCE_DIR} /src" "${CMAKE_SOURCE_DIR} /include" )
628+
621629IF (CMAKE_VERSION VERSION_GREATER 2.8.7)
622630 ADD_LIBRARY (git2internal OBJECT ${GIT2INTERNAL_OBJECTS} )
623631 IDE_SPLIT_SOURCES(git2internal)
624632 SET (GIT2INTERNAL_OBJECTS $<TARGET_OBJECTS:git2internal>)
625633
626634 IF (${CMAKE_VERSION} VERSION_LESS 2.8.12)
627- INCLUDE_DIRECTORIES (src include )
635+ INCLUDE_DIRECTORIES (${LIBGIT2_INCLUDES} )
628636 ELSE ()
629- TARGET_INCLUDE_DIRECTORIES (git2internal PRIVATE src PUBLIC include )
637+ TARGET_INCLUDE_DIRECTORIES (git2internal
638+ PRIVATE ${LIBGIT2_INCLUDES}
639+ PUBLIC ${CMAKE_SOURCE_DIR} /include )
630640 ENDIF ()
631641ELSE ()
632- INCLUDE_DIRECTORIES (src include )
642+ INCLUDE_DIRECTORIES (${LIBGIT2_INCLUDES} )
633643ENDIF ()
634644
635645# Compile and link libgit2
646+ LINK_DIRECTORIES (${LIBGIT2_LIBDIRS} )
636647ADD_LIBRARY (git2 ${WIN_RC} ${GIT2INTERNAL_OBJECTS} )
637- TARGET_LINK_LIBRARIES (git2 ${SECURITY_DIRS} )
638- TARGET_LINK_LIBRARIES (git2 ${COREFOUNDATION_DIRS} )
639- TARGET_LINK_LIBRARIES (git2 ${SSL_LIBRARIES} )
640- TARGET_LINK_LIBRARIES (git2 ${SSH_LIBRARIES} )
641- TARGET_LINK_LIBRARIES (git2 ${GSSAPI_LIBRARIES} )
642- TARGET_LINK_LIBRARIES (git2 ${ICONV_LIBRARIES} )
648+ TARGET_LINK_LIBRARIES (git2 ${LIBGIT2_LIBS} )
643649TARGET_OS_LIBRARIES(git2)
644650
645651# Workaround for Cmake bug #0011240 (see http://public.kitware.com/Bug/view.php?id=11240)
0 commit comments