diff --git a/libgit2-sys/build.rs b/libgit2-sys/build.rs index 2752a5bc97..0ef3021c15 100644 --- a/libgit2-sys/build.rs +++ b/libgit2-sys/build.rs @@ -41,19 +41,21 @@ fn main() { cp_r("libgit2/include", &include); cfg.include(&include) - .include("libgit2/src") + .include("libgit2/src/libgit2") + .include("libgit2/src/util") .out_dir(dst.join("build")) .warnings(false); // Include all cross-platform C files - add_c_files(&mut cfg, "libgit2/src"); - add_c_files(&mut cfg, "libgit2/src/xdiff"); + add_c_files(&mut cfg, "libgit2/src/libgit2"); + add_c_files(&mut cfg, "libgit2/src/util"); + add_c_files(&mut cfg, "libgit2/src/libgit2/xdiff"); // These are activated by features, but they're all unconditionally always // compiled apparently and have internal #define's to make sure they're // compiled correctly. - add_c_files(&mut cfg, "libgit2/src/transports"); - add_c_files(&mut cfg, "libgit2/src/streams"); + add_c_files(&mut cfg, "libgit2/src/libgit2/transports"); + add_c_files(&mut cfg, "libgit2/src/libgit2/streams"); // Always use bundled http-parser for now cfg.include("libgit2/deps/http-parser") @@ -82,11 +84,11 @@ fn main() { // when when COMPILE_PCRE8 is not defined, which is the default. add_c_files(&mut cfg, "libgit2/deps/pcre"); - cfg.file("libgit2/src/allocators/failalloc.c"); - cfg.file("libgit2/src/allocators/stdalloc.c"); + cfg.file("libgit2/src/util/allocators/failalloc.c"); + cfg.file("libgit2/src/util/allocators/stdalloc.c"); if windows { - add_c_files(&mut cfg, "libgit2/src/win32"); + add_c_files(&mut cfg, "libgit2/src/util/win32"); cfg.define("STRSAFE_NO_DEPRECATE", None); cfg.define("WIN32", None); cfg.define("_WIN32_WINNT", Some("0x0600")); @@ -98,7 +100,7 @@ fn main() { cfg.define("__USE_MINGW_ANSI_STDIO", "1"); } } else { - add_c_files(&mut cfg, "libgit2/src/unix"); + add_c_files(&mut cfg, "libgit2/src/util/unix"); cfg.flag("-fvisibility=hidden"); } if target.contains("solaris") || target.contains("illumos") { @@ -156,9 +158,9 @@ fn main() { cfg.define("SHA1DC_NO_STANDARD_INCLUDES", "1"); cfg.define("SHA1DC_CUSTOM_INCLUDE_SHA1_C", "\"common.h\""); cfg.define("SHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C", "\"common.h\""); - cfg.file("libgit2/src/hash/sha1/collisiondetect.c"); - cfg.file("libgit2/src/hash/sha1/sha1dc/sha1.c"); - cfg.file("libgit2/src/hash/sha1/sha1dc/ubc_check.c"); + cfg.file("libgit2/src/util/hash/sha1/collisiondetect.c"); + cfg.file("libgit2/src/util/hash/sha1/sha1dc/sha1.c"); + cfg.file("libgit2/src/util/hash/sha1/sha1dc/ubc_check.c"); if let Some(path) = env::var_os("DEP_Z_INCLUDE") { cfg.include(path); @@ -210,8 +212,12 @@ fn cp_r(from: impl AsRef, to: impl AsRef) { } fn add_c_files(build: &mut cc::Build, path: impl AsRef) { + let path = path.as_ref(); + if !path.exists() { + panic!("Path {} does not exist", path.display()); + } // sort the C files to ensure a deterministic build for reproducible builds - let dir = path.as_ref().read_dir().unwrap(); + let dir = path.read_dir().unwrap(); let mut paths = dir.collect::>>().unwrap(); paths.sort_by_key(|e| e.path()); diff --git a/libgit2-sys/libgit2 b/libgit2-sys/libgit2 index 182d0d1ee9..2a0d0bd19b 160000 --- a/libgit2-sys/libgit2 +++ b/libgit2-sys/libgit2 @@ -1 +1 @@ -Subproject commit 182d0d1ee933de46bf0b5a6ec269bafa77aba9a2 +Subproject commit 2a0d0bd19b5d13e2ab7f3780e094404828cbb9a7