Add 'fuzzer' option to build Tint fuzzers in CMake builds
Change-Id: I2c36690b4a14062984e2872f8e612a1e7e6d1051
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/190680
Auto-Submit: David Neto <dneto@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
diff --git a/tools/setup-build b/tools/setup-build
index fc2aff2..0bcc0db 100755
--- a/tools/setup-build
+++ b/tools/setup-build
@@ -34,16 +34,18 @@
POSSIBLE_BUILD_SYSTEMS="[gn|cmake]"
POSSIBLE_BUILD_TYPES="[debug|release]"
POSSIBLE_BUILD_ARCHS="[native|x86]"
+BUILD_FUZZER=""
BUILD_SYSTEM=""
BUILD_TYPE=""
BUILD_ARCH=""
function show_usage() {
- echo "setup-build $POSSIBLE_BUILD_SYSTEMS $POSSIBLE_BUILD_TYPES $POSSIBLE_BUILD_ARCHS"
+ echo "setup-build $POSSIBLE_BUILD_SYSTEMS $POSSIBLE_BUILD_TYPES $POSSIBLE_BUILD_ARCHS [fuzz|fuzzer]"
echo
echo "creates a build directory in <dawn>/out using either GN or CMake, then"
echo "updates the '<dawn>/out/active' symlink to point to the build directory"
+ echo "Specifying 'fuzz' or 'fuzzer' forces Clang to be used"
if [[ ! -z "$1" ]]; then
echo
echo "$1"
@@ -95,6 +97,9 @@
;;
"native")
;;
+ "fuzz" | "fuzzer")
+ BUILD_FUZZER=1
+ ;;
"--help" | "-help" | "-h")
show_usage
;;
@@ -116,6 +121,9 @@
if [[ ! -z "$BUILD_ARCH" ]]; then
BUILD_DIR+="-$BUILD_ARCH"
fi
+if [[ ! -z "$BUILD_FUZZER" ]]; then
+ BUILD_DIR+="-fuzz"
+fi
function generate() {
pushd "$ROOT_DIR" > /dev/null
@@ -150,6 +158,9 @@
show_usage "invalid build architecture '$BUILD_ARCH'"
;;
esac
+ if [[ -n "$BUILD_FUZZER" ]]; then
+ GN_ARGS+=" use_libfuzzer=true"
+ fi
if [ -f "$ROOT_DIR/out/$BUILD_DIR/args.gn" ]; then
generate "gn" "gen" "out/active" # keep existing args
else
@@ -165,6 +176,11 @@
CMAKE_FLAGS+=("-DTINT_BUILD_WGSL_WRITER=1")
CMAKE_FLAGS+=("-DTINT_BUILD_TINTD=1")
CMAKE_FLAGS+=("-DDAWN_BUILD_NODE_BINDINGS=1")
+ if [[ -n "$BUILD_FUZZER" ]]; then
+ CMAKE_FLAGS+=("-DCMAKE_CXX_COMPILER=clang++")
+ CMAKE_FLAGS+=("-DCMAKE_C_COMPILER=clang")
+ CMAKE_FLAGS+=("-DTINT_BUILD_FUZZERS=ON")
+ fi
if [[ -x $(command -v ccache) ]]; then
CMAKE_FLAGS+=("-DCMAKE_CXX_COMPILER_LAUNCHER=ccache")
fi