About Social Code
aboutsummaryrefslogtreecommitdiff
path: root/src/frygon/vulkan/meson.build
diff options
context:
space:
mode:
authorLucas Fryzek <lucas.fryzek@fryzekconcepts.com>2025-11-24 19:39:30 -0500
committerLucas Fryzek <lucas.fryzek@fryzekconcepts.com>2025-11-24 19:39:30 -0500
commitb5f3587df4048d2ba807721ff2faea8c8a43a93f (patch)
tree6913f730a41822b98fecd5e82b7cae46164fd9c0 /src/frygon/vulkan/meson.build
parent41c700fdbf1d79dfb571105ee93bfa46da6c8428 (diff)
Diffstat (limited to 'src/frygon/vulkan/meson.build')
-rw-r--r--src/frygon/vulkan/meson.build106
1 files changed, 106 insertions, 0 deletions
diff --git a/src/frygon/vulkan/meson.build b/src/frygon/vulkan/meson.build
new file mode 100644
index 00000000000..44564edd2fc
--- /dev/null
+++ b/src/frygon/vulkan/meson.build
@@ -0,0 +1,106 @@
+# Copyright © 2025 Lucas Francisco Fryzek
+# SPDX-License-Identifier: MIT
+fgvk_files = files(
+ 'fgvk_instance.c',
+ 'fgvk_physical_device.c',
+ 'fgvk_device.c',
+ 'fgvk_device_memory.c',
+ 'fgvk_buffer.c',
+ 'fgvk_format.c',
+ 'fgvk_image.c',
+ 'fgvk_image_view.c',
+ 'fgvk_cmd_buffer.c',
+ 'fgvk_cmd_clear.c',
+ 'fgvk_cmd_draw.c',
+ 'fgvk_cmd_copy.c',
+ 'fgvk_cmd_pool.c',
+ 'fgvk_shader.c',
+ 'fgvk_queue.c',
+)
+
+fgvk_entrypoints = custom_target(
+ 'fgvk_entrypoints',
+ input : [vk_entrypoints_gen, vk_api_xml],
+ output : ['fgvk_entrypoints.h', 'fgvk_entrypoints.c'],
+ command : [
+ prog_python, '@INPUT0@', '--xml', '@INPUT1@', '--proto', '--weak',
+ '--out-h', '@OUTPUT0@', '--out-c', '@OUTPUT1@', '--prefix', 'fgvk',
+ '--beta', with_vulkan_beta.to_string(),
+ ],
+ depend_files : vk_entrypoints_gen_depend_files,
+)
+
+fgvk_deps = [
+ idep_fgcc,
+ idep_nir,
+ idep_fg_headers,
+ idep_vulkan_runtime,
+ idep_vulkan_util,
+ idep_vulkan_wsi,
+ idep_vulkan_wsi_headers,
+]
+
+fgvk_flags = []
+
+libfgvk = static_library(
+ 'fgvk',
+ [
+ fgvk_entrypoints,
+ fgvk_files
+ ],
+ include_directories : [
+ inc_include,
+ inc_src,
+ ],
+ dependencies: fgvk_deps,
+ c_args : [no_override_init_args, fgvk_flags],
+ gnu_symbol_visibility : 'hidden',
+)
+
+libvulkan_frygon = shared_library(
+ 'vulkan_frygon',
+ link_whole : [libfgvk],
+ link_args: [ld_args_build_id, ld_args_bsymbolic, ld_args_gc_sections],
+ gnu_symbol_visibility : 'hidden',
+ install : true,
+)
+
+icd_file_name = libname_prefix + 'vulkan_frygon.' + libname_suffix
+
+frygon_icd = custom_target(
+ 'frygon_icd',
+ input : [vk_icd_gen, vk_api_xml],
+ output : 'frygon_icd.@0@.json'.format(host_machine.cpu()),
+ command : [
+ prog_python, '@INPUT0@',
+ '--api-version', '1.0', '--xml', '@INPUT1@',
+ '--sizeof-pointer', sizeof_pointer,
+ '--lib-path', vulkan_icd_lib_path / icd_file_name,
+ '--out', '@OUTPUT@',
+ ],
+ build_by_default : true,
+ install_dir : with_vulkan_icd_dir,
+ install_tag : 'runtime',
+ install : true,
+)
+
+_dev_icdname = 'frygon_devenv_icd.@0@.json'.format(host_machine.cpu())
+custom_target(
+ 'frygon_devenv_icd',
+ input : [vk_icd_gen, vk_api_xml],
+ output : _dev_icdname,
+ command : [
+ prog_python, '@INPUT0@',
+ '--api-version', '1.4', '--xml', '@INPUT1@',
+ '--sizeof-pointer', sizeof_pointer,
+ '--lib-path', meson.current_build_dir() / icd_file_name,
+ '--out', '@OUTPUT@',
+ ],
+ build_by_default : true,
+)
+
+devenv.append('VK_DRIVER_FILES', meson.current_build_dir() / _dev_icdname)
+# Deprecated: replaced by VK_DRIVER_FILES above
+devenv.append('VK_ICD_FILENAMES', meson.current_build_dir() / _dev_icdname)
+
+