# Variables [env] PROJECT_DIR = { script = ["pwd"] } CARGO_TARGET_DIR = { value = "${PROJECT_DIR}/target", condition = { env_not_set = ["CARGO_TARGET_DIR"] } } PROFILE = { value = "release" } PROFILE_DIR = {value = "release" } FUZZER_NAME='libfuzzer_stb_image_concolic' # Compilers [tasks.runtime] linux_alias = "runtime_unix" mac_alias = "unsupported" windows_alias = "unsupported" [tasks.runtime_unix] condition = { files_not_exist = ["${CARGO_TARGET_DIR}/libSymRuntime.so"] } script_runner = "@shell" script = ''' cd runtime cargo build --profile ${PROFILE} ''' # Build the fuzzer [tasks.fuzzer] linux_alias = "fuzzer_unix" mac_alias = "unsupported" windows_alias = "unsupported" [tasks.fuzzer_unix] dependencies = ["runtime"] script_runner = "@shell" script = ''' cd fuzzer cargo build --profile ${PROFILE} ''' [tasks.test] alias = "fuzzer" [tasks.unsupported] # Do nothing script_runner = "@shell" script=''' echo "Not supported on this platform." ''' # Clean up [tasks.clean] # Disable default `clean` definition clear = true script=''' cd fuzzer cargo clean cd .. cd ./runtime cargo clean cd .. cargo clean '''