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.

llvm-svn: 312200
This commit is contained in:
Justin Bogner 2017-08-31 00:36:33 +00:00
parent 28454efc67
commit 5204717208
7 changed files with 52 additions and 70 deletions

View File

@ -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

View File

@ -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()
add_llvm_fuzzer(llvm-as-fuzzer llvm-as-fuzzer.cpp)

View File

@ -11,6 +11,4 @@ add_llvm_tool(llvm-dwarfdump
llvm-dwarfdump.cpp
)
if(LLVM_USE_SANITIZE_COVERAGE)
add_subdirectory(fuzzer)
endif()

View File

@ -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
)

View File

@ -1,6 +1,3 @@
if( LLVM_USE_SANITIZE_COVERAGE )
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=fuzzer")
set(LLVM_LINK_COMPONENTS
${LLVM_TARGETS_TO_BUILD}
Analysis
@ -15,6 +12,4 @@ if( LLVM_USE_SANITIZE_COVERAGE )
Support
Target
)
add_llvm_tool(llvm-isel-fuzzer
llvm-isel-fuzzer.cpp)
endif()
add_llvm_fuzzer(llvm-isel-fuzzer llvm-isel-fuzzer.cpp)

View File

@ -1,6 +1,3 @@
if( LLVM_USE_SANITIZE_COVERAGE )
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=fuzzer")
set(LLVM_LINK_COMPONENTS
AllTargetsAsmPrinters
AllTargetsAsmParsers
@ -10,7 +7,4 @@ if( LLVM_USE_SANITIZE_COVERAGE )
MCParser
Support
)
add_llvm_tool(llvm-mc-assemble-fuzzer
llvm-mc-assemble-fuzzer.cpp)
endif()
add_llvm_fuzzer(llvm-mc-assemble-fuzzer llvm-mc-assemble-fuzzer.cpp)

View File

@ -1,6 +1,3 @@
if( LLVM_USE_SANITIZE_COVERAGE )
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=fuzzer")
set(LLVM_LINK_COMPONENTS
AllTargetsAsmPrinters
AllTargetsDescs
@ -11,6 +8,4 @@ if( LLVM_USE_SANITIZE_COVERAGE )
MCParser
Support
)
add_llvm_tool(llvm-mc-disassemble-fuzzer
llvm-mc-disassemble-fuzzer.cpp)
endif()
add_llvm_fuzzer(llvm-mc-disassemble-fuzzer llvm-mc-disassemble-fuzzer.cpp)