From 33a778823ba743242b7332a8608ec084e4319d3f Mon Sep 17 00:00:00 2001 From: Justin Bogner Date: Thu, 31 Aug 2017 00:36:33 +0000 Subject: [PATCH] cmake: Invent add_llvm_fuzzer to set up fuzzer targets This moves the cmake configuration for fuzzers in LLVM to a new macro, add_llvm_fuzzer. This will make it easier to keep things consistent while implementing llvm.org/pr34314. I've also made a couple of minor functional changes here: - the fuzzers now use add_llvm_executable rather than add_llvm_tool. This means they won't create install targets and stuff like that, because those made little sense for these fuzzers. - I've grouped these under "Fuzzers" rather than in with "Tools" for people who build with IDEs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@312200 91177308-0d34-0410-b5e6-96231b3b80d8 --- cmake/modules/AddLLVM.cmake | 7 ++++ tools/llvm-as-fuzzer/CMakeLists.txt | 19 ++++------ tools/llvm-dwarfdump/CMakeLists.txt | 4 +-- tools/llvm-dwarfdump/fuzzer/CMakeLists.txt | 4 +-- tools/llvm-isel-fuzzer/CMakeLists.txt | 35 ++++++++----------- tools/llvm-mc-assemble-fuzzer/CMakeLists.txt | 26 ++++++-------- .../llvm-mc-disassemble-fuzzer/CMakeLists.txt | 27 ++++++-------- 7 files changed, 52 insertions(+), 70 deletions(-) diff --git a/cmake/modules/AddLLVM.cmake b/cmake/modules/AddLLVM.cmake index 1c922651b13..8c884db4706 100644 --- a/cmake/modules/AddLLVM.cmake +++ b/cmake/modules/AddLLVM.cmake @@ -892,6 +892,13 @@ macro(add_llvm_utility name) endif() endmacro(add_llvm_utility name) +macro(add_llvm_fuzzer name) + if( LLVM_USE_SANITIZE_COVERAGE ) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=fuzzer") + add_llvm_executable(${name} ${ARGN}) + set_target_properties(${name} PROPERTIES FOLDER "Fuzzers") + endif() +endmacro() macro(add_llvm_target target_name) include_directories(BEFORE diff --git a/tools/llvm-as-fuzzer/CMakeLists.txt b/tools/llvm-as-fuzzer/CMakeLists.txt index 93b1cc1cb4c..4d75ad4825a 100644 --- a/tools/llvm-as-fuzzer/CMakeLists.txt +++ b/tools/llvm-as-fuzzer/CMakeLists.txt @@ -1,12 +1,7 @@ -if( LLVM_USE_SANITIZE_COVERAGE ) - - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=fuzzer") - set(LLVM_LINK_COMPONENTS - AsmParser - BitWriter - Core - Support - ) - add_llvm_tool(llvm-as-fuzzer - llvm-as-fuzzer.cpp) -endif() +set(LLVM_LINK_COMPONENTS + AsmParser + BitWriter + Core + Support +) +add_llvm_fuzzer(llvm-as-fuzzer llvm-as-fuzzer.cpp) diff --git a/tools/llvm-dwarfdump/CMakeLists.txt b/tools/llvm-dwarfdump/CMakeLists.txt index 68f3cadf2cc..23fee30bfa4 100644 --- a/tools/llvm-dwarfdump/CMakeLists.txt +++ b/tools/llvm-dwarfdump/CMakeLists.txt @@ -11,6 +11,4 @@ add_llvm_tool(llvm-dwarfdump llvm-dwarfdump.cpp ) -if(LLVM_USE_SANITIZE_COVERAGE) - add_subdirectory(fuzzer) -endif() +add_subdirectory(fuzzer) diff --git a/tools/llvm-dwarfdump/fuzzer/CMakeLists.txt b/tools/llvm-dwarfdump/fuzzer/CMakeLists.txt index a8c49e329e1..318c4f7bfce 100644 --- a/tools/llvm-dwarfdump/fuzzer/CMakeLists.txt +++ b/tools/llvm-dwarfdump/fuzzer/CMakeLists.txt @@ -4,9 +4,7 @@ set(LLVM_LINK_COMPONENTS Support ) -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=fuzzer") - -add_llvm_executable(llvm-dwarfdump-fuzzer +add_llvm_fuzzer(llvm-dwarfdump-fuzzer EXCLUDE_FROM_ALL llvm-dwarfdump-fuzzer.cpp ) diff --git a/tools/llvm-isel-fuzzer/CMakeLists.txt b/tools/llvm-isel-fuzzer/CMakeLists.txt index c53e3a381ee..474bcf928eb 100644 --- a/tools/llvm-isel-fuzzer/CMakeLists.txt +++ b/tools/llvm-isel-fuzzer/CMakeLists.txt @@ -1,20 +1,15 @@ -if( LLVM_USE_SANITIZE_COVERAGE ) - - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=fuzzer") - set(LLVM_LINK_COMPONENTS - ${LLVM_TARGETS_TO_BUILD} - Analysis - AsmPrinter - CodeGen - Core - FuzzMutate - IRReader - MC - ScalarOpts - SelectionDAG - Support - Target - ) - add_llvm_tool(llvm-isel-fuzzer - llvm-isel-fuzzer.cpp) -endif() +set(LLVM_LINK_COMPONENTS + ${LLVM_TARGETS_TO_BUILD} + Analysis + AsmPrinter + CodeGen + Core + FuzzMutate + IRReader + MC + ScalarOpts + SelectionDAG + Support + Target +) +add_llvm_fuzzer(llvm-isel-fuzzer llvm-isel-fuzzer.cpp) diff --git a/tools/llvm-mc-assemble-fuzzer/CMakeLists.txt b/tools/llvm-mc-assemble-fuzzer/CMakeLists.txt index 9edc245759b..3545d53503b 100644 --- a/tools/llvm-mc-assemble-fuzzer/CMakeLists.txt +++ b/tools/llvm-mc-assemble-fuzzer/CMakeLists.txt @@ -1,16 +1,10 @@ -if( LLVM_USE_SANITIZE_COVERAGE ) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=fuzzer") - - set(LLVM_LINK_COMPONENTS - AllTargetsAsmPrinters - AllTargetsAsmParsers - AllTargetsDescs - AllTargetsInfos - MC - MCParser - Support - ) - - add_llvm_tool(llvm-mc-assemble-fuzzer - llvm-mc-assemble-fuzzer.cpp) -endif() +set(LLVM_LINK_COMPONENTS + AllTargetsAsmPrinters + AllTargetsAsmParsers + AllTargetsDescs + AllTargetsInfos + MC + MCParser + Support +) +add_llvm_fuzzer(llvm-mc-assemble-fuzzer llvm-mc-assemble-fuzzer.cpp) diff --git a/tools/llvm-mc-disassemble-fuzzer/CMakeLists.txt b/tools/llvm-mc-disassemble-fuzzer/CMakeLists.txt index 4371cf68a73..60b08062d09 100644 --- a/tools/llvm-mc-disassemble-fuzzer/CMakeLists.txt +++ b/tools/llvm-mc-disassemble-fuzzer/CMakeLists.txt @@ -1,16 +1,11 @@ -if( LLVM_USE_SANITIZE_COVERAGE ) - - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=fuzzer") - set(LLVM_LINK_COMPONENTS - AllTargetsAsmPrinters - AllTargetsDescs - AllTargetsDisassemblers - AllTargetsInfos - MC - MCDisassembler - MCParser - Support - ) - add_llvm_tool(llvm-mc-disassemble-fuzzer - llvm-mc-disassemble-fuzzer.cpp) -endif() +set(LLVM_LINK_COMPONENTS + AllTargetsAsmPrinters + AllTargetsDescs + AllTargetsDisassemblers + AllTargetsInfos + MC + MCDisassembler + MCParser + Support +) +add_llvm_fuzzer(llvm-mc-disassemble-fuzzer llvm-mc-disassemble-fuzzer.cpp) -- 2.50.1