diff options
-rw-r--r-- | CMakeLists.txt | 1 | ||||
-rw-r--r-- | cmake/SelectXdiff.cmake | 9 | ||||
-rw-r--r-- | deps/xdiff/CMakeLists.txt | 28 | ||||
-rw-r--r-- | deps/xdiff/git-xdiff.h (renamed from src/libgit2/xdiff/git-xdiff.h) | 0 | ||||
-rw-r--r-- | deps/xdiff/xdiff.h (renamed from src/libgit2/xdiff/xdiff.h) | 0 | ||||
-rw-r--r-- | deps/xdiff/xdiffi.c (renamed from src/libgit2/xdiff/xdiffi.c) | 0 | ||||
-rw-r--r-- | deps/xdiff/xdiffi.h (renamed from src/libgit2/xdiff/xdiffi.h) | 0 | ||||
-rw-r--r-- | deps/xdiff/xemit.c (renamed from src/libgit2/xdiff/xemit.c) | 0 | ||||
-rw-r--r-- | deps/xdiff/xemit.h (renamed from src/libgit2/xdiff/xemit.h) | 0 | ||||
-rw-r--r-- | deps/xdiff/xhistogram.c (renamed from src/libgit2/xdiff/xhistogram.c) | 0 | ||||
-rw-r--r-- | deps/xdiff/xinclude.h (renamed from src/libgit2/xdiff/xinclude.h) | 0 | ||||
-rw-r--r-- | deps/xdiff/xmacros.h (renamed from src/libgit2/xdiff/xmacros.h) | 0 | ||||
-rw-r--r-- | deps/xdiff/xmerge.c (renamed from src/libgit2/xdiff/xmerge.c) | 0 | ||||
-rw-r--r-- | deps/xdiff/xpatience.c (renamed from src/libgit2/xdiff/xpatience.c) | 0 | ||||
-rw-r--r-- | deps/xdiff/xprepare.c (renamed from src/libgit2/xdiff/xprepare.c) | 0 | ||||
-rw-r--r-- | deps/xdiff/xprepare.h (renamed from src/libgit2/xdiff/xprepare.h) | 0 | ||||
-rw-r--r-- | deps/xdiff/xtypes.h (renamed from src/libgit2/xdiff/xtypes.h) | 0 | ||||
-rw-r--r-- | deps/xdiff/xutils.c (renamed from src/libgit2/xdiff/xutils.c) | 0 | ||||
-rw-r--r-- | deps/xdiff/xutils.h (renamed from src/libgit2/xdiff/xutils.h) | 0 | ||||
-rw-r--r-- | src/CMakeLists.txt | 1 | ||||
-rw-r--r-- | src/libgit2/CMakeLists.txt | 20 | ||||
-rw-r--r-- | src/libgit2/blame_git.c | 1 | ||||
-rw-r--r-- | src/libgit2/diff_xdiff.h | 2 | ||||
-rw-r--r-- | src/libgit2/merge_file.c | 2 |
24 files changed, 41 insertions, 23 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index b505b181c..30527b928 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -36,6 +36,7 @@ option(USE_SHA1 "Enable SHA1. Can be set to CollisionDetection(ON option(USE_SHA256 "Enable SHA256. Can be set to HTTPS/Builtin" ON) option(USE_GSSAPI "Link with libgssapi for SPNEGO auth" OFF) set(USE_HTTP_PARSER "" CACHE STRING "Specifies the HTTP Parser implementation; either system or builtin.") +# set(USE_XDIFF "" CACHE STRING "Specifies the xdiff implementation; either system or builtin.") set(REGEX_BACKEND "" CACHE STRING "Regular expression implementation. One of regcomp_l, pcre2, pcre, regcomp, or builtin.") option(USE_BUNDLED_ZLIB "Use the bundled version of zlib. Can be set to one of Bundled(ON)/Chromium. The Chromium option requires a x86_64 processor with SSE4.2 and CLMUL" OFF) diff --git a/cmake/SelectXdiff.cmake b/cmake/SelectXdiff.cmake new file mode 100644 index 000000000..9ab9f3f4f --- /dev/null +++ b/cmake/SelectXdiff.cmake @@ -0,0 +1,9 @@ +# Optional external dependency: xdiff +if(USE_XDIFF STREQUAL "system") + message(FATAL_ERROR "external/system xdiff is not yet supported") +else() + add_subdirectory("${PROJECT_SOURCE_DIR}/deps/xdiff" "${PROJECT_BINARY_DIR}/deps/xdiff") + list(APPEND LIBGIT2_DEPENDENCY_INCLUDES "${PROJECT_SOURCE_DIR}/deps/xdiff") + list(APPEND LIBGIT2_DEPENDENCY_OBJECTS "$<TARGET_OBJECTS:xdiff>") + add_feature_info(xdiff ON "xdiff support (bundled)") +endif() diff --git a/deps/xdiff/CMakeLists.txt b/deps/xdiff/CMakeLists.txt new file mode 100644 index 000000000..743ac636f --- /dev/null +++ b/deps/xdiff/CMakeLists.txt @@ -0,0 +1,28 @@ + +file(GLOB SRC_XDIFF "*.c" "*.h") +list(SORT SRC_XDIFF) + +add_library(xdiff OBJECT ${SRC_XDIFF}) +target_include_directories(xdiff SYSTEM PRIVATE + "${PROJECT_SOURCE_DIR}/include" + "${PROJECT_SOURCE_DIR}/src/util" + "${PROJECT_BINARY_DIR}/src/util" + ${LIBGIT2_SYSTEM_INCLUDES} + ${LIBGIT2_DEPENDENCY_INCLUDES}) + +# the xdiff dependency is not (yet) warning-free, disable warnings +# as errors for the xdiff sources until we've sorted them out +if(MSVC) + set_source_files_properties(xdiffi.c PROPERTIES COMPILE_FLAGS -WX-) + set_source_files_properties(xemit.c PROPERTIES COMPILE_FLAGS -WX-) + set_source_files_properties(xhistogram.c PROPERTIES COMPILE_FLAGS -WX-) + set_source_files_properties(xmerge.c PROPERTIES COMPILE_FLAGS -WX-) + set_source_files_properties(xutils.c PROPERTIES COMPILE_FLAGS -WX-) + set_source_files_properties(xpatience.c PROPERTIES COMPILE_FLAGS -WX-) +else() + set_source_files_properties(xdiffi.c PROPERTIES COMPILE_FLAGS "-Wno-sign-compare -Wno-unused-parameter") + set_source_files_properties(xemit.c PROPERTIES COMPILE_FLAGS "-Wno-sign-compare -Wno-unused-parameter") + set_source_files_properties(xhistogram.c PROPERTIES COMPILE_FLAGS "-Wno-sign-compare") + set_source_files_properties(xutils.c PROPERTIES COMPILE_FLAGS "-Wno-sign-compare") + set_source_files_properties(xpatience.c PROPERTIES COMPILE_FLAGS "-Wno-sign-compare") +endif() diff --git a/src/libgit2/xdiff/git-xdiff.h b/deps/xdiff/git-xdiff.h index b75dba819..b75dba819 100644 --- a/src/libgit2/xdiff/git-xdiff.h +++ b/deps/xdiff/git-xdiff.h diff --git a/src/libgit2/xdiff/xdiff.h b/deps/xdiff/xdiff.h index fb47f63fb..fb47f63fb 100644 --- a/src/libgit2/xdiff/xdiff.h +++ b/deps/xdiff/xdiff.h diff --git a/src/libgit2/xdiff/xdiffi.c b/deps/xdiff/xdiffi.c index af31b7f4b..af31b7f4b 100644 --- a/src/libgit2/xdiff/xdiffi.c +++ b/deps/xdiff/xdiffi.c diff --git a/src/libgit2/xdiff/xdiffi.h b/deps/xdiff/xdiffi.h index 8f1c7c8b0..8f1c7c8b0 100644 --- a/src/libgit2/xdiff/xdiffi.h +++ b/deps/xdiff/xdiffi.h diff --git a/src/libgit2/xdiff/xemit.c b/deps/xdiff/xemit.c index 1cbf2b982..1cbf2b982 100644 --- a/src/libgit2/xdiff/xemit.c +++ b/deps/xdiff/xemit.c diff --git a/src/libgit2/xdiff/xemit.h b/deps/xdiff/xemit.h index 1b9887e67..1b9887e67 100644 --- a/src/libgit2/xdiff/xemit.h +++ b/deps/xdiff/xemit.h diff --git a/src/libgit2/xdiff/xhistogram.c b/deps/xdiff/xhistogram.c index 80794748b..80794748b 100644 --- a/src/libgit2/xdiff/xhistogram.c +++ b/deps/xdiff/xhistogram.c diff --git a/src/libgit2/xdiff/xinclude.h b/deps/xdiff/xinclude.h index 75db1d8f3..75db1d8f3 100644 --- a/src/libgit2/xdiff/xinclude.h +++ b/deps/xdiff/xinclude.h diff --git a/src/libgit2/xdiff/xmacros.h b/deps/xdiff/xmacros.h index 2809a28ca..2809a28ca 100644 --- a/src/libgit2/xdiff/xmacros.h +++ b/deps/xdiff/xmacros.h diff --git a/src/libgit2/xdiff/xmerge.c b/deps/xdiff/xmerge.c index 433e2d741..433e2d741 100644 --- a/src/libgit2/xdiff/xmerge.c +++ b/deps/xdiff/xmerge.c diff --git a/src/libgit2/xdiff/xpatience.c b/deps/xdiff/xpatience.c index c5d48e80a..c5d48e80a 100644 --- a/src/libgit2/xdiff/xpatience.c +++ b/deps/xdiff/xpatience.c diff --git a/src/libgit2/xdiff/xprepare.c b/deps/xdiff/xprepare.c index 4527a4a07..4527a4a07 100644 --- a/src/libgit2/xdiff/xprepare.c +++ b/deps/xdiff/xprepare.c diff --git a/src/libgit2/xdiff/xprepare.h b/deps/xdiff/xprepare.h index 947d9fc1b..947d9fc1b 100644 --- a/src/libgit2/xdiff/xprepare.h +++ b/deps/xdiff/xprepare.h diff --git a/src/libgit2/xdiff/xtypes.h b/deps/xdiff/xtypes.h index 8442bd436..8442bd436 100644 --- a/src/libgit2/xdiff/xtypes.h +++ b/deps/xdiff/xtypes.h diff --git a/src/libgit2/xdiff/xutils.c b/deps/xdiff/xutils.c index cfa6e2220..cfa6e2220 100644 --- a/src/libgit2/xdiff/xutils.c +++ b/deps/xdiff/xutils.c diff --git a/src/libgit2/xdiff/xutils.h b/deps/xdiff/xutils.h index fba7bae03..fba7bae03 100644 --- a/src/libgit2/xdiff/xutils.h +++ b/deps/xdiff/xutils.h diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 8fd22bc11..cc0a0d4dc 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -41,6 +41,7 @@ include(SelectHTTPSBackend) include(SelectHashes) include(SelectHTTPParser) include(SelectRegex) +include(SelectXdiff) include(SelectSSH) include(SelectZlib) diff --git a/src/libgit2/CMakeLists.txt b/src/libgit2/CMakeLists.txt index dcb4279c1..876a703e8 100644 --- a/src/libgit2/CMakeLists.txt +++ b/src/libgit2/CMakeLists.txt @@ -24,8 +24,7 @@ target_sources(libgit2 PRIVATE ${SRC_H}) file(GLOB SRC_GIT2 *.c *.h streams/*.c streams/*.h - transports/*.c transports/*.h - xdiff/*.c xdiff/*.h) + transports/*.c transports/*.h) list(SORT SRC_GIT2) target_sources(libgit2 PRIVATE ${SRC_GIT2}) @@ -39,23 +38,6 @@ if(APPLE) set_source_files_properties(streams/stransport.c PROPERTIES COMPILE_FLAGS -Wno-deprecated) endif() -# the xdiff dependency is not (yet) warning-free, disable warnings -# as errors for the xdiff sources until we've sorted them out -if(MSVC) - set_source_files_properties(xdiff/xdiffi.c PROPERTIES COMPILE_FLAGS -WX-) - set_source_files_properties(xdiff/xemit.c PROPERTIES COMPILE_FLAGS -WX-) - set_source_files_properties(xdiff/xhistogram.c PROPERTIES COMPILE_FLAGS -WX-) - set_source_files_properties(xdiff/xmerge.c PROPERTIES COMPILE_FLAGS -WX-) - set_source_files_properties(xdiff/xutils.c PROPERTIES COMPILE_FLAGS -WX-) - set_source_files_properties(xdiff/xpatience.c PROPERTIES COMPILE_FLAGS -WX-) -else() - set_source_files_properties(xdiff/xdiffi.c PROPERTIES COMPILE_FLAGS "-Wno-sign-compare -Wno-unused-parameter") - set_source_files_properties(xdiff/xemit.c PROPERTIES COMPILE_FLAGS "-Wno-sign-compare -Wno-unused-parameter") - set_source_files_properties(xdiff/xhistogram.c PROPERTIES COMPILE_FLAGS "-Wno-sign-compare") - set_source_files_properties(xdiff/xutils.c PROPERTIES COMPILE_FLAGS "-Wno-sign-compare") - set_source_files_properties(xdiff/xpatience.c PROPERTIES COMPILE_FLAGS "-Wno-sign-compare") -endif() - ide_split_sources(libgit2) list(APPEND LIBGIT2_OBJECTS $<TARGET_OBJECTS:util> $<TARGET_OBJECTS:libgit2> ${LIBGIT2_DEPENDENCY_OBJECTS}) list(APPEND LIBGIT2_INCLUDES ${LIBGIT2_DEPENDENCY_INCLUDES}) diff --git a/src/libgit2/blame_git.c b/src/libgit2/blame_git.c index 2504b338a..69897b386 100644 --- a/src/libgit2/blame_git.c +++ b/src/libgit2/blame_git.c @@ -9,7 +9,6 @@ #include "commit.h" #include "blob.h" -#include "xdiff/xinclude.h" #include "diff_xdiff.h" /* diff --git a/src/libgit2/diff_xdiff.h b/src/libgit2/diff_xdiff.h index 9b303e9dc..327dc7c4a 100644 --- a/src/libgit2/diff_xdiff.h +++ b/src/libgit2/diff_xdiff.h @@ -10,7 +10,7 @@ #include "common.h" #include "diff.h" -#include "xdiff/xdiff.h" +#include "xdiff.h" #include "patch_generate.h" /* xdiff cannot cope with large files. these files should not be passed to diff --git a/src/libgit2/merge_file.c b/src/libgit2/merge_file.c index 732a047b1..ffe83cf2a 100644 --- a/src/libgit2/merge_file.c +++ b/src/libgit2/merge_file.c @@ -19,8 +19,6 @@ #include "git2/index.h" #include "git2/merge.h" -#include "xdiff/xdiff.h" - /* only examine the first 8000 bytes for binaryness. * https://github.com/git/git/blob/77bd3ea9f54f1584147b594abc04c26ca516d987/xdiff-interface.c#L197 */ |