| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- #!/bin/bash -eu
- # Copyright 2019 Google Inc.
- #
- # Licensed under the Apache License, Version 2.0 (the "License");
- # you may not use this file except in compliance with the License.
- # You may obtain a copy of the License at
- #
- # http://www.apache.org/licenses/LICENSE-2.0
- #
- # Unless required by applicable law or agreed to in writing, software
- # distributed under the License is distributed on an "AS IS" BASIS,
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- # See the License for the specific language governing permissions and
- # limitations under the License.
- #
- ################################################################################
- cd "$SRC"/leptonica
- ./autogen.sh
- ./configure --disable-shared
- make SUBDIRS=src install -j"$(nproc)"
- ldconfig
- cd "$SRC"/tesseract
- ./autogen.sh
- CXXFLAGS="$CXXFLAGS -D_GLIBCXX_DEBUG" ./configure --disable-graphics --disable-shared
- make -j"$(nproc)"
- # Get the models which are needed for the fuzzers.
- mkdir -p "$OUT"/tessdata
- (
- cd "$OUT"/tessdata
- test -f eng.traineddata || \
- curl -sSL -O https://github.com/tesseract-ocr/tessdata/raw/main/eng.traineddata
- )
- # OSS-Fuzz requires static linking for the project specific libraries,
- # so get the list of those libraries for Leptonica and TIFF.
- # Note that libm must be linker dynamically to avoid linker errors.
- LEPTONICA_CFLAGS=$(pkg-config --cflags lept)
- LEPTONICA_LIBS=$(pkg-config --static --libs lept)
- LIBTIFF_LIBS=$(pkg-config --static --libs libtiff-4 | sed 's/ -lm//')
- $CXX $CXXFLAGS \
- -I "$SRC"/tesseract/include \
- "$SRC"/tesseract/unittest/fuzzers/fuzzer-api.cpp -o "$OUT"/fuzzer-api \
- "$SRC"/tesseract/.libs/libtesseract.a \
- $LEPTONICA_CFLAGS \
- -Wl,-Bstatic $LEPTONICA_LIBS $LIBTIFF_LIBS -Wl,-Bdynamic \
- $LIB_FUZZING_ENGINE
- $CXX $CXXFLAGS \
- -DTESSERACT_FUZZER_WIDTH=512 \
- -DTESSERACT_FUZZER_HEIGHT=256 \
- -I "$SRC"/tesseract/include \
- "$SRC"/tesseract/unittest/fuzzers/fuzzer-api.cpp -o "$OUT"/fuzzer-api-512x256 \
- "$SRC"/tesseract/.libs/libtesseract.a \
- $LEPTONICA_CFLAGS \
- -Wl,-Bstatic $LEPTONICA_LIBS $LIBTIFF_LIBS -Wl,-Bdynamic \
- $LIB_FUZZING_ENGINE
|