]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/libfido2/fuzz/CMakeLists.txt
Merge llvm-project release/18.x llvmorg-18.1.1-0-gdba2a75e9c7e
[FreeBSD/FreeBSD.git] / contrib / libfido2 / fuzz / CMakeLists.txt
1 # Copyright (c) 2019-2023 Yubico AB. All rights reserved.
2 # Use of this source code is governed by a BSD-style
3 # license that can be found in the LICENSE file.
4 # SPDX-License-Identifier: BSD-2-Clause
5
6 list(APPEND COMPAT_SOURCES
7         ../openbsd-compat/strlcpy.c
8         ../openbsd-compat/strlcat.c
9 )
10
11 list(APPEND COMMON_SOURCES
12         libfuzzer.c
13         mutator_aux.c
14 )
15
16 # XXX: OSS-Fuzz require linking using CXX
17 set(FUZZ_LINKER_LANGUAGE "C" CACHE STRING "Linker language for fuzz harnesses")
18 mark_as_advanced(FUZZ_LINKER_LANGUAGE)
19 enable_language(${FUZZ_LINKER_LANGUAGE})
20
21 # fuzz_cred
22 add_executable(fuzz_cred fuzz_cred.c ${COMMON_SOURCES} ${COMPAT_SOURCES})
23 set_target_properties(fuzz_cred PROPERTIES
24         LINK_FLAGS ${FUZZ_LDFLAGS}
25         LINKER_LANGUAGE ${FUZZ_LINKER_LANGUAGE})
26 target_link_libraries(fuzz_cred fido2_shared)
27
28 # fuzz_assert
29 add_executable(fuzz_assert fuzz_assert.c ${COMMON_SOURCES} ${COMPAT_SOURCES})
30 set_target_properties(fuzz_assert PROPERTIES
31         LINK_FLAGS ${FUZZ_LDFLAGS}
32         LINKER_LANGUAGE ${FUZZ_LINKER_LANGUAGE})
33 target_link_libraries(fuzz_assert fido2_shared)
34
35 # fuzz_mgmt
36 add_executable(fuzz_mgmt fuzz_mgmt.c ${COMMON_SOURCES} ${COMPAT_SOURCES})
37 set_target_properties(fuzz_mgmt PROPERTIES
38         LINK_FLAGS ${FUZZ_LDFLAGS}
39         LINKER_LANGUAGE ${FUZZ_LINKER_LANGUAGE})
40 target_link_libraries(fuzz_mgmt fido2_shared)
41
42 # fuzz_credman
43 add_executable(fuzz_credman fuzz_credman.c ${COMMON_SOURCES} ${COMPAT_SOURCES})
44 set_target_properties(fuzz_credman PROPERTIES
45         LINK_FLAGS ${FUZZ_LDFLAGS}
46         LINKER_LANGUAGE ${FUZZ_LINKER_LANGUAGE})
47 target_link_libraries(fuzz_credman fido2_shared)
48
49 # fuzz_bio
50 add_executable(fuzz_bio fuzz_bio.c ${COMMON_SOURCES} ${COMPAT_SOURCES})
51 set_target_properties(fuzz_bio PROPERTIES
52         LINK_FLAGS ${FUZZ_LDFLAGS}
53         LINKER_LANGUAGE ${FUZZ_LINKER_LANGUAGE})
54 target_link_libraries(fuzz_bio fido2_shared)
55
56 # fuzz_hid
57 add_executable(fuzz_hid fuzz_hid.c ${COMMON_SOURCES} ${COMPAT_SOURCES})
58 set_target_properties(fuzz_hid PROPERTIES
59         LINK_FLAGS ${FUZZ_LDFLAGS}
60         LINKER_LANGUAGE ${FUZZ_LINKER_LANGUAGE})
61 target_link_libraries(fuzz_hid fido2_shared)
62
63 # fuzz_netlink
64 add_executable(fuzz_netlink fuzz_netlink.c ${COMMON_SOURCES} ${COMPAT_SOURCES})
65 set_target_properties(fuzz_netlink PROPERTIES
66         LINK_FLAGS ${FUZZ_LDFLAGS}
67         LINKER_LANGUAGE ${FUZZ_LINKER_LANGUAGE})
68 target_link_libraries(fuzz_netlink fido2_shared)
69
70 # fuzz_largeblob
71 add_executable(fuzz_largeblob fuzz_largeblob.c ${COMMON_SOURCES} ${COMPAT_SOURCES})
72 set_target_properties(fuzz_largeblob PROPERTIES
73         LINK_FLAGS ${FUZZ_LDFLAGS}
74         LINKER_LANGUAGE ${FUZZ_LINKER_LANGUAGE})
75 target_link_libraries(fuzz_largeblob fido2_shared)
76
77 # fuzz_pcsc
78 add_executable(fuzz_pcsc fuzz_pcsc.c ${COMMON_SOURCES} ${COMPAT_SOURCES})
79 set_target_properties(fuzz_pcsc PROPERTIES
80         LINK_FLAGS ${FUZZ_LDFLAGS}
81         LINKER_LANGUAGE ${FUZZ_LINKER_LANGUAGE})
82 target_link_libraries(fuzz_pcsc fido2_shared)