mirror of https://gitlab.freedesktop.org/mesa/mesa
167 lines
3.9 KiB
Meson
167 lines
3.9 KiB
Meson
# Copyright © 2022 Collabora Ltd. and Red Hat Inc.
|
|
# SPDX-License-Identifier: MIT
|
|
nvk_files = files(
|
|
'../../gallium/auxiliary/tgsi/tgsi_from_mesa.c',
|
|
'nvk_buffer.c',
|
|
'nvk_buffer.h',
|
|
'nvk_buffer_view.c',
|
|
'nvk_buffer_view.h',
|
|
'nvk_cmd_buffer.c',
|
|
'nvk_cmd_buffer.h',
|
|
'nvk_cmd_clear.c',
|
|
'nvk_cmd_copy.c',
|
|
'nvk_cmd_dispatch.c',
|
|
'nvk_cmd_draw.c',
|
|
'nvk_cmd_meta.c',
|
|
'nvk_cmd_pool.c',
|
|
'nvk_cmd_pool.h',
|
|
'nvk_codegen.c',
|
|
'nvk_descriptor_set.h',
|
|
'nvk_descriptor_set.c',
|
|
'nvk_descriptor_set_layout.c',
|
|
'nvk_descriptor_set_layout.h',
|
|
'nvk_descriptor_table.c',
|
|
'nvk_descriptor_table.h',
|
|
'nvk_device.c',
|
|
'nvk_device.h',
|
|
'nvk_device_memory.c',
|
|
'nvk_device_memory.h',
|
|
'nvk_event.c',
|
|
'nvk_event.h',
|
|
'nvk_format.c',
|
|
'nvk_format.h',
|
|
'nvk_heap.c',
|
|
'nvk_heap.h',
|
|
'nvk_image.c',
|
|
'nvk_image.h',
|
|
'nvk_image_view.c',
|
|
'nvk_image_view.h',
|
|
'nvk_instance.c',
|
|
'nvk_instance.h',
|
|
'nvk_mme.c',
|
|
'nvk_mme.h',
|
|
'nvk_nir_lower_descriptors.c',
|
|
'nvk_physical_device.c',
|
|
'nvk_physical_device.h',
|
|
'nvk_private.h',
|
|
'nvk_query_pool.c',
|
|
'nvk_query_pool.h',
|
|
'nvk_queue.c',
|
|
'nvk_queue.h',
|
|
'nvk_queue_drm_nouveau.c',
|
|
'nvk_sampler.c',
|
|
'nvk_sampler.h',
|
|
'nvk_shader.c',
|
|
'nvk_shader.h',
|
|
'nvk_upload_queue.c',
|
|
'nvk_upload_queue.h',
|
|
'nvk_wsi.c',
|
|
'nvk_wsi.h'
|
|
)
|
|
|
|
nvk_entrypoints = custom_target(
|
|
'nvk_entrypoints',
|
|
input : [vk_entrypoints_gen, vk_api_xml],
|
|
output : ['nvk_entrypoints.h', 'nvk_entrypoints.c'],
|
|
command : [
|
|
prog_python, '@INPUT0@', '--xml', '@INPUT1@', '--proto', '--weak',
|
|
'--out-h', '@OUTPUT0@', '--out-c', '@OUTPUT1@', '--prefix', 'nvk',
|
|
'--beta', with_vulkan_beta.to_string(),
|
|
],
|
|
depend_files : vk_entrypoints_gen_depend_files,
|
|
)
|
|
|
|
nvk_deps = [
|
|
dep_libdrm,
|
|
idep_nak,
|
|
idep_nil,
|
|
idep_nir,
|
|
idep_nouveau_mme,
|
|
idep_nouveau_ws,
|
|
idep_nvidia_headers,
|
|
idep_vulkan_runtime,
|
|
idep_vulkan_util,
|
|
idep_vulkan_wsi,
|
|
idep_vulkan_wsi_headers,
|
|
]
|
|
|
|
libnvk = static_library(
|
|
'nvk',
|
|
[
|
|
nvk_entrypoints,
|
|
cl_generated,
|
|
nvk_files,
|
|
sha1_h,
|
|
],
|
|
include_directories : [
|
|
inc_gallium,
|
|
inc_gallium_aux,
|
|
inc_include,
|
|
inc_src,
|
|
],
|
|
link_with : [libnouveau_codegen],
|
|
dependencies : [nvk_deps, idep_nouveau_codegen],
|
|
gnu_symbol_visibility : 'hidden',
|
|
)
|
|
|
|
libvulkan_nouveau = shared_library(
|
|
'vulkan_nouveau',
|
|
link_whole : [libnvk],
|
|
link_args: [ld_args_build_id],
|
|
gnu_symbol_visibility : 'hidden',
|
|
install : true,
|
|
)
|
|
|
|
icd_lib_path = join_paths(get_option('prefix'), get_option('libdir'))
|
|
icd_file_name = 'libvulkan_nouveau.so'
|
|
if with_platform_windows
|
|
icd_lib_path = import('fs').relative_to(get_option('bindir'), with_vulkan_icd_dir)
|
|
icd_file_name = 'vulkan_nouveau.dll'
|
|
endif
|
|
|
|
nouveau_icd = custom_target(
|
|
'nouveau_icd',
|
|
input : [vk_icd_gen, vk_api_xml],
|
|
output : 'nouveau_icd.@0@.json'.format(host_machine.cpu()),
|
|
command : [
|
|
prog_python, '@INPUT0@',
|
|
'--api-version', '1.3', '--xml', '@INPUT1@',
|
|
'--lib-path', join_paths(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 = 'nouveau_devenv_icd.@0@.json'.format(host_machine.cpu())
|
|
custom_target(
|
|
'nouveau_devenv_icd',
|
|
input : [vk_icd_gen, vk_api_xml],
|
|
output : _dev_icdname,
|
|
command : [
|
|
prog_python, '@INPUT0@',
|
|
'--api-version', '1.3', '--xml', '@INPUT1@',
|
|
'--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)
|
|
|
|
if with_tests and not with_platform_android
|
|
test(
|
|
'nvk_mme',
|
|
executable(
|
|
'test_nvk_mme',
|
|
files('test_nvk_mme.c'),
|
|
dependencies : [nvk_deps],
|
|
link_with : [libnvk],
|
|
)
|
|
)
|
|
endif
|