--- /dev/null
+subdir('input')
+subdir('tests')
+
+fuzz_sources = ['fuzz.cc', 'fuzz.h']
+cpp_flags = []
+if FUZZING_IN_CI
+ cpp_flags = ['-fsanitize=fuzzer', '-gdwarf-4']
+else
+ fuzz_sources += ['main.cc']
+endif
+
+fuzz_lib = static_library('fuzz_lib',
+ fuzz_sources,
+ cpp_args: cpp_flags + [
+ f'-DKEA_LFC_SOURCES="@KEA_LFC@"',
+ f'-DKEA_LFC_INSTALLATION="@PREFIX@/sbin/kea-lfc"',
+ ],
+ dependencies: [crypto],
+ include_directories: [include_directories('.')] + INCLUDES,
+ link_with: LIBS_BUILT_SO_FAR,
+)
+
+executable('fuzz_config_kea_dhcp4',
+ 'fuzz_config_kea_dhcp4.cc',
+ fuzz_sources,
+ cpp_args: cpp_flags + [
+ f'-DKEA_LFC_SOURCES="@KEA_LFC@"',
+ f'-DKEA_LFC_INSTALLATION="@PREFIX@/sbin/kea-lfc"',
+ ],
+ dependencies: [crypto],
+ include_directories: [include_directories('.')] + INCLUDES,
+ link_with: [dhcp4_lib, fuzz_lib] + LIBS_BUILT_SO_FAR,
+)
KEA_LFC = f'@TOP_BUILD_DIR@/src/bin/lfc/kea-lfc'
TEST_CA_DIR = f'@TOP_SOURCE_DIR@/src/lib/asiolink/testutils/ca'
+# TODO: Control it via a build option.
+FUZZING_IN_CI = false
+
#### Configuration Data
conf_data = configuration_data(
#### System-specific Compiler Flags
-prefix = get_option('prefix')
+PREFIX = get_option('prefix')
if SYSTEM == 'darwin'
add_project_arguments('-D__APPLE_USE_RFC_3542', language: 'cpp')
- add_project_link_arguments(f'-Wl,-rpath,@prefix@/lib', language: 'cpp')
+ add_project_link_arguments(f'-Wl,-rpath,@PREFIX@/lib', language: 'cpp')
else
- add_project_link_arguments(f'-Wl,-rpath=@prefix@/lib', language: 'cpp')
+ add_project_link_arguments(f'-Wl,-rpath=@PREFIX@/lib', language: 'cpp')
endif
have_premium = fs.is_dir('premium')
LIBS_BUILT_SO_FAR = []
subdir('src')
+subdir('fuzz')
if have_premium
subdir('premium')
endif