diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 87a5ade..d8b211b 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -18,7 +18,9 @@ jobs: - os: macos-latest tesseract-install: brew install tesseract - os: windows-latest - tesseract-install: winget install --id=UB-Mannheim.TesseractOCR -e --accept-package-agreements --accept-source-agreements + tesseract-install: | + winget install --id=UB-Mannheim.TesseractOCR -e --accept-package-agreements --accept-source-agreements + echo "C:\Program Files\Tesseract-OCR" >> $env:GITHUB_PATH steps: - uses: actions/checkout@v4 @@ -38,6 +40,10 @@ jobs: - name: Install Rust uses: dtolnay/rust-toolchain@stable + - name: Install additional dependencies + if: matrix.os == 'ubuntu-latest' + run: sudo apt-get update && sudo apt-get install -y pkg-config libdbus-1-dev libssl-dev libclang-dev libxcb1-dev libxrandr-dev libpipewire-0.3-dev libwayland-dev libegl-dev + - name: Install Tesseract run: ${{ matrix.tesseract-install }} diff --git a/src/lib.rs b/src/lib.rs index c8c218d..391bb99 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -69,8 +69,18 @@ impl OcrEngine { image: &DynamicImage, ) -> Result<(String, String, Option)> { match &self.provider { - #[cfg(target_os = "macos")] - OcrProvider::MacOS => Ok(perform_ocr_apple(image, &self.options.languages)), + OcrProvider::MacOS => { + #[cfg(target_os = "macos")] + { + Ok(perform_ocr_apple(image, &self.options.languages)) + } + #[cfg(not(target_os = "macos"))] + { + Err(anyhow::anyhow!( + "macOS OCR is not available on this platform" + )) + } + } OcrProvider::Windows => { #[cfg(target_os = "windows")] {