xref: /freebsd/contrib/libder/CMakeLists.txt (revision 35c0a8c449fd2b7f75029ebed5e10852240f0865)
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