1+ add_library (git2internal OBJECT)
2+ set_target_properties (git2internal PROPERTIES C_STANDARD 90)
3+
14IF (DEBUG_POOL)
25 SET (GIT_DEBUG_POOL 1)
36ENDIF ()
@@ -38,19 +41,19 @@ CHECK_PROTOTYPE_DEFINITION(qsort_r
3841 "void qsort_r(void *base, size_t nmemb, size_t size, void *thunk, int (*compar)(void *, const void *, const void *))"
3942 "" "stdlib.h" HAVE_QSORT_R_BSD)
4043IF (HAVE_QSORT_R_BSD)
41- ADD_DEFINITIONS (-DHAVE_QSORT_R_BSD )
44+ target_compile_definitions (git2internal PRIVATE HAVE_QSORT_R_BSD )
4245ENDIF ()
4346
4447CHECK_PROTOTYPE_DEFINITION(qsort_r
4548 "void qsort_r(void *base, size_t nmemb, size_t size, int (*compar)(const void *, const void *, void *), void *arg)"
4649 "" "stdlib.h" HAVE_QSORT_R_GNU)
4750IF (HAVE_QSORT_R_GNU)
48- ADD_DEFINITIONS (-DHAVE_QSORT_R_GNU )
51+ target_compile_definitions (git2internal PRIVATE HAVE_QSORT_R_GNU )
4952ENDIF ()
5053
5154CHECK_FUNCTION_EXISTS(qsort_s HAVE_QSORT_S)
5255IF (HAVE_QSORT_S)
53- ADD_DEFINITIONS (-DHAVE_QSORT_S )
56+ target_compile_definitions (git2internal PRIVATE HAVE_QSORT_S )
5457ENDIF ()
5558
5659# Find required dependencies
@@ -81,6 +84,8 @@ ADD_FEATURE_INFO(threadsafe THREADSAFE "threadsafe support")
8184if (WIN32 AND EMBED_SSH_PATH)
8285 file (GLOB SRC_SSH "${EMBED_SSH_PATH} /src/*.c" )
8386 list (SORT SRC_SSH)
87+ target_sources (git2internal PRIVATE ${SRC_SSH} )
88+
8489 list (APPEND LIBGIT2_SYSTEM_INCLUDES "${EMBED_SSH_PATH} /include" )
8590 file (WRITE "${EMBED_SSH_PATH} /src/libssh2_config.h" "#define HAVE_WINCNG\n #define LIBSSH2_WINCNG\n #include \" ../win32/libssh2_config.h\" " )
8691 set (GIT_SSH 1)
@@ -104,8 +109,9 @@ IF (WIN32 AND WINHTTP)
104109 LIST (APPEND LIBGIT2_PC_LIBS "-lrpcrt4" "-lcrypt32" "-lole32" )
105110ENDIF ()
106111
107- Include (SelectHTTPSBackend)
108- Include (SelectHashes)
112+ include (SelectHTTPSBackend)
113+ include (SelectHashes)
114+ target_sources (git2internal PRIVATE ${SRC_SHA1} )
109115
110116# Specify regular expression implementation
111117FIND_PACKAGE (PCRE)
@@ -267,30 +273,33 @@ ELSEIF (HAVE_STRUCT_STAT_ST_MTIME_NSEC)
267273 SET (GIT_USE_STAT_MTIME_NSEC 1)
268274ENDIF ()
269275
270- ADD_DEFINITIONS (-D_FILE_OFFSET_BITS =64)
276+ target_compile_definitions (git2internal PRIVATE _FILE_OFFSET_BITS =64)
271277
272278# Collect sourcefiles
273279file (GLOB SRC_H
274280 "${libgit2_SOURCE_DIR} /include/git2.h"
275281 "${libgit2_SOURCE_DIR} /include/git2/*.h"
276282 "${libgit2_SOURCE_DIR} /include/git2/sys/*.h" )
277283list (SORT SRC_H)
284+ target_sources (git2internal PRIVATE ${SRC_H} )
278285
279286# On Windows use specific platform sources
280287if (WIN32 AND NOT CYGWIN )
281288 SET (WIN_RC "win32/git2.rc" )
282289
283290 file (GLOB SRC_OS win32 /*.c win32 /*.h)
284291 list (SORT SRC_OS)
292+ target_sources (git2internal PRIVATE ${SRC_OS} )
285293elseif (AMIGA)
286- add_definitions (-DNO_ADDRINFO -DNO_READDIR_R -DNO_MMAP )
294+ target_compile_definitions (git2internal PRIVATE NO_ADDRINFO NO_READDIR_R NO_MMAP )
287295else ()
288296 file (GLOB SRC_OS unix /*.c unix /*.h)
289297 list (SORT SRC_OS)
298+ target_sources (git2internal PRIVATE ${SRC_OS} )
290299endif ()
291300
292301IF (USE_LEAK_CHECKER STREQUAL "valgrind" )
293- ADD_DEFINITIONS (-DVALGRIND )
302+ target_compile_definitions (git2internal PRIVATE VALGRIND )
294303ENDIF ()
295304
296305file (GLOB SRC_GIT2 *.c *.h
@@ -299,6 +308,7 @@ file(GLOB SRC_GIT2 *.c *.h
299308 transports/*.c transports/*.h
300309 xdiff/*.c xdiff/*.h)
301310list (SORT SRC_GIT2)
311+ target_sources (git2internal PRIVATE ${SRC_GIT2} )
302312
303313IF (APPLE )
304314 # The old Secure Transport API has been deprecated in macOS 10.15.
@@ -325,10 +335,6 @@ ENDIF()
325335
326336CONFIGURE_FILE (features.h.in git2/sys/features.h)
327337
328- SET (LIBGIT2_SOURCES ${SRC_H} ${SRC_GIT2} ${SRC_OS} ${SRC_SSH} ${SRC_SHA1} )
329-
330- ADD_LIBRARY (git2internal OBJECT ${LIBGIT2_SOURCES} )
331- SET_TARGET_PROPERTIES (git2internal PROPERTIES C_STANDARD 90)
332338IDE_SPLIT_SOURCES(git2internal)
333339LIST (APPEND LIBGIT2_OBJECTS $<TARGET_OBJECTS:git2internal>)
334340
@@ -364,19 +370,19 @@ ENDIF()
364370
365371IDE_SPLIT_SOURCES(git2)
366372
367- IF (SONAME)
368- SET_TARGET_PROPERTIES (git2 PROPERTIES VERSION ${LIBGIT2_VERSION_STRING } )
369- SET_TARGET_PROPERTIES (git2 PROPERTIES SOVERSION ${LIBGIT2_SOVERSION} )
370- IF (LIBGIT2_FILENAME)
371- ADD_DEFINITIONS (-DLIBGIT2_FILENAME =\"${LIBGIT2_FILENAME} \")
372- SET_TARGET_PROPERTIES (git2 PROPERTIES OUTPUT_NAME ${LIBGIT2_FILENAME} )
373- ELSEIF (DEFINED LIBGIT2_PREFIX)
374- SET_TARGET_PROPERTIES (git2 PROPERTIES PREFIX "${LIBGIT2_PREFIX} " )
375- ENDIF ()
376- ENDIF ()
373+ if (SONAME)
374+ set_target_properties (git2 PROPERTIES VERSION ${libgit2_VERSION } )
375+ set_target_properties (git2 PROPERTIES SOVERSION " ${libgit2_VERSION_MAJOR} . ${libgit2_VERSION_MINOR} " )
376+ if (LIBGIT2_FILENAME)
377+ target_compile_definitions (git2internal PRIVATE LIBGIT2_FILENAME =\"${LIBGIT2_FILENAME} \")
378+ set_target_properties (git2 PROPERTIES OUTPUT_NAME ${LIBGIT2_FILENAME} )
379+ elseif (DEFINED LIBGIT2_PREFIX)
380+ set_target_properties (git2 PROPERTIES PREFIX "${LIBGIT2_PREFIX} " )
381+ endif ()
382+ endif ()
377383
378384PKG_BUILD_CONFIG(NAME libgit2
379- VERSION ${LIBGIT2_VERSION_STRING }
385+ VERSION ${libgit2_VERSION }
380386 DESCRIPTION "The git library, take 2"
381387 LIBS_SELF git2
382388 PRIVATE_LIBS ${LIBGIT2_PC_LIBS}
0 commit comments