From a941abb2e9115a1d1b2c99075a1d206700555a59 Mon Sep 17 00:00:00 2001 From: Manuel Sampedro Date: Mon, 25 May 2026 16:23:49 +0200 Subject: [PATCH] fix: explain missing Brotli submodule during build --- README.md | 6 ++++++ brotlic-sys/build.rs | 8 ++++++++ 2 files changed, 14 insertions(+) diff --git a/README.md b/README.md index ae85e5e..e987c04 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,12 @@ Brotlic (or BrotliC) is a thin wrapper around [brotli](https://github.com/google A __C__ compiler is required for building [brotli](https://github.com/google/brotli) with cargo. +When building from a git checkout, initialize the bundled Brotli C submodule first: + +```sh +git submodule update --init --recursive +``` + ## Usage Brotlic provides Rust bindings to all compression and decompression APIs. On the fly compression and diff --git a/brotlic-sys/build.rs b/brotlic-sys/build.rs index 4446511..bf1282c 100644 --- a/brotlic-sys/build.rs +++ b/brotlic-sys/build.rs @@ -4,6 +4,14 @@ use std::path::PathBuf; fn main() { let manifest_dir = PathBuf::from(env::var_os("CARGO_MANIFEST_DIR").unwrap()); let include_dir = manifest_dir.join("brotli/c/include"); + let required_source = manifest_dir.join("brotli/c/common/constants.c"); + + if !required_source.exists() { + panic!( + "missing Brotli C sources at {}. If building from a git checkout, run `git submodule update --init --recursive` first.", + required_source.display() + ); + } cc::Build::new() .files(&[