]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[#3729] The remaining Meson C++ targets
authorAndrei Pavel <andrei@isc.org>
Tue, 4 Feb 2025 14:58:43 +0000 (16:58 +0200)
committerAndrei Pavel <andrei@isc.org>
Thu, 13 Feb 2025 08:05:19 +0000 (10:05 +0200)
fuzz/input/meson.build [new file with mode: 0644]
fuzz/meson.build [new file with mode: 0644]
fuzz/tests/meson.build [new file with mode: 0644]
meson.build

diff --git a/fuzz/input/meson.build b/fuzz/input/meson.build
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/fuzz/meson.build b/fuzz/meson.build
new file mode 100644 (file)
index 0000000..bba238e
--- /dev/null
@@ -0,0 +1,33 @@
+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,
+)
diff --git a/fuzz/tests/meson.build b/fuzz/tests/meson.build
new file mode 100644 (file)
index 0000000..e69de29
index ab6c2cce46ebd7232a33e28acccd899426156f10..9fc51f219329b932c3ecc4a68b1b79c33bfecd1c 100644 (file)
@@ -20,6 +20,9 @@ KEA_ADMIN = f'@TOP_BUILD_DIR@/src/bin/admin/kea-admin'
 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(
@@ -287,12 +290,12 @@ message(f'Detected system "@SYSTEM@".')
 
 #### 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')
@@ -332,6 +335,7 @@ INCLUDES = [
 
 LIBS_BUILT_SO_FAR = []
 subdir('src')
+subdir('fuzz')
 if have_premium
     subdir('premium')
 endif