]> granicus.if.org Git - llvm/commitdiff
cmake: Invent add_llvm_fuzzer to set up fuzzer targets
authorJustin Bogner <mail@justinbogner.com>
Thu, 31 Aug 2017 00:36:33 +0000 (00:36 +0000)
committerJustin Bogner <mail@justinbogner.com>
Thu, 31 Aug 2017 00:36:33 +0000 (00:36 +0000)
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
tools/llvm-as-fuzzer/CMakeLists.txt
tools/llvm-dwarfdump/CMakeLists.txt
tools/llvm-dwarfdump/fuzzer/CMakeLists.txt
tools/llvm-isel-fuzzer/CMakeLists.txt
tools/llvm-mc-assemble-fuzzer/CMakeLists.txt
tools/llvm-mc-disassemble-fuzzer/CMakeLists.txt

index 1c922651b13398c69acd49a0a2853db156ae6182..8c884db47061d4e5e6e811a1f001cfe201290de6 100644 (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
index 93b1cc1cb4c5d827abc44f6070c300d974c1a4ff..4d75ad4825a8fa56d3ede4d6e698c113dc634fb1 100644 (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()
+set(LLVM_LINK_COMPONENTS
+    AsmParser
+    BitWriter
+    Core
+    Support
+)
+add_llvm_fuzzer(llvm-as-fuzzer llvm-as-fuzzer.cpp)
index 68f3cadf2ccfdccde488b89a0b53945399c4b8fd..23fee30bfa442ae8cbb5f9ab3492fefad6e441e7 100644 (file)
@@ -11,6 +11,4 @@ add_llvm_tool(llvm-dwarfdump
   llvm-dwarfdump.cpp
   )
 
-if(LLVM_USE_SANITIZE_COVERAGE)
-  add_subdirectory(fuzzer)
-endif()
+add_subdirectory(fuzzer)
index a8c49e329e14a401618a89a4ccda4862640ad9b9..318c4f7bfce44be75b62d077e4504671636fc5a5 100644 (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
   )
index c53e3a381ee4e3bb0f5a1682c7e08cb2a14b74a0..474bcf928ebb128064cae582c85a37a9fbfbeade 100644 (file)
@@ -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)
index 9edc245759bc999b59bd6abcacbf6fd97f6e4e21..3545d53503b716fb208d6f75908a6e6b2b1658c0 100644 (file)
@@ -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)
index 4371cf68a7304c0cdf830293d66ed024bd10de19..60b08062d09f086a69be3a811afd83fdc42c45ba 100644 (file)
@@ -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)