summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEdward Thomson <ethomson@edwardthomson.com>2023-04-13 23:08:15 +0100
committerGitHub <noreply@github.com>2023-04-13 23:08:15 +0100
commitabb0b313172d1b4477fe0c6e88102ce4bb8db90c (patch)
tree3a10be144189e635044782d76888e40d1d862afa
parent562feb99c1a27bb5e31fdf8420e076e2f188bf56 (diff)
parent462dbe21d0edc3817d53900702e68d666c303600 (diff)
downloadlibgit2-abb0b313172d1b4477fe0c6e88102ce4bb8db90c.tar.gz
Merge pull request #6482 from libgit2/ethomson/xdiff
xdiff: move xdiff to 'deps'
-rw-r--r--CMakeLists.txt1
-rw-r--r--cmake/SelectXdiff.cmake9
-rw-r--r--deps/xdiff/CMakeLists.txt28
-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.txt1
-rw-r--r--src/libgit2/CMakeLists.txt20
-rw-r--r--src/libgit2/blame_git.c1
-rw-r--r--src/libgit2/diff_xdiff.h2
-rw-r--r--src/libgit2/merge_file.c2
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
*/