| # Copyright (C) 2018-2021 The ANGLE Project Authors. |
| # Copyright (C) 2019-2024 LunarG, Inc. |
| # |
| # Licensed under the Apache License, Version 2.0 (the "License"); |
| # you may not use this file except in compliance with the License. |
| # You may obtain a copy of the License at |
| # |
| # https://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| # See the License for the specific language governing permissions and |
| # limitations under the License. |
| |
| import("//build_overrides/vulkan_validation_layers.gni") |
| |
| vulkan_undefine_configs = [] |
| if (is_win) { |
| vulkan_undefine_configs += [ "//build/config/win:unicode" ] |
| } |
| |
| vulkan_gen_dir = "$target_gen_dir/$vulkan_gen_subdir" |
| raw_vulkan_gen_dir = rebase_path(vulkan_gen_dir, root_build_dir) |
| |
| vulkan_data_dir = "$root_out_dir/$vulkan_data_subdir" |
| raw_vulkan_data_dir = rebase_path(vulkan_data_dir, root_build_dir) |
| |
| raw_root_out_dir = rebase_path(root_out_dir, root_build_dir) |
| |
| # This special action is needed to remove old VVL objects that are now renamed. |
| action("vulkan_clean_old_validation_layer_objects") { |
| script = "scripts/gn/remove_files.py" |
| |
| # inputs is a (random) new file since the vvl roll, used to ensure the cleanup is done only once |
| inputs = [ "layers/gpu_validation/gpu_validation.cpp" ] |
| outputs = [ "$vulkan_gen_dir/old_vvl_files_are_removed" ] |
| args = [ |
| "$raw_vulkan_gen_dir/old_vvl_files_are_removed", |
| "$raw_root_out_dir/libVkLayer*", |
| "$raw_root_out_dir/VkLayer*", |
| "$raw_vulkan_data_dir/VkLayer*.json", |
| ] |
| } |
| |
| config("generated_layers_config") { |
| if (is_clang) { |
| cflags = [ |
| "-Wno-conversion", |
| "-Wno-deprecated-copy", |
| "-Wno-extra-semi", |
| "-Wno-implicit-fallthrough", |
| "-Wno-missing-field-initializers", |
| "-Wno-newline-eof", |
| "-Wno-sign-compare", |
| "-Wno-unused-const-variable", |
| ] |
| } |
| } |
| |
| config("vulkan_internal_config") { |
| defines = [ "VK_ENABLE_BETA_EXTENSIONS" ] |
| |
| cflags = [] |
| if (is_clang || !is_win) { |
| cflags += [ "-Wno-unused-function" ] |
| } |
| if (is_clang && is_mac) { |
| cflags += [ "-Wno-unguarded-availability-new" ] |
| } |
| |
| # Suppress warnings the vulkan code doesn't comply with. |
| if (is_fuchsia) { |
| configs = [ "//build/config:Wno-unused-but-set-variable" ] |
| } |
| if (is_clang) { |
| cflags += [ "-Wno-extra-semi" ] |
| } |
| } |
| |
| # The validation layers |
| # --------------------- |
| |
| config("vulkan_layer_config") { |
| include_dirs = [ |
| "layers", |
| "layers/external", |
| "layers/vulkan", |
| ] |
| if (is_clang) { |
| cflags = [ "-Wno-extra-semi" ] |
| } |
| } |
| |
| vvl_sources = [ |
| "$vulkan_headers_dir/include/vulkan/vk_layer.h", |
| "$vulkan_headers_dir/include/vulkan/vulkan.h", |
| "layers/best_practices/best_practices_error_enums.h", |
| "layers/best_practices/best_practices_utils.cpp", |
| "layers/best_practices/best_practices_validation.h", |
| "layers/best_practices/bp_buffer.cpp", |
| "layers/best_practices/bp_cmd_buffer.cpp", |
| "layers/best_practices/bp_cmd_buffer_nv.cpp", |
| "layers/best_practices/bp_copy_blit_resolve.cpp", |
| "layers/best_practices/bp_descriptor.cpp", |
| "layers/best_practices/bp_device_memory.cpp", |
| "layers/best_practices/bp_drawdispatch.cpp", |
| "layers/best_practices/bp_framebuffer.cpp", |
| "layers/best_practices/bp_image.cpp", |
| "layers/best_practices/bp_instance_device.cpp", |
| "layers/best_practices/bp_pipeline.cpp", |
| "layers/best_practices/bp_ray_tracing.cpp", |
| "layers/best_practices/bp_render_pass.cpp", |
| "layers/best_practices/bp_state.h", |
| "layers/best_practices/bp_synchronization.cpp", |
| "layers/best_practices/bp_video.cpp", |
| "layers/best_practices/bp_wsi.cpp", |
| "layers/chassis/chassis_modification_state.h", |
| "layers/chassis/layer_chassis_dispatch_manual.cpp", |
| "layers/containers/custom_containers.h", |
| "layers/containers/qfo_transfer.h", |
| "layers/containers/range_vector.h", |
| "layers/containers/subresource_adapter.cpp", |
| "layers/containers/subresource_adapter.h", |
| "layers/core_checks/cc_android.cpp", |
| "layers/core_checks/cc_buffer.cpp", |
| "layers/core_checks/cc_buffer_address.h", |
| "layers/core_checks/cc_cmd_buffer.cpp", |
| "layers/core_checks/cc_cmd_buffer_dynamic.cpp", |
| "layers/core_checks/cc_copy_blit_resolve.cpp", |
| "layers/core_checks/cc_descriptor.cpp", |
| "layers/core_checks/cc_device.cpp", |
| "layers/core_checks/cc_device_memory.cpp", |
| "layers/core_checks/cc_drawdispatch.cpp", |
| "layers/core_checks/cc_external_object.cpp", |
| "layers/core_checks/cc_image.cpp", |
| "layers/core_checks/cc_image_layout.cpp", |
| "layers/core_checks/cc_pipeline.cpp", |
| "layers/core_checks/cc_pipeline_compute.cpp", |
| "layers/core_checks/cc_pipeline_graphics.cpp", |
| "layers/core_checks/cc_pipeline_ray_tracing.cpp", |
| "layers/core_checks/cc_query.cpp", |
| "layers/core_checks/cc_queue.cpp", |
| "layers/core_checks/cc_ray_tracing.cpp", |
| "layers/core_checks/cc_render_pass.cpp", |
| "layers/core_checks/cc_shader_interface.cpp", |
| "layers/core_checks/cc_shader_object.cpp", |
| "layers/core_checks/cc_spirv.cpp", |
| "layers/core_checks/cc_synchronization.cpp", |
| "layers/core_checks/cc_video.cpp", |
| "layers/core_checks/cc_vuid_maps.cpp", |
| "layers/core_checks/cc_vuid_maps.h", |
| "layers/core_checks/cc_wsi.cpp", |
| "layers/core_checks/cc_ycbcr.cpp", |
| "layers/core_checks/core_validation.h", |
| "layers/drawdispatch/descriptor_validator.cpp", |
| "layers/drawdispatch/descriptor_validator.h", |
| "layers/drawdispatch/drawdispatch_vuids.cpp", |
| "layers/drawdispatch/drawdispatch_vuids.h", |
| "layers/external/vma/vk_mem_alloc.h", |
| "layers/external/vma/vma.cpp", |
| "layers/external/vma/vma.h", |
| "layers/gpu_shaders/gpu_error_codes.h", |
| "layers/gpu_shaders/gpu_error_header.h", |
| "layers/gpu_shaders/gpu_shaders_constants.h", |
| "layers/gpu_validation/debug_printf.cpp", |
| "layers/gpu_validation/debug_printf.h", |
| "layers/gpu_validation/gpu_constants.h", |
| "layers/gpu_validation/gpu_descriptor_set.cpp", |
| "layers/gpu_validation/gpu_descriptor_set.h", |
| "layers/gpu_validation/gpu_error_message.cpp", |
| "layers/gpu_validation/gpu_error_message.h", |
| "layers/gpu_validation/gpu_image_layout.cpp", |
| "layers/gpu_validation/gpu_settings.h", |
| "layers/gpu_validation/gpu_state_tracker.cpp", |
| "layers/gpu_validation/gpu_state_tracker.h", |
| "layers/gpu_validation/gpu_subclasses.cpp", |
| "layers/gpu_validation/gpu_subclasses.h", |
| "layers/gpu_validation/gpu_record.cpp", |
| "layers/gpu_validation/gpu_resources.h", |
| "layers/gpu_validation/gpu_settings.h", |
| "layers/gpu_validation/gpu_setup.cpp", |
| "layers/gpu_validation/gpu_validation.cpp", |
| "layers/gpu_validation/gpu_validation.h", |
| "layers/gpu_validation/gpu_vuids.cpp", |
| "layers/gpu_validation/gpu_vuids.h", |
| "layers/gpu_validation/spirv/function_basic_block.cpp", |
| "layers/gpu_validation/spirv/function_basic_block.h", |
| "layers/gpu_validation/spirv/instruction.cpp", |
| "layers/gpu_validation/spirv/instruction.h", |
| "layers/gpu_validation/spirv/link.h", |
| "layers/gpu_validation/spirv/module.cpp", |
| "layers/gpu_validation/spirv/module.h", |
| "layers/gpu_validation/spirv/pass.cpp", |
| "layers/gpu_validation/spirv/pass.h", |
| "layers/gpu_validation/spirv/type_manager.cpp", |
| "layers/gpu_validation/spirv/type_manager.h", |
| "layers/gpu_validation/spirv/bindless_descriptor_pass.h", |
| "layers/gpu_validation/spirv/bindless_descriptor_pass.cpp", |
| "layers/gpu_validation/spirv/buffer_device_address_pass.h", |
| "layers/gpu_validation/spirv/buffer_device_address_pass.cpp", |
| "layers/gpu_validation/spirv/ray_query_pass.h", |
| "layers/gpu_validation/spirv/ray_query_pass.cpp", |
| "layers/layer_options.cpp", |
| "layers/layer_options.h", |
| "layers/object_tracker/object_lifetime_validation.h", |
| "layers/object_tracker/object_tracker_utils.cpp", |
| "layers/state_tracker/buffer_state.cpp", |
| "layers/state_tracker/buffer_state.h", |
| "layers/state_tracker/cmd_buffer_state.cpp", |
| "layers/state_tracker/cmd_buffer_state.h", |
| "layers/state_tracker/descriptor_sets.cpp", |
| "layers/state_tracker/descriptor_sets.h", |
| "layers/state_tracker/device_memory_state.cpp", |
| "layers/state_tracker/device_memory_state.h", |
| "layers/state_tracker/device_state.h", |
| "layers/state_tracker/fence_state.cpp", |
| "layers/state_tracker/fence_state.h", |
| "layers/state_tracker/image_layout_map.cpp", |
| "layers/state_tracker/image_layout_map.h", |
| "layers/state_tracker/image_state.cpp", |
| "layers/state_tracker/image_state.h", |
| "layers/state_tracker/pipeline_layout_state.cpp", |
| "layers/state_tracker/pipeline_layout_state.h", |
| "layers/state_tracker/pipeline_state.cpp", |
| "layers/state_tracker/pipeline_state.h", |
| "layers/state_tracker/pipeline_sub_state.cpp", |
| "layers/state_tracker/pipeline_sub_state.h", |
| "layers/state_tracker/query_state.h", |
| "layers/state_tracker/queue_state.cpp", |
| "layers/state_tracker/queue_state.h", |
| "layers/state_tracker/ray_tracing_state.h", |
| "layers/state_tracker/render_pass_state.cpp", |
| "layers/state_tracker/render_pass_state.h", |
| "layers/state_tracker/sampler_state.h", |
| "layers/state_tracker/semaphore_state.cpp", |
| "layers/state_tracker/semaphore_state.h", |
| "layers/state_tracker/shader_instruction.cpp", |
| "layers/state_tracker/shader_instruction.h", |
| "layers/state_tracker/shader_module.cpp", |
| "layers/state_tracker/shader_module.h", |
| "layers/state_tracker/shader_object_state.cpp", |
| "layers/state_tracker/shader_object_state.h", |
| "layers/state_tracker/state_object.cpp", |
| "layers/state_tracker/state_object.h", |
| "layers/state_tracker/state_tracker.cpp", |
| "layers/state_tracker/state_tracker.h", |
| "layers/state_tracker/submission_reference.h", |
| "layers/state_tracker/vertex_index_buffer_state.h", |
| "layers/state_tracker/video_session_state.cpp", |
| "layers/state_tracker/video_session_state.h", |
| "layers/stateless/sl_buffer.cpp", |
| "layers/stateless/sl_cmd_buffer.cpp", |
| "layers/stateless/sl_cmd_buffer_dynamic.cpp", |
| "layers/stateless/sl_descriptor.cpp", |
| "layers/stateless/sl_device_memory.cpp", |
| "layers/stateless/sl_external_object.cpp", |
| "layers/stateless/sl_framebuffer.cpp", |
| "layers/stateless/sl_image.cpp", |
| "layers/stateless/sl_instance_device.cpp", |
| "layers/stateless/sl_pipeline.cpp", |
| "layers/stateless/sl_ray_tracing.cpp", |
| "layers/stateless/sl_render_pass.cpp", |
| "layers/stateless/sl_shader_object.cpp", |
| "layers/stateless/sl_synchronization.cpp", |
| "layers/stateless/sl_utils.cpp", |
| "layers/stateless/sl_wsi.cpp", |
| "layers/stateless/stateless_validation.h", |
| "layers/sync/sync_access_context.cpp", |
| "layers/sync/sync_access_context.h", |
| "layers/sync/sync_access_state.cpp", |
| "layers/sync/sync_access_state.h", |
| "layers/sync/sync_commandbuffer.cpp", |
| "layers/sync/sync_commandbuffer.h", |
| "layers/sync/sync_common.cpp", |
| "layers/sync/sync_common.h", |
| "layers/sync/sync_image.h", |
| "layers/sync/sync_op.cpp", |
| "layers/sync/sync_op.h", |
| "layers/sync/sync_renderpass.cpp", |
| "layers/sync/sync_renderpass.h", |
| "layers/sync/sync_submit.cpp", |
| "layers/sync/sync_submit.h", |
| "layers/sync/sync_utils.cpp", |
| "layers/sync/sync_utils.h", |
| "layers/sync/sync_validation.cpp", |
| "layers/sync/sync_validation.h", |
| "layers/sync/sync_vuid_maps.cpp", |
| "layers/sync/sync_vuid_maps.h", |
| "layers/thread_tracker/thread_safety_validation.cpp", |
| "layers/thread_tracker/thread_safety_validation.h", |
| "layers/utils/android_ndk_types.h", |
| "layers/utils/ray_tracing_utils.cpp", |
| "layers/utils/ray_tracing_utils.h", |
| "layers/utils/shader_utils.cpp", |
| "layers/utils/shader_utils.h", |
| "layers/vulkan/generated/best_practices.cpp", |
| "layers/vulkan/generated/best_practices.h", |
| "layers/vulkan/generated/chassis.cpp", |
| "layers/vulkan/generated/chassis.h", |
| "layers/vulkan/generated/chassis_dispatch_helper.h", |
| "layers/vulkan/generated/command_validation.cpp", |
| "layers/vulkan/generated/dynamic_state_helper.cpp", |
| "layers/vulkan/generated/dynamic_state_helper.h", |
| "layers/vulkan/generated/enum_flag_bits.h", |
| "layers/vulkan/generated/gpu_inst_shader_hash.h", |
| "layers/vulkan/generated/gpu_pre_dispatch_comp.h", |
| "layers/vulkan/generated/gpu_pre_dispatch_comp.cpp", |
| "layers/vulkan/generated/gpu_pre_draw_vert.h", |
| "layers/vulkan/generated/gpu_pre_draw_vert.cpp", |
| "layers/vulkan/generated/gpu_pre_trace_rays_rgen.h", |
| "layers/vulkan/generated/gpu_pre_trace_rays_rgen.cpp", |
| "layers/vulkan/generated/gpu_pre_copy_buffer_to_image_comp.h", |
| "layers/vulkan/generated/gpu_pre_copy_buffer_to_image_comp.cpp", |
| "layers/vulkan/generated/inst_bindless_descriptor_comp.h", |
| "layers/vulkan/generated/inst_bindless_descriptor_comp.cpp", |
| "layers/vulkan/generated/inst_buffer_device_address_comp.h", |
| "layers/vulkan/generated/inst_buffer_device_address_comp.cpp", |
| "layers/vulkan/generated/inst_ray_query_comp.h", |
| "layers/vulkan/generated/inst_ray_query_comp.cpp", |
| "layers/vulkan/generated/layer_chassis_dispatch.cpp", |
| "layers/vulkan/generated/layer_chassis_dispatch.h", |
| "layers/vulkan/generated/object_tracker.cpp", |
| "layers/vulkan/generated/object_tracker.h", |
| "layers/vulkan/generated/spirv_grammar_helper.cpp", |
| "layers/vulkan/generated/spirv_grammar_helper.h", |
| "layers/vulkan/generated/spirv_tools_commit_id.h", |
| "layers/vulkan/generated/spirv_validation_helper.cpp", |
| "layers/vulkan/generated/state_tracker_helper.cpp", |
| "layers/vulkan/generated/state_tracker_helper.h", |
| "layers/vulkan/generated/stateless_validation_helper.cpp", |
| "layers/vulkan/generated/stateless_validation_helper.h", |
| "layers/vulkan/generated/sync_validation_types.cpp", |
| "layers/vulkan/generated/sync_validation_types.h", |
| "layers/vulkan/generated/thread_safety.cpp", |
| "layers/vulkan/generated/thread_safety_commands.h", |
| "layers/vulkan/generated/thread_safety_counter_bodies.h", |
| "layers/vulkan/generated/thread_safety_counter_definitions.h", |
| "layers/vulkan/generated/thread_safety_counter_instances.h", |
| "layers/vulkan/generated/valid_enum_values.cpp", |
| "layers/vulkan/generated/valid_enum_values.h", |
| "layers/vulkan/generated/valid_flag_values.cpp", |
| "layers/vulkan/generated/vk_api_version.h", |
| "layers/error_message/error_location.cpp", |
| "layers/error_message/error_location.h", |
| "layers/error_message/error_strings.h", |
| "layers/error_message/logging.h", |
| "layers/error_message/logging.cpp", |
| "layers/error_message/record_object.h", |
| "layers/external/xxhash.h", |
| "layers/utils/android_ndk_types.h", |
| "layers/utils/cast_utils.h", |
| "layers/utils/convert_utils.cpp", |
| "layers/utils/convert_utils.h", |
| "layers/utils/hash_util.cpp", |
| "layers/utils/hash_util.h", |
| "layers/utils/hash_vk_types.h", |
| "layers/utils/image_layout_utils.cpp", |
| "layers/utils/image_layout_utils.h", |
| "layers/utils/vk_layer_extension_utils.cpp", |
| "layers/utils/vk_layer_extension_utils.h", |
| "layers/utils/vk_layer_utils.cpp", |
| "layers/utils/vk_layer_utils.h", |
| "layers/vk_layer_config.cpp", |
| "layers/vk_layer_config.h", |
| "layers/vulkan/generated/error_location_helper.cpp", |
| "layers/vulkan/generated/error_location_helper.h", |
| "layers/vulkan/generated/feature_requirements_helper.cpp", |
| "layers/vulkan/generated/feature_requirements_helper.h", |
| "layers/vulkan/generated/pnext_chain_extraction.cpp", |
| "layers/vulkan/generated/pnext_chain_extraction.h", |
| "layers/vulkan/generated/vk_function_pointers.cpp", |
| "layers/vulkan/generated/vk_function_pointers.h", |
| "layers/vulkan/generated/vk_validation_error_messages.h", |
| "layers/vulkan/generated/vk_layer_dispatch_table.h", |
| "layers/vulkan/generated/vk_dispatch_table_helper.cpp", |
| "layers/vulkan/generated/vk_dispatch_table_helper.h", |
| "layers/vulkan/generated/vk_object_types.h", |
| "layers/vulkan/generated/vk_object_types.cpp", |
| "layers/vulkan/generated/vk_api_version.h", |
| "layers/vulkan/generated/vk_extension_helper.h", |
| "layers/vulkan/generated/vk_extension_helper.cpp", |
| ] |
| |
| layers = [ [ |
| "khronos_validation", |
| vvl_sources, |
| [ ":vulkan_core_validation_glslang" ], |
| [], |
| ] ] |
| |
| if (!is_android) { |
| action("vulkan_gen_json_files") { |
| script = "scripts/gn/generate_vulkan_layers_json.py" |
| |
| deps = [ "$vulkan_headers_dir:vulkan_headers" ] |
| if (!is_fuchsia) { |
| # Make sure that the cleanup of old layer JSON files happens before the new ones are generated. |
| deps += [ ":vulkan_clean_old_validation_layer_objects" ] |
| } |
| |
| sources = [ "layers/VkLayer_khronos_validation.json.in" ] |
| outputs = [ "$vulkan_data_dir/VkLayer_khronos_validation.json" ] |
| |
| if (is_linux) { |
| _platform = "Linux" |
| } else if (is_win) { |
| _platform = "Windows" |
| } else if (is_mac) { |
| _platform = "Darwin" |
| } else if (is_fuchsia) { |
| _platform = "Fuchsia" |
| } else { |
| _platform = "Other" |
| } |
| |
| args = [ |
| "--platform", |
| _platform, |
| rebase_path("layers/", root_build_dir), |
| rebase_path(vulkan_data_dir, root_build_dir), |
| ] + rebase_path(sources, root_build_dir) |
| if (is_fuchsia) { |
| args += [ "--no-path-prefix" ] |
| } |
| |
| # The layer JSON files are part of the necessary data deps. |
| data = outputs |
| } |
| } |
| |
| config("vulkan_memory_allocator_config") { |
| if (is_clang) { |
| cflags_cc = [ "-Wno-nullability-completeness" ] |
| } |
| } |
| |
| source_set("vulkan_layer_utils") { |
| include_dirs = [ |
| "layers", |
| "layers/external", |
| "layers/vulkan", |
| ] |
| sources = [ |
| "$vulkan_headers_dir/include/vulkan/vk_layer.h", |
| "$vulkan_headers_dir/include/vulkan/vulkan.h", |
| ] |
| public_configs = [ |
| ":vulkan_internal_config", |
| ":vulkan_memory_allocator_config", |
| ] |
| public_deps = [ |
| "$vulkan_headers_dir:vulkan_headers", |
| "$vulkan_utility_libraries_dir:vulkan_layer_settings", |
| ] |
| |
| configs -= vulkan_undefine_configs |
| if (!is_fuchsia) { |
| configs -= [ "//build/config/compiler:chromium_code" ] |
| configs += [ "//build/config/compiler:no_chromium_code" ] |
| } |
| } |
| |
| config("vulkan_core_validation_config") { |
| include_dirs = [ "$vvl_glslang_dir" ] |
| } |
| |
| source_set("vulkan_core_validation_glslang") { |
| public_deps = [ |
| "${vvl_spirv_tools_dir}:spvtools", |
| "${vvl_spirv_tools_dir}:spvtools_link", |
| "${vvl_spirv_tools_dir}:spvtools_opt", |
| "${vvl_spirv_tools_dir}:spvtools_val", |
| ] |
| public_configs = [ |
| "$vulkan_headers_dir:vulkan_headers_config", |
| ":vulkan_core_validation_config", |
| ] |
| } |
| |
| config("vulkan_stateless_validation_config") { |
| if (is_clang) { |
| cflags_cc = [ "-Wno-unused-const-variable" ] |
| } |
| } |
| |
| if (is_fuchsia) { |
| library_type = "loadable_module" |
| } else { |
| library_type = "shared_library" |
| } |
| |
| foreach(layer_info, layers) { |
| name = layer_info[0] |
| target(library_type, "VkLayer_$name") { |
| defines = [] |
| ldflags = [] |
| if (is_fuchsia) { |
| configs -= [ "//build/config:thread_safety_annotations" ] |
| ldflags += [ "-static-libstdc++" ] |
| configs += [ "//build/config:rtti" ] |
| } else { |
| configs -= [ "//build/config/compiler:chromium_code" ] |
| configs += [ "//build/config/compiler:no_chromium_code" ] |
| configs -= [ "//build/config/compiler:no_rtti" ] |
| configs += [ "//build/config/compiler:rtti" ] |
| } |
| configs -= vulkan_undefine_configs |
| configs += [ ":generated_layers_config" ] |
| public_configs = [ ":vulkan_layer_config" ] |
| deps = [ |
| ":vulkan_layer_utils", |
| "$vulkan_utility_libraries_dir:vulkan_layer_settings", |
| ] |
| if (!is_fuchsia) { |
| deps += [ |
| # Make sure the cleanup of old layers happen before the new ones are compiled. |
| ":vulkan_clean_old_validation_layer_objects", |
| ] |
| } |
| if (layer_info[2] != "") { |
| deps += layer_info[2] |
| } |
| sources = layer_info[1] |
| if (is_win) { |
| defines += [ "NOMINMAX" ] |
| sources += [ "layers/VkLayer_$name.def" ] |
| } |
| if (defined(ozone_platform_x11) && ozone_platform_x11) { |
| defines += [ "VK_USE_PLATFORM_XLIB_KHR" ] |
| } |
| if (is_android) { |
| libs = [ |
| "log", |
| "nativewindow", |
| ] |
| configs -= [ "//build/config/android:hide_all_but_jni_onload" ] |
| } |
| defines += layer_info[3] |
| } |
| } |
| |
| group("vulkan_validation_layers") { |
| public_deps = [] |
| data_deps = [] |
| foreach(layer_info, layers) { |
| name = layer_info[0] |
| if (is_fuchsia) { |
| public_deps += [ ":VkLayer_$name" ] |
| } else { |
| data_deps += [ ":VkLayer_$name" ] |
| } |
| } |
| } |