# -*- sh -*-

# Build script to scan PuTTY with the downloadable Coverity scanner
# and generate a tar file to upload to their open-source scanning
# service.

module putty

# Scan the Unix build, on a 64-bit system to differentiate as much as
# possible from the other scan of the cross-platform files.
delegate covscan64
  in putty do mkdir linbuild
  in putty/linbuild do cmake ..
  in putty/linbuild do cov-build --dir ../cov-int make -j$(nproc) VERBOSE=1
  in putty do tar czvf cov-int.tar.gz cov-int
  return putty/cov-int.tar.gz
enddelegate

# Scan the Windows build, by means of building with Winelib (since as
# of 2013-07-22, the Coverity Scan website doesn't offer a 32-bit
# Windows scanner for download).
delegate covscan32wine
  in putty do tar xzvf cov-int.tar.gz
  in putty do mkdir winbuild
  in putty/winbuild do cmake .. -DCMAKE_TOOLCHAIN_FILE=../cmake/toolchain-winegcc.cmake
  in putty/winbuild do cov-build --dir ../cov-int make -j$(nproc) VERBOSE=1
  in putty do tar czvf cov-int.tar.gz cov-int
  return putty/cov-int.tar.gz
enddelegate

# Provide the revision number as one of the build outputs, to make it
# easy to construct a curl upload command which will annotate it
# appropriately when uploaded.
in putty do echo $(vcsfullid) > revision.txt

deliver putty/revision.txt $@
deliver putty/cov-int.tar.gz $@
