| # Copyright 2016 The Fuchsia Authors |
| # |
| # Permission is hereby granted, free of charge, to any person obtaining a |
| # copy of this software and associated documentation files (the "Software"), |
| # to deal in the Software without restriction, including without limitation |
| # the rights to use, copy, modify, merge, publish, distribute, sublicense, |
| # and/or sell copies of the Software, and to permit persons to whom the |
| # Software is furnished to do so, subject to the following conditions: |
| # |
| # The above copyright notice and this permission notice (including the next |
| # paragraph) shall be included in all copies or substantial portions of the |
| # Software. |
| # |
| # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
| # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
| # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL |
| # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
| # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING |
| # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS |
| # IN THE SOFTWARE. |
| |
| import("//garnet/lib/magma/gnbuild/magma.gni") |
| |
| source_set("api_xml") { |
| sources = [ |
| "AMD_draw_buffers_blend.xml", |
| "AMD_performance_monitor.xml", |
| "APPLE_object_purgeable.xml", |
| "APPLE_vertex_array_object.xml", |
| "ARB_ES2_compatibility.xml", |
| "ARB_ES3_compatibility.xml", |
| "ARB_base_instance.xml", |
| "ARB_blend_func_extended.xml", |
| "ARB_clear_buffer_object.xml", |
| "ARB_clear_texture.xml", |
| "ARB_clip_control.xml", |
| "ARB_color_buffer_float.xml", |
| "ARB_compressed_texture_pixel_storage.xml", |
| "ARB_compute_shader.xml", |
| "ARB_copy_buffer.xml", |
| "ARB_copy_image.xml", |
| "ARB_debug_output.xml", |
| "ARB_depth_buffer_float.xml", |
| "ARB_depth_clamp.xml", |
| "ARB_direct_state_access.xml", |
| "ARB_draw_buffers.xml", |
| "ARB_draw_buffers_blend.xml", |
| "ARB_draw_elements_base_vertex.xml", |
| "ARB_draw_indirect.xml", |
| "ARB_draw_instanced.xml", |
| "ARB_framebuffer_no_attachments.xml", |
| "ARB_framebuffer_object.xml", |
| "ARB_get_program_binary.xml", |
| "ARB_get_texture_sub_image.xml", |
| "ARB_gpu_shader5.xml", |
| "ARB_gpu_shader_fp64.xml", |
| "ARB_indirect_parameters.xml", |
| "ARB_instanced_arrays.xml", |
| "ARB_internalformat_query.xml", |
| "ARB_invalidate_subdata.xml", |
| "ARB_map_buffer_range.xml", |
| "ARB_multi_bind.xml", |
| "ARB_pipeline_statistics_query.xml", |
| "ARB_program_interface_query.xml", |
| "ARB_robustness.xml", |
| "ARB_sample_shading.xml", |
| "ARB_sampler_objects.xml", |
| "ARB_seamless_cube_map.xml", |
| "ARB_separate_shader_objects.xml", |
| "ARB_shader_atomic_counters.xml", |
| "ARB_shader_image_load_store.xml", |
| "ARB_shader_storage_buffer_object.xml", |
| "ARB_shader_subroutine.xml", |
| "ARB_sync.xml", |
| "ARB_tessellation_shader.xml", |
| "ARB_texture_barrier.xml", |
| "ARB_texture_buffer_object.xml", |
| "ARB_texture_buffer_range.xml", |
| "ARB_texture_compression_rgtc.xml", |
| "ARB_texture_cube_map_array.xml", |
| "ARB_texture_float.xml", |
| "ARB_texture_gather.xml", |
| "ARB_texture_multisample.xml", |
| "ARB_texture_rg.xml", |
| "ARB_texture_rgb10_a2ui.xml", |
| "ARB_texture_storage.xml", |
| "ARB_texture_storage_multisample.xml", |
| "ARB_texture_view.xml", |
| "ARB_uniform_buffer_object.xml", |
| "ARB_vertex_array_object.xml", |
| "ARB_vertex_attrib_64bit.xml", |
| "ARB_vertex_attrib_binding.xml", |
| "ARB_vertex_type_2_10_10_10_rev.xml", |
| "ARB_viewport_array.xml", |
| "EXT_draw_buffers2.xml", |
| "EXT_framebuffer_object.xml", |
| "EXT_gpu_shader4.xml", |
| "EXT_packed_depth_stencil.xml", |
| "EXT_provoking_vertex.xml", |
| "EXT_separate_shader_objects.xml", |
| "EXT_texture_array.xml", |
| "EXT_texture_integer.xml", |
| "EXT_transform_feedback.xml", |
| "GL3x.xml", |
| "GL4x.xml", |
| "GREMEDY_string_marker.xml", |
| "INTEL_performance_query.xml", |
| "KHR_context_flush_control.xml", |
| "KHR_debug.xml", |
| "KHR_texture_compression_astc.xml", |
| "NV_conditional_render.xml", |
| "NV_primitive_restart.xml", |
| "NV_texture_barrier.xml", |
| "NV_vdpau_interop.xml", |
| "OES_EGL_image.xml", |
| "OES_fixed_point.xml", |
| "OES_single_precision.xml", |
| "es_EXT.xml", |
| "glX_API.xml", |
| "gl_API.xml", |
| "gl_and_es_API.xml", |
| "gl_and_glX_API.xml", |
| ] |
| } |
| |
| action("glapi_mapi_tmp") { |
| output_name = "glapi/glapi_mapi_tmp.h" |
| script_name = "../../mapi_abi.py" |
| |
| script = "$mesa_build_root/scripts/gn_script_wrapper.py" |
| |
| deps = [ |
| ":api_xml", |
| ] |
| |
| outputs = [ |
| "$target_gen_dir/$output_name", |
| ] |
| |
| inputs = [ |
| script_name, |
| "gl_XML.py", |
| "license.py", |
| "static_data.py", |
| "typeexpr.py", |
| ] |
| |
| args = [ |
| "$magma_python_path", |
| rebase_path(target_gen_dir) + "/$output_name", |
| rebase_path(".") + "/$script_name", |
| "--printer", |
| "es2api", |
| "--mode", |
| "lib", |
| rebase_path(".") + "/gl_and_es_API.xml", |
| ] |
| } |
| |
| action("gl_procs") { |
| output_name = "glapi/glprocs.h" |
| script_name = "gl_procs.py" |
| |
| script = "$mesa_build_root/scripts/gn_script_wrapper.py" |
| |
| deps = [ |
| ":api_xml", |
| ] |
| |
| outputs = [ |
| "$target_gen_dir/$output_name", |
| ] |
| |
| inputs = [ |
| script_name, |
| "gl_XML.py", |
| "license.py", |
| "static_data.py", |
| "typeexpr.py", |
| ] |
| |
| args = [ |
| "$magma_python_path", |
| rebase_path(target_gen_dir) + "/$output_name", |
| rebase_path(".") + "/$script_name", |
| "-c", |
| "-f", |
| rebase_path(".") + "/gl_and_es_API.xml", |
| ] |
| } |
| |
| action("gl_apitemp") { |
| output_name = "glapi/glapitemp.h" |
| script_name = "gl_apitemp.py" |
| |
| script = "$mesa_build_root/scripts/gn_script_wrapper.py" |
| |
| deps = [ |
| ":api_xml", |
| ] |
| |
| outputs = [ |
| "$target_gen_dir/$output_name", |
| ] |
| |
| inputs = [ |
| script_name, |
| "gl_XML.py", |
| "license.py", |
| "static_data.py", |
| "typeexpr.py", |
| ] |
| |
| args = [ |
| "$magma_python_path", |
| rebase_path(target_gen_dir) + "/$output_name", |
| rebase_path(".") + "/$script_name", |
| "-f", |
| rebase_path(".") + "/gl_and_es_API.xml", |
| ] |
| } |
| |
| action("gl_table") { |
| output_name = "glapi/glapitable.h" |
| script_name = "gl_table.py" |
| |
| script = "$mesa_build_root/scripts/gn_script_wrapper.py" |
| |
| deps = [ |
| ":api_xml", |
| ] |
| |
| outputs = [ |
| "$target_gen_dir/$output_name", |
| ] |
| |
| inputs = [ |
| script_name, |
| "gl_XML.py", |
| "license.py", |
| "static_data.py", |
| "typeexpr.py", |
| ] |
| |
| args = [ |
| "$magma_python_path", |
| rebase_path(target_gen_dir) + "/$output_name", |
| rebase_path(".") + "/$script_name", |
| "-f", |
| rebase_path(".") + "/gl_and_es_API.xml", |
| ] |
| } |
| |
| action("gl_gentable") { |
| output_name = "glapi/glapi_gentable.c" |
| script_name = "gl_gentable.py" |
| |
| script = "$mesa_build_root/scripts/gn_script_wrapper.py" |
| |
| deps = [ |
| ":api_xml", |
| ] |
| |
| outputs = [ |
| "$target_gen_dir/$output_name", |
| ] |
| |
| inputs = [ |
| script_name, |
| "gl_XML.py", |
| "license.py", |
| "static_data.py", |
| "typeexpr.py", |
| ] |
| |
| args = [ |
| "$magma_python_path", |
| rebase_path(target_gen_dir) + "/$output_name", |
| rebase_path(".") + "/$script_name", |
| "-f", |
| rebase_path(".") + "/gl_and_es_API.xml", |
| ] |
| } |
| |
| action("glapi_x86-64") { |
| output_name = "glapi/glapi_x86-64.S" |
| script_name = "gl_x86-64_asm.py" |
| |
| script = "$mesa_build_root/scripts/gn_script_wrapper.py" |
| |
| deps = [ |
| ":api_xml", |
| ] |
| |
| outputs = [ |
| "$target_gen_dir/$output_name", |
| ] |
| |
| inputs = [ |
| script_name, |
| "gl_XML.py", |
| "license.py", |
| "static_data.py", |
| "typeexpr.py", |
| ] |
| |
| args = [ |
| "$magma_python_path", |
| rebase_path(target_gen_dir) + "/$output_name", |
| rebase_path(".") + "/$script_name", |
| "-f", |
| rebase_path(".") + "/gl_and_es_API.xml", |
| ] |
| } |
| |
| action("enums") { |
| output_name = "main/enums.c" |
| script_name = "gl_enums.py" |
| |
| script = "$mesa_build_root/scripts/gn_script_wrapper.py" |
| |
| deps = [ |
| ":api_xml", |
| ] |
| |
| outputs = [ |
| "$target_gen_dir/$output_name", |
| ] |
| |
| inputs = [ |
| script_name, |
| "gl_XML.py", |
| "license.py", |
| "static_data.py", |
| "typeexpr.py", |
| ] |
| |
| args = [ |
| "$magma_python_path", |
| rebase_path(target_gen_dir) + "/$output_name", |
| rebase_path(".") + "/$script_name", |
| "-f", |
| rebase_path(".") + "/gl_and_es_API.xml", |
| ] |
| } |
| |
| action("api_exec") { |
| output_name = "main/api_exec.c" |
| script_name = "gl_genexec.py" |
| |
| script = "$mesa_build_root/scripts/gn_script_wrapper.py" |
| |
| deps = [ |
| ":api_xml", |
| ] |
| |
| outputs = [ |
| "$target_gen_dir/$output_name", |
| ] |
| |
| inputs = [ |
| script_name, |
| "gl_XML.py", |
| "license.py", |
| "static_data.py", |
| "typeexpr.py", |
| "apiexec.py", |
| ] |
| |
| args = [ |
| "$magma_python_path", |
| rebase_path(target_gen_dir) + "/$output_name", |
| rebase_path(".") + "/$script_name", |
| "-f", |
| rebase_path(".") + "/gl_and_es_API.xml", |
| ] |
| } |
| |
| action("dispatch") { |
| output_name = "main/dispatch.h" |
| script_name = "gl_table.py" |
| |
| script = "$mesa_build_root/scripts/gn_script_wrapper.py" |
| |
| deps = [ |
| ":api_xml", |
| ] |
| |
| outputs = [ |
| "$target_gen_dir/$output_name", |
| ] |
| |
| inputs = [ |
| script_name, |
| "gl_XML.py", |
| "license.py", |
| "static_data.py", |
| "typeexpr.py", |
| ] |
| |
| args = [ |
| "$magma_python_path", |
| rebase_path(target_gen_dir) + "/$output_name", |
| rebase_path(".") + "/$script_name", |
| "-f", |
| rebase_path(".") + "/gl_and_es_API.xml", |
| "-m", |
| "remap_table", |
| ] |
| } |
| |
| action("remap_helper") { |
| output_name = "main/remap_helper.h" |
| script_name = "remap_helper.py" |
| |
| script = "$mesa_build_root/scripts/gn_script_wrapper.py" |
| |
| deps = [ |
| ":api_xml", |
| ] |
| |
| outputs = [ |
| "$target_gen_dir/$output_name", |
| ] |
| |
| inputs = [ |
| script_name, |
| "gl_XML.py", |
| "license.py", |
| "static_data.py", |
| "typeexpr.py", |
| ] |
| |
| args = [ |
| "$magma_python_path", |
| rebase_path(target_gen_dir) + "/$output_name", |
| rebase_path(".") + "/$script_name", |
| "-f", |
| rebase_path(".") + "/gl_and_es_API.xml", |
| ] |
| } |
| |
| config("gen_public_config") { |
| include_dirs = [ |
| "$mesa_build_root/src", |
| "$mesa_build_root/src/mapi", |
| "$mesa_build_root/src/mapi/glapi", |
| "$mesa_build_root/src/mesa", |
| rebase_path(target_gen_dir), |
| rebase_path("$target_gen_dir/main"), |
| ] |
| |
| defines = [ |
| "MAPI_MODE_BRIDGE", |
| "MAPI_ABI_HEADER=\"glapi/glapi_mapi_tmp.h\"", |
| ] |
| } |
| |
| source_set("glapi_gen") { |
| cflags = [ "-std=c11" ] |
| |
| public_configs = [ |
| ":gen_public_config", |
| "$mesa_build_root/src:common_config", |
| ] |
| |
| include_dirs = [ "$mesa_build_root/src/mapi" ] |
| |
| sources = [ |
| "$target_gen_dir/glapi/glapi_gentable.c", |
| "$target_gen_dir/glapi/glapi_mapi_tmp.h", |
| "$target_gen_dir/glapi/glapitable.h", |
| "$target_gen_dir/glapi/glapitemp.h", |
| "$target_gen_dir/glapi/glprocs.h", |
| ] |
| |
| deps = [ |
| ":gl_apitemp", |
| ":gl_gentable", |
| ":gl_procs", |
| ":gl_table", |
| ":glapi_mapi_tmp", |
| ":glapi_x86-64", |
| "$mesa_build_root/include:GL", |
| ] |
| } |
| |
| source_set("main_gen") { |
| configs += [ "$mesa_build_root/src:common_config" ] |
| |
| public_configs = [ ":gen_public_config" ] |
| |
| sources = [ |
| "$target_gen_dir/main/api_exec.c", |
| "$target_gen_dir/main/dispatch.h", |
| "$target_gen_dir/main/enums.c", |
| "$target_gen_dir/main/remap_helper.h", |
| ] |
| |
| deps = [ |
| ":api_exec", |
| ":dispatch", |
| ":enums", |
| ":remap_helper", |
| "$mesa_build_root/include:GL", |
| "$mesa_build_root/include:c_compat", |
| "$mesa_build_root/src/util:headers", |
| ] |
| } |
| |
| source_set("gen") { |
| public_deps = [ |
| ":glapi_gen", |
| ":main_gen", |
| ] |
| } |