1*35c0a8c4SKyle Evanscmake_minimum_required(VERSION 3.18) 2*35c0a8c4SKyle Evans 3*35c0a8c4SKyle Evansproject(libder) 4*35c0a8c4SKyle Evans 5*35c0a8c4SKyle Evansif(CMAKE_BUILD_TYPE STREQUAL "Debug") 6*35c0a8c4SKyle Evans if(NOT CMAKE_SYSTEM_NAME STREQUAL "OpenBSD") 7*35c0a8c4SKyle Evans add_compile_options(-fsanitize=address,undefined -fstrict-aliasing) 8*35c0a8c4SKyle Evans add_link_options(-fsanitize=address,undefined -fstrict-aliasing) 9*35c0a8c4SKyle Evans endif() 10*35c0a8c4SKyle Evans 11*35c0a8c4SKyle Evans add_compile_options(-Werror) 12*35c0a8c4SKyle Evansendif() 13*35c0a8c4SKyle Evans 14*35c0a8c4SKyle Evans# AppleClang is excluded for the time being; the version used in GitHub Action 15*35c0a8c4SKyle Evans# runners doesn't seem to have that part of libclang_rt installed, though the 16*35c0a8c4SKyle Evans# -fsanitize=fuzzer-no-link instrumentation seems to be fine. Maybe re-evaluate 17*35c0a8c4SKyle Evans# this for MATCHES as a possibility later. 18*35c0a8c4SKyle Evansif(CMAKE_C_COMPILER_ID STREQUAL "Clang" AND NOT CMAKE_SYSTEM_NAME STREQUAL "OpenBSD") 19*35c0a8c4SKyle Evans set(BUILD_FUZZERS TRUE 20*35c0a8c4SKyle Evans CACHE BOOL "Build the libFuzzer fuzzers (needs llvm)") 21*35c0a8c4SKyle Evanselse() 22*35c0a8c4SKyle Evans set(BUILD_FUZZERS FALSE 23*35c0a8c4SKyle Evans CACHE BOOL "Build the libFuzzer fuzzers (needs llvm)") 24*35c0a8c4SKyle Evansendif() 25*35c0a8c4SKyle Evans 26*35c0a8c4SKyle Evansadd_subdirectory(libder) 27*35c0a8c4SKyle Evansadd_subdirectory(derdump) 28*35c0a8c4SKyle Evansadd_subdirectory(tests) 29