solidity/test/tools/ossfuzz/CMakeLists.txt

241 lines
9.3 KiB
CMake
Raw Normal View History

add_custom_target(ossfuzz)
add_dependencies(ossfuzz
2021-02-05 11:29:52 +00:00
solc_ossfuzz
solc_mutator_ossfuzz
const_opt_ossfuzz
strictasm_diff_ossfuzz
strictasm_opt_ossfuzz
strictasm_assembly_ossfuzz
)
2019-05-22 08:15:28 +00:00
if (OSSFUZZ)
add_custom_target(ossfuzz_proto)
add_dependencies(ossfuzz_proto
2020-12-08 20:06:10 +00:00
sol_proto_ossfuzz
yul_proto_ossfuzz
yul_proto_diff_ossfuzz
yul_proto_diff_custom_mutate_ossfuzz
)
add_custom_target(ossfuzz_abiv2)
add_dependencies(ossfuzz_abiv2 abiv2_proto_ossfuzz abiv2_isabelle_ossfuzz)
2019-05-22 08:15:28 +00:00
endif()
2019-05-22 08:15:28 +00:00
if (OSSFUZZ)
2021-02-05 11:29:52 +00:00
add_executable(solc_ossfuzz
solc_ossfuzz.cpp
2020-08-26 09:37:40 +00:00
../fuzzer_common.cpp
../../TestCaseReader.cpp
)
2021-02-05 11:29:52 +00:00
target_link_libraries(solc_ossfuzz PRIVATE libsolc evmasm)
set_target_properties(solc_ossfuzz PROPERTIES LINK_FLAGS ${LIB_FUZZING_ENGINE})
2019-05-22 08:15:28 +00:00
2021-02-05 11:29:52 +00:00
add_executable(solc_mutator_ossfuzz
solc_ossfuzz.cpp
../fuzzer_common.cpp
../../TestCaseReader.cpp
SolidityGenerator.cpp
SolidityCustomMutatorInterface.cpp
)
2021-02-05 11:29:52 +00:00
target_link_libraries(solc_mutator_ossfuzz PRIVATE libsolc evmasm)
set_target_properties(solc_mutator_ossfuzz PROPERTIES LINK_FLAGS ${LIB_FUZZING_ENGINE})
2019-05-22 08:15:28 +00:00
add_executable(const_opt_ossfuzz const_opt_ossfuzz.cpp ../fuzzer_common.cpp)
target_link_libraries(const_opt_ossfuzz PRIVATE libsolc evmasm)
set_target_properties(const_opt_ossfuzz PROPERTIES LINK_FLAGS ${LIB_FUZZING_ENGINE})
2019-05-22 08:15:28 +00:00
add_executable(strictasm_diff_ossfuzz strictasm_diff_ossfuzz.cpp yulFuzzerCommon.cpp)
target_link_libraries(strictasm_diff_ossfuzz PRIVATE libsolc evmasm yulInterpreter)
set_target_properties(strictasm_diff_ossfuzz PROPERTIES LINK_FLAGS ${LIB_FUZZING_ENGINE})
2019-05-22 08:15:28 +00:00
add_executable(strictasm_opt_ossfuzz strictasm_opt_ossfuzz.cpp)
target_link_libraries(strictasm_opt_ossfuzz PRIVATE yul)
set_target_properties(strictasm_opt_ossfuzz PROPERTIES LINK_FLAGS ${LIB_FUZZING_ENGINE})
2019-05-22 08:15:28 +00:00
add_executable(strictasm_assembly_ossfuzz strictasm_assembly_ossfuzz.cpp)
target_link_libraries(strictasm_assembly_ossfuzz PRIVATE yul)
set_target_properties(strictasm_assembly_ossfuzz PROPERTIES LINK_FLAGS ${LIB_FUZZING_ENGINE})
2019-05-22 08:15:28 +00:00
add_executable(yul_proto_ossfuzz
yulProtoFuzzer.cpp
protoToYul.cpp
yulProto.pb.cc
../../libyul/YulOptimizerTestCommon.cpp
)
target_include_directories(yul_proto_ossfuzz PRIVATE /usr/include/libprotobuf-mutator)
target_link_libraries(yul_proto_ossfuzz PRIVATE yul
2019-05-22 08:15:28 +00:00
protobuf-mutator-libfuzzer.a
protobuf-mutator.a
protobuf.a
)
set_target_properties(yul_proto_ossfuzz PROPERTIES LINK_FLAGS ${LIB_FUZZING_ENGINE})
2020-12-08 20:06:10 +00:00
target_compile_options(yul_proto_ossfuzz PUBLIC ${COMPILE_OPTIONS} -Wno-sign-conversion -Wno-suggest-destructor-override -Wno-inconsistent-missing-destructor-override)
2019-05-22 08:15:28 +00:00
add_executable(
yul_proto_diff_ossfuzz
yulProto_diff_ossfuzz.cpp
yulFuzzerCommon.cpp
protoToYul.cpp
yulProto.pb.cc
../../libyul/YulOptimizerTestCommon.cpp
)
target_include_directories(yul_proto_diff_ossfuzz PRIVATE /usr/include/libprotobuf-mutator)
target_link_libraries(yul_proto_diff_ossfuzz PRIVATE yul
2019-05-22 08:15:28 +00:00
yulInterpreter
protobuf-mutator-libfuzzer.a
protobuf-mutator.a
protobuf.a
)
set_target_properties(yul_proto_diff_ossfuzz PROPERTIES LINK_FLAGS ${LIB_FUZZING_ENGINE})
2020-12-08 20:06:10 +00:00
target_compile_options(yul_proto_diff_ossfuzz PUBLIC ${COMPILE_OPTIONS} -Wno-sign-conversion -Wno-suggest-destructor-override -Wno-inconsistent-missing-destructor-override)
add_executable(yul_proto_diff_custom_mutate_ossfuzz
yulProto_diff_ossfuzz.cpp
yulFuzzerCommon.cpp
protoToYul.cpp
yulProto.pb.cc
protomutators/YulProtoMutator.cpp
../../libyul/YulOptimizerTestCommon.cpp
)
target_include_directories(yul_proto_diff_custom_mutate_ossfuzz PRIVATE /usr/include/libprotobuf-mutator)
target_link_libraries(yul_proto_diff_custom_mutate_ossfuzz PRIVATE yul
yulInterpreter
protobuf-mutator-libfuzzer.a
protobuf-mutator.a
protobuf.a
)
set_target_properties(yul_proto_diff_custom_mutate_ossfuzz PROPERTIES LINK_FLAGS ${LIB_FUZZING_ENGINE})
2020-12-08 20:06:10 +00:00
target_compile_options(yul_proto_diff_custom_mutate_ossfuzz PUBLIC ${COMPILE_OPTIONS} -Wno-sign-conversion -Wno-suggest-destructor-override -Wno-inconsistent-missing-destructor-override)
add_executable(abiv2_proto_ossfuzz
../../EVMHost.cpp
abiV2ProtoFuzzer.cpp
abiV2FuzzerCommon.cpp
protoToAbiV2.cpp
abiV2Proto.pb.cc
)
target_include_directories(abiv2_proto_ossfuzz PRIVATE
/usr/include/libprotobuf-mutator
)
target_link_libraries(abiv2_proto_ossfuzz PRIVATE solidity
evmc
evmone-standalone
protobuf-mutator-libfuzzer.a
protobuf-mutator.a
protobuf.a
)
set_target_properties(abiv2_proto_ossfuzz PROPERTIES LINK_FLAGS ${LIB_FUZZING_ENGINE})
2020-12-08 20:06:10 +00:00
target_compile_options(abiv2_proto_ossfuzz PUBLIC ${COMPILE_OPTIONS} -Wno-sign-conversion -Wno-suggest-destructor-override -Wno-inconsistent-missing-destructor-override)
add_executable(abiv2_isabelle_ossfuzz
../../EVMHost.cpp
AbiV2IsabelleFuzzer.cpp
abiV2FuzzerCommon.cpp
protoToAbiV2.cpp
abiV2Proto.pb.cc
)
target_include_directories(abiv2_isabelle_ossfuzz PRIVATE
/usr/include/libprotobuf-mutator
)
target_link_libraries(abiv2_isabelle_ossfuzz PRIVATE solidity
evmc
evmone-standalone
protobuf-mutator-libfuzzer.a
protobuf-mutator.a
protobuf.a
abicoder
gmp.a
)
set_target_properties(abiv2_isabelle_ossfuzz PROPERTIES LINK_FLAGS ${LIB_FUZZING_ENGINE})
2020-12-08 20:06:10 +00:00
target_compile_options(abiv2_isabelle_ossfuzz PUBLIC ${COMPILE_OPTIONS} -Wno-sign-conversion -Wno-suggest-destructor-override -Wno-inconsistent-missing-destructor-override)
add_executable(sol_proto_ossfuzz
solProtoFuzzer.cpp
protoToSol.cpp
solProto.pb.cc
abiV2FuzzerCommon.cpp
../../EVMHost.cpp
)
target_include_directories(sol_proto_ossfuzz PRIVATE
/usr/include/libprotobuf-mutator
)
target_link_libraries(sol_proto_ossfuzz PRIVATE solidity libsolc
evmc
evmone-standalone
protobuf-mutator-libfuzzer.a
protobuf-mutator.a
protobuf.a
)
set_target_properties(sol_proto_ossfuzz PROPERTIES LINK_FLAGS ${LIB_FUZZING_ENGINE})
2020-12-08 20:06:10 +00:00
target_compile_options(sol_proto_ossfuzz PUBLIC ${COMPILE_OPTIONS} -Wno-sign-conversion -Wno-suggest-destructor-override -Wno-inconsistent-missing-destructor-override)
2019-05-22 08:15:28 +00:00
else()
2021-02-05 11:29:52 +00:00
add_library(solc_ossfuzz
solc_ossfuzz.cpp
2019-05-22 08:15:28 +00:00
../fuzzer_common.cpp
)
2021-02-05 11:29:52 +00:00
target_link_libraries(solc_ossfuzz PRIVATE libsolc evmasm)
2019-05-22 08:15:28 +00:00
2021-02-05 11:29:52 +00:00
add_library(solc_mutator_ossfuzz
solc_ossfuzz.cpp
../fuzzer_common.cpp
)
2021-02-05 11:29:52 +00:00
target_link_libraries(solc_mutator_ossfuzz PRIVATE libsolc evmasm)
2019-05-22 08:15:28 +00:00
add_library(const_opt_ossfuzz
const_opt_ossfuzz.cpp
../fuzzer_common.cpp)
target_link_libraries(const_opt_ossfuzz PRIVATE libsolc evmasm)
add_library(strictasm_diff_ossfuzz
strictasm_diff_ossfuzz.cpp
yulFuzzerCommon.cpp
)
target_link_libraries(strictasm_diff_ossfuzz PRIVATE libsolc evmasm yulInterpreter)
add_library(strictasm_opt_ossfuzz
strictasm_opt_ossfuzz.cpp
)
target_link_libraries(strictasm_opt_ossfuzz PRIVATE yul)
add_library(strictasm_assembly_ossfuzz
strictasm_assembly_ossfuzz.cpp
)
target_link_libraries(strictasm_assembly_ossfuzz PRIVATE yul)
# add_executable(yul_proto_ossfuzz yulProtoFuzzer.cpp protoToYul.cpp yulProto.pb.cc)
# target_include_directories(yul_proto_ossfuzz PRIVATE /src/libprotobuf-mutator /src/LPM/external.protobuf/include)
# target_link_libraries(yul_proto_ossfuzz PRIVATE yul
2019-05-22 08:15:28 +00:00
# protobuf-mutator-libfuzzer.a
# protobuf-mutator.a
# protobuf.a
# FuzzingEngine.a)
#
# add_executable(yul_proto_diff_ossfuzz yulProto_diff_ossfuzz.cpp yulFuzzerCommon.cpp protoToYul.cpp yulProto.pb.cc)
# target_include_directories(yul_proto_diff_ossfuzz PRIVATE /src/libprotobuf-mutator /src/LPM/external.protobuf/include)
# target_link_libraries(yul_proto_diff_ossfuzz PRIVATE yul
2019-05-22 08:15:28 +00:00
# yulInterpreter
# protobuf-mutator-libfuzzer.a
# protobuf-mutator.a
# protobuf.a
# FuzzingEngine.a)
# add_executable(abiv2_proto_ossfuzz
# ../../EVMHost.cpp
# abiV2ProtoFuzzer.cpp
# abiV2FuzzerCommon.cpp
# protoToAbiV2.cpp
# abiV2Proto.pb.cc
# )
# target_include_directories(abiv2_proto_ossfuzz PRIVATE
# /src/LPM/external.protobuf/include
# /src/libprotobuf-mutator
# /src/evmone/include
# )
# target_link_libraries(abiv2_proto_ossfuzz PRIVATE solidity
# evmone intx ethash keccak evmc-instructions evmc
# protobuf-mutator-libfuzzer.a
# protobuf-mutator.a
# protobuf.a
# FuzzingEngine.a
# )
endif()