build.sh 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. cd $SRC/jpegoptim
  2. mkdir -p build
  3. export ASAN_OPTIONS=detect_leaks=0
  4. # Build for libjpeg
  5. cmake -S . -B build-libjpeg \
  6. -DJPEG_ENGINE=libjpeg \
  7. -DBUILD_FUZZERS=On \
  8. -DCMAKE_C_COMPILER_WORKS=1 \
  9. -DUSE_MOZJPEG=0 \
  10. -DBUILD_SHARED_LIBS=OFF \
  11. -DLIBJPEG_INCLUDE_DIR=/usr/include \
  12. -DLIBJPEG_LIBRARY=/usr/lib/x86_64-linux-gnu/libjpeg.a \
  13. && cmake --build build-libjpeg --target install
  14. # Build for libjpeg-turbo
  15. cmake -S . -B build-libjpegturbo \
  16. -DJPEG_ENGINE=libjpegturbo \
  17. -DBUILD_FUZZERS=ON \
  18. -DCMAKE_C_COMPILER_WORKS=1 \
  19. -DUSE_MOZJPEG=0 \
  20. -DBUILD_SHARED_LIBS=OFF \
  21. -DLIBJPEG_INCLUDE_DIR=/opt/libjpeg-turbo/include \
  22. -DLIBJPEG_LIBRARY=/opt/libjpeg-turbo/lib64/libjpeg.a \
  23. && cmake --build build-libjpegturbo --target install
  24. # Build for mozjpeg
  25. cmake -S . -B build-mozjpeg \
  26. -DJPEG_ENGINE=mozjpeg \
  27. -DBUILD_FUZZERS=On \
  28. -DCMAKE_C_COMPILER_WORKS=1 \
  29. -DUSE_MOZJPEG=1 \
  30. -DBUILD_SHARED_LIBS=OFF \
  31. && cmake --build build-mozjpeg --target install
  32. # Prepare corpora
  33. mkdir -p fuzz/corpus
  34. find . -name "*.jpg" -exec cp {} fuzz/corpus \;
  35. # Save corpora per build
  36. zip -q $OUT/libjpeg_compression_fuzzer_seed_corpus.zip fuzz/corpus/*
  37. cp $OUT/libjpeg_compression_fuzzer_seed_corpus.zip $OUT/libjpegturbo_compression_fuzzer_seed_corpus.zip
  38. cp $OUT/libjpeg_compression_fuzzer_seed_corpus.zip $OUT/mozjpeg_compression_fuzzer_seed_corpus.zip