#! /usr/bin/env python # encoding: utf-8 # a1batross, mittorn, 2018 def options(opt): pass def configure(conf): if conf.options.BUILD_TYPE != 'sanitize': conf.fatal('useless without -T sanitize') if conf.env.COMPILER_CC != 'clang': conf.fatal('only clang is supported') conf.env.append_unique('CFLAGS', '-fsanitize=fuzzer') conf.env.append_unique('LINKFLAGS', '-fsanitize=fuzzer') def add_runner_target(bld, lib, func): source = bld.path.ant_glob('*.c') includes = '.' bld( source = source, target = 'run-fuzzer-' + func, features = 'c cprogram', includes = includes, use = 'DL werror', defines = ['FUNC="Fuzz_' + func + '"', 'LIB="' + lib + '"'], install_path = bld.env.BINDIR, subsystem = bld.env.CONSOLE_SUBSYSTEM ) def build(bld): add_runner_target(bld, 'libxash.so', 'Sound_LoadMPG') add_runner_target(bld, 'libxash.so', 'Sound_ParseID3Tag') add_runner_target(bld, 'libxash.so', 'Sound_LoadWAV') add_runner_target(bld, 'libxash.so', 'Image_LoadBMP') add_runner_target(bld, 'libxash.so', 'Image_LoadPNG') add_runner_target(bld, 'libxash.so', 'Image_LoadDDS') add_runner_target(bld, 'libxash.so', 'Image_LoadTGA')