# dxvk-native D3D9 (native-1.9.2b, patched for mobile GPUs). Source list and
# generated shader headers come from a desktop meson build (tools/make_android.py).
add_library(dxvk_d3d9 SHARED
    src/d3d9/d3d9_adapter.cpp
    src/d3d9/d3d9_buffer.cpp
    src/d3d9/d3d9_common_buffer.cpp
    src/d3d9/d3d9_common_texture.cpp
    src/d3d9/d3d9_cursor.cpp
    src/d3d9/d3d9_device.cpp
    src/d3d9/d3d9_fixed_function.cpp
    src/d3d9/d3d9_format.cpp
    src/d3d9/d3d9_format_helpers.cpp
    src/d3d9/d3d9_hud.cpp
    src/d3d9/d3d9_initializer.cpp
    src/d3d9/d3d9_interface.cpp
    src/d3d9/d3d9_main.cpp
    src/d3d9/d3d9_monitor.cpp
    src/d3d9/d3d9_multithread.cpp
    src/d3d9/d3d9_names.cpp
    src/d3d9/d3d9_options.cpp
    src/d3d9/d3d9_query.cpp
    src/d3d9/d3d9_sampler.cpp
    src/d3d9/d3d9_shader.cpp
    src/d3d9/d3d9_state.cpp
    src/d3d9/d3d9_stateblock.cpp
    src/d3d9/d3d9_surface.cpp
    src/d3d9/d3d9_swapchain.cpp
    src/d3d9/d3d9_swvp_emu.cpp
    src/d3d9/d3d9_texture.cpp
    src/d3d9/d3d9_util.cpp
    src/d3d9/d3d9_vertex_declaration.cpp
    src/d3d9/d3d9_volume.cpp
    src/dxso/dxso_analysis.cpp
    src/dxso/dxso_code.cpp
    src/dxso/dxso_common.cpp
    src/dxso/dxso_compiler.cpp
    src/dxso/dxso_ctab.cpp
    src/dxso/dxso_decoder.cpp
    src/dxso/dxso_enums.cpp
    src/dxso/dxso_header.cpp
    src/dxso/dxso_module.cpp
    src/dxso/dxso_options.cpp
    src/dxso/dxso_reader.cpp
    src/dxso/dxso_tables.cpp
    src/dxso/dxso_util.cpp
    src/dxvk/dxvk_adapter.cpp
    src/dxvk/dxvk_barrier.cpp
    src/dxvk/dxvk_buffer.cpp
    src/dxvk/dxvk_cmdlist.cpp
    src/dxvk/dxvk_compute.cpp
    src/dxvk/dxvk_context.cpp
    src/dxvk/dxvk_cs.cpp
    src/dxvk/dxvk_data.cpp
    src/dxvk/dxvk_descriptor.cpp
    src/dxvk/dxvk_device.cpp
    src/dxvk/dxvk_device_filter.cpp
    src/dxvk/dxvk_extensions.cpp
    src/dxvk/dxvk_format.cpp
    src/dxvk/dxvk_framebuffer.cpp
    src/dxvk/dxvk_gpu_event.cpp
    src/dxvk/dxvk_gpu_query.cpp
    src/dxvk/dxvk_graphics.cpp
    src/dxvk/dxvk_image.cpp
    src/dxvk/dxvk_instance.cpp
    src/dxvk/dxvk_lifetime.cpp
    src/dxvk/dxvk_main.cpp
    src/dxvk/dxvk_memory.cpp
    src/dxvk/dxvk_meta_blit.cpp
    src/dxvk/dxvk_meta_clear.cpp
    src/dxvk/dxvk_meta_copy.cpp
    src/dxvk/dxvk_meta_mipgen.cpp
    src/dxvk/dxvk_meta_pack.cpp
    src/dxvk/dxvk_meta_resolve.cpp
    src/dxvk/dxvk_options.cpp
    src/dxvk/dxvk_pipecache.cpp
    src/dxvk/dxvk_pipelayout.cpp
    src/dxvk/dxvk_pipemanager.cpp
    src/dxvk/dxvk_queue.cpp
    src/dxvk/dxvk_renderpass.cpp
    src/dxvk/dxvk_resource.cpp
    src/dxvk/dxvk_sampler.cpp
    src/dxvk/dxvk_shader.cpp
    src/dxvk/dxvk_shader_key.cpp
    src/dxvk/dxvk_signal.cpp
    src/dxvk/dxvk_spec_const.cpp
    src/dxvk/dxvk_staging.cpp
    src/dxvk/dxvk_state_cache.cpp
    src/dxvk/dxvk_stats.cpp
    src/dxvk/dxvk_swapchain_blitter.cpp
    src/dxvk/dxvk_unbound.cpp
    src/dxvk/dxvk_util.cpp
    src/dxvk/hud/dxvk_hud.cpp
    src/dxvk/hud/dxvk_hud_font.cpp
    src/dxvk/hud/dxvk_hud_item.cpp
    src/dxvk/hud/dxvk_hud_renderer.cpp
    src/dxvk/platform/dxvk_sdl2_exts.cpp
    src/spirv/spirv_code_buffer.cpp
    src/spirv/spirv_compression.cpp
    src/spirv/spirv_module.cpp
    src/util/com/com_guid.cpp
    src/util/com/com_private_data.cpp
    src/util/config/config.cpp
    src/util/log/log.cpp
    src/util/log/log_debug.cpp
    src/util/platform/thread_native.cpp
    src/util/platform/util_env_linux.cpp
    src/util/platform/util_luid_linux.cpp
    src/util/platform/util_string_linux.cpp
    src/util/sha1/sha1.c
    src/util/sha1/sha1_util.cpp
    src/util/sync/sync_recursive.cpp
    src/util/util_env.cpp
    src/util/util_fps_limiter.cpp
    src/util/util_matrix.cpp
    src/util/util_monitor.cpp
    src/vulkan/vulkan_loader.cpp
    src/vulkan/vulkan_names.cpp
    src/vulkan/vulkan_presenter.cpp
    src/wsi/sdl2/wsi_mode_sdl2.cpp
    src/wsi/sdl2/wsi_monitor_sdl2.cpp
    src/wsi/sdl2/wsi_presenter_sdl2.cpp
    src/wsi/sdl2/wsi_window_sdl2.cpp)
target_include_directories(dxvk_d3d9 PRIVATE
    generated include include/native include/native/windows include/native/directx
    src/util src/dxvk src/d3d9 src/dxso src/wsi src/spirv src/vulkan ../sdlinc)
target_include_directories(dxvk_d3d9 PUBLIC include/native/directx include/native/windows include/native)
target_compile_definitions(dxvk_d3d9 PRIVATE NOMINMAX _WIN32_WINNT=0xa00 DXVK_NATIVE
    DXVK_WSI_SDL2 DXVK_PLATFORM_LINUX _FILE_OFFSET_BITS=64)
target_compile_options(dxvk_d3d9 PRIVATE -O2 "$<$<COMPILE_LANGUAGE:CXX>:SHELL:-include cstdint>" "$<$<COMPILE_LANGUAGE:CXX>:SHELL:-include cstring>"
    -Wno-deprecated-declarations -Wno-everything -fvisibility=default)
target_link_libraries(dxvk_d3d9 PRIVATE SDL2 vulkan $<$<BOOL:${ANDROID}>:log>)
