Hi I'm working on a new build system called Meson and as part of development I try to convert build systems of existing projects into Meson to see that it fullfillls the requirements of real processes. I did a trial conversion of Mesa because it seemed like an interesting challenge as it has lots of code generation and other unorthodox stuff.
Attached is a patch that compiles most of Mesa with Meson. It does not do all drivers and there are probably other things missing as well. Here's how it stacks up against the Scons compile: build time (not directly comparable, as Meson compiles less code) Scons: 1m 13s Meson: 40s no-op build time Scons: 4.7s Meson: 0.04s If someone wants to try it out themselves, first they need to get the latest Meson from trunk (the version in Debian is too old) and Ninja from distro packages (usually called ninja-build): https://github.com/jpakkane/meson Then apply the attached patch to trunk (it's originally on top of commit 74e100affc0ac1). Then cd into source root and do the following mkdir buildmeson cd buildmeson path/to/meson.py .. ninja If it dies halfway through just run ninja again. This is a dependency bug, which I'll try to get fixed soon. This was a fun challenge, hope some of you find it interesting,
From 60c2dfb7f60112cb364230e706503fba88277fe0 Mon Sep 17 00:00:00 2001 From: Jussi Pakkanen <[email protected]> Date: Sat, 26 Jul 2014 21:37:12 +0300 Subject: [PATCH] Meson compilation experiment. --- include/git_sha1.h.in | 5 + include/meson.build | 15 ++ meson.build | 17 ++ src/gallium/auxiliary/meson.build | 211 +++++++++++++++++++++ src/gallium/drivers/galahad/meson.build | 6 + src/gallium/drivers/identity/meson.build | 5 + src/gallium/drivers/llvmpipe/meson.build | 48 +++++ src/gallium/drivers/meson.build | 5 + src/gallium/drivers/softpipe/meson.build | 34 ++++ src/gallium/meson.build | 3 + src/glsl/meson.build | 139 ++++++++++++++ src/loader/meson.build | 3 + src/mapi/glapi/gen/extension_helper.py | 0 src/mapi/glapi/gen/glX_XML.py | 0 src/mapi/glapi/gen/glX_proto_common.py | 0 src/mapi/glapi/gen/glX_proto_recv.py | 0 src/mapi/glapi/gen/glX_proto_send.py | 0 src/mapi/glapi/gen/glX_proto_size.py | 0 src/mapi/glapi/gen/glX_server_table.py | 0 src/mapi/glapi/gen/gl_SPARC_asm.py | 0 src/mapi/glapi/gen/gl_XML.py | 0 src/mapi/glapi/gen/gl_apitemp.py | 4 +- src/mapi/glapi/gen/gl_enums.py | 4 +- src/mapi/glapi/gen/gl_genexec.py | 4 +- src/mapi/glapi/gen/gl_gentable.py | 0 src/mapi/glapi/gen/gl_offsets.py | 0 src/mapi/glapi/gen/gl_procs.py | 4 +- src/mapi/glapi/gen/gl_table.py | 6 +- src/mapi/glapi/gen/gl_x86-64_asm.py | 0 src/mapi/glapi/gen/gl_x86_asm.py | 0 src/mapi/glapi/gen/license.py | 0 src/mapi/glapi/gen/mesadef.py | 0 src/mapi/glapi/gen/meson.build | 120 ++++++++++++ src/mapi/glapi/gen/remap_helper.py | 4 +- src/mapi/glapi/gen/typeexpr.py | 0 src/mapi/glapi/glapi_entrypoint.c | 2 +- src/mapi/glapi/meson.build | 14 ++ src/mapi/meson.build | 2 + src/mesa/meson.build | 312 +++++++++++++++++++++++++++++++ src/meson.build | 6 + 40 files changed, 966 insertions(+), 7 deletions(-) create mode 100644 include/git_sha1.h.in create mode 100644 include/meson.build create mode 100644 meson.build create mode 100644 src/gallium/auxiliary/meson.build create mode 100644 src/gallium/drivers/galahad/meson.build create mode 100644 src/gallium/drivers/identity/meson.build create mode 100644 src/gallium/drivers/llvmpipe/meson.build create mode 100644 src/gallium/drivers/meson.build create mode 100644 src/gallium/drivers/softpipe/meson.build create mode 100644 src/gallium/meson.build create mode 100644 src/glsl/meson.build create mode 100644 src/loader/meson.build mode change 100644 => 100755 src/mapi/glapi/gen/extension_helper.py mode change 100644 => 100755 src/mapi/glapi/gen/glX_XML.py mode change 100644 => 100755 src/mapi/glapi/gen/glX_proto_common.py mode change 100644 => 100755 src/mapi/glapi/gen/glX_proto_recv.py mode change 100644 => 100755 src/mapi/glapi/gen/glX_proto_send.py mode change 100644 => 100755 src/mapi/glapi/gen/glX_proto_size.py mode change 100644 => 100755 src/mapi/glapi/gen/glX_server_table.py mode change 100644 => 100755 src/mapi/glapi/gen/gl_SPARC_asm.py mode change 100644 => 100755 src/mapi/glapi/gen/gl_XML.py mode change 100644 => 100755 src/mapi/glapi/gen/gl_apitemp.py mode change 100644 => 100755 src/mapi/glapi/gen/gl_enums.py mode change 100644 => 100755 src/mapi/glapi/gen/gl_genexec.py mode change 100644 => 100755 src/mapi/glapi/gen/gl_gentable.py mode change 100644 => 100755 src/mapi/glapi/gen/gl_offsets.py mode change 100644 => 100755 src/mapi/glapi/gen/gl_procs.py mode change 100644 => 100755 src/mapi/glapi/gen/gl_table.py mode change 100644 => 100755 src/mapi/glapi/gen/gl_x86-64_asm.py mode change 100644 => 100755 src/mapi/glapi/gen/gl_x86_asm.py mode change 100644 => 100755 src/mapi/glapi/gen/license.py mode change 100644 => 100755 src/mapi/glapi/gen/mesadef.py create mode 100644 src/mapi/glapi/gen/meson.build mode change 100644 => 100755 src/mapi/glapi/gen/remap_helper.py mode change 100644 => 100755 src/mapi/glapi/gen/typeexpr.py create mode 100644 src/mapi/glapi/meson.build create mode 100644 src/mapi/meson.build create mode 100644 src/mesa/meson.build create mode 100644 src/meson.build diff --git a/include/git_sha1.h.in b/include/git_sha1.h.in new file mode 100644 index 0000000..5cbc752 --- /dev/null +++ b/include/git_sha1.h.in @@ -0,0 +1,5 @@ +#ifndef GIT_SHA1_H +#define GIT_SHA1_H +#define MESA_GIT_SHA1 "git-@GITVERSION@" +#endif + diff --git a/include/meson.build b/include/meson.build new file mode 100644 index 0000000..fcaae1a --- /dev/null +++ b/include/meson.build @@ -0,0 +1,15 @@ +gittext = run_command('git', 'log', '-n', '1', '--oneline').stdout().strip() + +confdata = configuration_data() +confdata.set('GITVERSION', gittext) + +configure_file(input : 'git_sha1.h.in', +output : 'git_sha1.h', +configuration : confdata) + +# Mesa expects headers to be in a different directory than they +# are when compiling with Meson. This is a workaround. +run_command('ln', '-s', '../src/mapi/glapi/gen', 'main', in_builddir : true) +run_command('ln', '-s', '../src/mapi/glapi/gen', 'glapi', in_builddir : true) + + diff --git a/meson.build b/meson.build new file mode 100644 index 0000000..0159518 --- /dev/null +++ b/meson.build @@ -0,0 +1,17 @@ +project('mesa', 'c', 'cpp') + +subdir('include') + +yacc = find_program('yacc') +lex = find_program('lex') + +basic_includes = include_directories('include', 'src/mesa', 'src/mapi', 'src/mapi/glapi/gen', +'src/glsl', 'src/gallium/include', 'src/gallium/auxiliary') + +add_global_arguments('-DHAVE_PTHREAD=1', '-D_XOPEN_SOURCE=700', '-D_GNU_SOURCE', '-DUSE_X64_64_ASM', '-DGLX_USE_TLS', +'-DPACKAGE_VERSION="0.1"', '-DPACKAGE_BUGREPORT="[email protected]"', '-std=c99', language : 'c') +add_global_arguments('-DHAVE_PTHREAD=1', '-D_XOPEN_SOURCE=700', '-D_GNU_SOURCE', '-DUSE_X64_64_ASM', '-DGLX_USE_TLS', +'-DPACKAGE_VERSION="0.1"', '-DPACKAGE_BUGREPORT="[email protected]"', language : 'cpp') + +subdir('src') + diff --git a/src/gallium/auxiliary/meson.build b/src/gallium/auxiliary/meson.build new file mode 100644 index 0000000..dae907a --- /dev/null +++ b/src/gallium/auxiliary/meson.build @@ -0,0 +1,211 @@ +c_sources = [ +'cso_cache/cso_cache.c', +'cso_cache/cso_context.c', +'cso_cache/cso_hash.c', +'draw/draw_context.c', +'draw/draw_fs.c', +'draw/draw_gs.c', +'draw/draw_pipe.c', +'draw/draw_pipe_aaline.c', +'draw/draw_pipe_aapoint.c', +'draw/draw_pipe_clip.c', +'draw/draw_pipe_cull.c', +'draw/draw_pipe_flatshade.c', +'draw/draw_pipe_offset.c', +'draw/draw_pipe_pstipple.c', +'draw/draw_pipe_stipple.c', +'draw/draw_pipe_twoside.c', +'draw/draw_pipe_unfilled.c', +'draw/draw_pipe_util.c', +'draw/draw_pipe_validate.c', +'draw/draw_pipe_vbuf.c', +'draw/draw_pipe_wide_line.c', +'draw/draw_pipe_wide_point.c', +'draw/draw_prim_assembler.c', +'draw/draw_pt.c', +'draw/draw_pt_emit.c', +'draw/draw_pt_fetch.c', +'draw/draw_pt_fetch_emit.c', +'draw/draw_pt_fetch_shade_emit.c', +'draw/draw_pt_fetch_shade_pipeline.c', +'draw/draw_pt_post_vs.c', +'draw/draw_pt_so_emit.c', +'draw/draw_pt_util.c', +'draw/draw_pt_vsplit.c', +'draw/draw_vertex.c', +'draw/draw_vs.c', +'draw/draw_vs_exec.c', +'draw/draw_vs_variant.c', +'hud/font.c', +'hud/hud_context.c', +'hud/hud_cpu.c', +'hud/hud_fps.c', +'hud/hud_driver_query.c', +'indices/u_primconvert.c', +'os/os_misc.c', +'os/os_process.c', +'os/os_time.c', +'pipebuffer/pb_buffer_fenced.c', +'pipebuffer/pb_buffer_malloc.c', +'pipebuffer/pb_bufmgr_alt.c', +'pipebuffer/pb_bufmgr_cache.c', +'pipebuffer/pb_bufmgr_debug.c', +'pipebuffer/pb_bufmgr_mm.c', +'pipebuffer/pb_bufmgr_ondemand.c', +'pipebuffer/pb_bufmgr_pool.c', +'pipebuffer/pb_bufmgr_slab.c', +'pipebuffer/pb_validate.c', +'postprocess/pp_celshade.c', +'postprocess/pp_colors.c', +'postprocess/pp_init.c', +'postprocess/pp_mlaa.c', +'postprocess/pp_run.c', +'postprocess/pp_program.c', +'rbug/rbug_connection.c', +'rbug/rbug_context.c', +'rbug/rbug_core.c', +'rbug/rbug_demarshal.c', +'rbug/rbug_texture.c', +'rbug/rbug_shader.c', +'rtasm/rtasm_cpu.c', +'rtasm/rtasm_execmem.c', +'rtasm/rtasm_x86sse.c', +'tgsi/tgsi_build.c', +'tgsi/tgsi_dump.c', +'tgsi/tgsi_exec.c', +'tgsi/tgsi_info.c', +'tgsi/tgsi_iterate.c', +'tgsi/tgsi_parse.c', +'tgsi/tgsi_sanity.c', +'tgsi/tgsi_scan.c', +'tgsi/tgsi_strings.c', +'tgsi/tgsi_text.c', +'tgsi/tgsi_transform.c', +'tgsi/tgsi_ureg.c', +'tgsi/tgsi_util.c', +'translate/translate.c', +'translate/translate_cache.c', +'translate/translate_generic.c', +'translate/translate_sse.c', +'util/u_debug.c', +'util/u_debug_describe.c', +'util/u_debug_flush.c', +'util/u_debug_memory.c', +'util/u_debug_refcnt.c', +'util/u_debug_stack.c', +'util/u_debug_symbol.c', +'util/u_dump_defines.c', +'util/u_dump_state.c', +'util/u_bitmask.c', +'util/u_blit.c', +'util/u_blitter.c', +'util/u_cache.c', +'util/u_caps.c', +'util/u_cpu_detect.c', +'util/u_dl.c', +'util/u_draw.c', +'util/u_draw_quad.c', +'util/u_format.c', +'util/u_format_other.c', +'util/u_format_latc.c', +'util/u_format_s3tc.c', +'util/u_format_rgtc.c', +'util/u_format_etc.c', +'util/u_format_tests.c', +'util/u_format_yuv.c', +'util/u_format_zs.c', +'util/u_framebuffer.c', +'util/u_gen_mipmap.c', +'util/u_handle_table.c', +'util/u_hash.c', +'util/u_hash_table.c', +'util/u_helpers.c', +'util/u_index_modify.c', +'util/u_keymap.c', +'util/u_linear.c', +'util/u_linkage.c', +'util/u_network.c', +'util/u_math.c', +'util/u_mm.c', +'util/u_pstipple.c', +'util/u_ringbuffer.c', +'util/u_sampler.c', +'util/u_simple_shaders.c', +'util/u_slab.c', +'util/u_snprintf.c', +'util/u_staging.c', +'util/u_suballoc.c', +'util/u_surface.c', +'util/u_surfaces.c', +'util/u_texture.c', +'util/u_tile.c', +'util/u_transfer.c', +'util/u_resource.c', +'util/u_upload_mgr.c', +'util/u_vbuf.c', +'vl/vl_csc.c', +'vl/vl_compositor.c', +'vl/vl_matrix_filter.c', +'vl/vl_median_filter.c', +'vl/vl_decoder.c', +'vl/vl_mpeg12_decoder.c', +'vl/vl_mpeg12_bitstream.c', +'vl/vl_zscan.c', +'vl/vl_idct.c', +'vl/vl_mc.c', +'vl/vl_vertex_buffers.c', +'vl/vl_video_buffer.c', +'vl/vl_deint_filter.c'] + +generated_sources = [ +'indices/u_indices_gen.c', +'indices/u_unfilled_gen.c', +'util/u_format_srgb.c', +'util/u_format_table.c'] + +gallivm_sources = [ +'gallivm/lp_bld_arit.c', +'gallivm/lp_bld_arit_overflow.c', +'gallivm/lp_bld_assert.c', +'gallivm/lp_bld_bitarit.c', +'gallivm/lp_bld_const.c', +'gallivm/lp_bld_conv.c', +'gallivm/lp_bld_flow.c', +'gallivm/lp_bld_format_aos.c', +'gallivm/lp_bld_format_aos_array.c', +'gallivm/lp_bld_format_float.c', +'gallivm/lp_bld_format_srgb.c', +'gallivm/lp_bld_format_soa.c', +'gallivm/lp_bld_format_yuv.c', +'gallivm/lp_bld_gather.c', +'gallivm/lp_bld_init.c', +'gallivm/lp_bld_intr.c', +'gallivm/lp_bld_logic.c', +'gallivm/lp_bld_pack.c', +'gallivm/lp_bld_printf.c', +'gallivm/lp_bld_quad.c', +'gallivm/lp_bld_sample.c', +'gallivm/lp_bld_sample_aos.c', +'gallivm/lp_bld_sample_soa.c', +'gallivm/lp_bld_struct.c', +'gallivm/lp_bld_swizzle.c', +'gallivm/lp_bld_tgsi.c', +'gallivm/lp_bld_tgsi_action.c', +'gallivm/lp_bld_tgsi_aos.c', +'gallivm/lp_bld_tgsi_info.c', +'gallivm/lp_bld_tgsi_soa.c', +'gallivm/lp_bld_type.c', +'draw/draw_llvm.c', +'draw/draw_llvm_sample.c', +'draw/draw_vs_llvm.c', +'draw/draw_pt_fetch_shade_pipeline_llvm.c'] + +gallivm_cpp_sources = [ +'gallivm/lp_bld_debug.cpp', +'gallivm/lp_bld_misc.cpp'] + + +gallium = shared_library('gallium', +c_sources, #gallivm_sources, +include_dirs : basic_includes) + diff --git a/src/gallium/drivers/galahad/meson.build b/src/gallium/drivers/galahad/meson.build new file mode 100644 index 0000000..e75c172 --- /dev/null +++ b/src/gallium/drivers/galahad/meson.build @@ -0,0 +1,6 @@ +galahad = shared_library('galahad', +'glhd_objects.c', +'glhd_context.c', +'glhd_screen.c', +include_dirs : basic_includes) + diff --git a/src/gallium/drivers/identity/meson.build b/src/gallium/drivers/identity/meson.build new file mode 100644 index 0000000..0dabc27 --- /dev/null +++ b/src/gallium/drivers/identity/meson.build @@ -0,0 +1,5 @@ +identity = shared_library('identity', +'id_objects.c', +'id_context.c', +'id_screen.c', +include_dirs : basic_includes) diff --git a/src/gallium/drivers/llvmpipe/meson.build b/src/gallium/drivers/llvmpipe/meson.build new file mode 100644 index 0000000..ff390fc --- /dev/null +++ b/src/gallium/drivers/llvmpipe/meson.build @@ -0,0 +1,48 @@ +llvmpipe_sources = [ +'lp_bld_alpha.c', +'lp_bld_blend.c', +'lp_bld_blend_aos.c', +'lp_bld_blend_logicop.c', +'lp_bld_depth.c', +'lp_bld_interp.c', +'lp_clear.c', +'lp_context.c', +'lp_draw_arrays.c', +'lp_fence.c', +'lp_flush.c', +'lp_jit.c', +'lp_memory.c', +'lp_perf.c', +'lp_query.c', +'lp_rast.c', +'lp_rast_debug.c', +'lp_rast_tri.c', +'lp_scene.c', +'lp_scene_queue.c', +'lp_screen.c', +'lp_setup.c', +'lp_setup_line.c', +'lp_setup_point.c', +'lp_setup_tri.c', +'lp_setup_vbuf.c', +'lp_state_blend.c', +'lp_state_clip.c', +'lp_state_derived.c', +'lp_state_fs.c', +'lp_state_setup.c', +'lp_state_gs.c', +'lp_state_rasterizer.c', +'lp_state_sampler.c', +'lp_state_so.c', +'lp_state_surface.c', +'lp_state_vertex.c', +'lp_state_vs.c', +'lp_surface.c', +'lp_tex_sample.c', +'lp_texture.c'] + +llvmpipe = shared_library('llvmpipe', +llvmpipe_sources, +include_dirs : basic_includes) + + diff --git a/src/gallium/drivers/meson.build b/src/gallium/drivers/meson.build new file mode 100644 index 0000000..e34381a --- /dev/null +++ b/src/gallium/drivers/meson.build @@ -0,0 +1,5 @@ +subdir('galahad') +subdir('identity') +#subdir('llvmpipe') +subdir('softpipe') + diff --git a/src/gallium/drivers/softpipe/meson.build b/src/gallium/drivers/softpipe/meson.build new file mode 100644 index 0000000..02db47e --- /dev/null +++ b/src/gallium/drivers/softpipe/meson.build @@ -0,0 +1,34 @@ +sp_sources = [ +'sp_fs_exec.c', +'sp_clear.c', +'sp_fence.c', +'sp_flush.c', +'sp_query.c', +'sp_context.c', +'sp_draw_arrays.c', +'sp_prim_vbuf.c', +'sp_quad_pipe.c', +'sp_quad_stipple.c', +'sp_quad_depth_test.c', +'sp_quad_fs.c', +'sp_quad_blend.c', +'sp_screen.c', +'sp_setup.c', +'sp_state_blend.c', +'sp_state_clip.c', +'sp_state_derived.c', +'sp_state_sampler.c', +'sp_state_shader.c', +'sp_state_so.c', +'sp_state_rasterizer.c', +'sp_state_surface.c', +'sp_state_vertex.c', +'sp_texture.c', +'sp_tex_sample.c', +'sp_tex_tile_cache.c', +'sp_tile_cache.c', +'sp_surface.c'] + +softpipe = shared_library('softpipe', sp_sources, +include_dirs : basic_includes) + diff --git a/src/gallium/meson.build b/src/gallium/meson.build new file mode 100644 index 0000000..c462fb7 --- /dev/null +++ b/src/gallium/meson.build @@ -0,0 +1,3 @@ +subdir('auxiliary') +subdir('drivers') + diff --git a/src/glsl/meson.build b/src/glsl/meson.build new file mode 100644 index 0000000..a2b0ba9 --- /dev/null +++ b/src/glsl/meson.build @@ -0,0 +1,139 @@ +glcpp_lexgen = generator(lex, +output : '@[email protected]', +arguments : ['-o', '@OUTPUT@', '@INPUT@']) + +glcpp_yaccgen = generator(yacc, +output : ['@[email protected]', '@[email protected]'], +arguments : ['-o', '@OUTPUT0@', '-p', 'glcpp_parser_', +'--defines=@OUTPUT1@', '@INPUT@']) + +lexgen = generator(lex, +output : '@[email protected]', +arguments : ['-o', '@OUTPUT@', '@INPUT@']) + +yaccgen = generator(yacc, +output : ['@[email protected]', '@[email protected]'], +arguments : ['-o', '@OUTPUT0@', '-p', '_mesa_glsl_', +'--defines=@OUTPUT1@', '@INPUT@']) + +generated_lexfile = lexgen.process('glsl_lexer.ll') +generated_yaccfile = yaccgen.process('glsl_parser.yy') + +glcpp_lexfile = glcpp_lexgen.process('glcpp/glcpp-lex.l') +glcpp_yaccfile = glcpp_yaccgen.process('glcpp/glcpp-parse.y') + +glcpp_sources = ['ralloc.c', 'glcpp/pp.c'] + +libgl = shared_library('gl', glcpp_sources, +glcpp_lexfile, glcpp_yaccfile, +include_dirs : [basic_includes, include_directories('glcpp')]) + +# libglsl + +glsl_sources = [ +'ast_array_index.cpp', +'ast_expr.cpp', +'ast_function.cpp', +'ast_to_hir.cpp', +'ast_type.cpp', +'builtin_functions.cpp', +'builtin_types.cpp', +'builtin_variables.cpp', +'glsl_parser_extras.cpp', +'glsl_types.cpp', +'glsl_symbol_table.cpp', +'hir_field_selection.cpp', +'ir_basic_block.cpp', +'ir_builder.cpp', +'ir_clone.cpp', +'ir_constant_expression.cpp', +'ir.cpp', +'ir_equals.cpp', +'ir_expression_flattening.cpp', +'ir_function_can_inline.cpp', +'ir_function_detect_recursion.cpp', +'ir_function.cpp', +'ir_hierarchical_visitor.cpp', +'ir_hv_accept.cpp', +'ir_import_prototypes.cpp', +'ir_print_visitor.cpp', +'ir_reader.cpp', +'ir_rvalue_visitor.cpp', +'ir_set_program_inouts.cpp', +'ir_validate.cpp', +'ir_variable_refcount.cpp', +'linker.cpp', +'link_atomics.cpp', +'link_functions.cpp', +'link_interface_blocks.cpp', +'link_uniforms.cpp', +'link_uniform_initializers.cpp', +'link_uniform_block_active_visitor.cpp', +'link_uniform_blocks.cpp', +'link_varyings.cpp', +'loop_analysis.cpp', +'loop_controls.cpp', +'loop_unroll.cpp', +'lower_clip_distance.cpp', +'lower_discard.cpp', +'lower_discard_flow.cpp', +'lower_if_to_cond_assign.cpp', +'lower_instructions.cpp', +'lower_jumps.cpp', +'lower_mat_op_to_vec.cpp', +'lower_noise.cpp', +'lower_offset_array.cpp', +'lower_packed_varyings.cpp', +'lower_named_interface_blocks.cpp', +'lower_packing_builtins.cpp', +'lower_texture_projection.cpp', +'lower_variable_index_to_cond_assign.cpp', +'lower_vec_index_to_cond_assign.cpp', +'lower_vec_index_to_swizzle.cpp', +'lower_vector.cpp', +'lower_vector_insert.cpp', +'lower_output_reads.cpp', +'lower_ubo_reference.cpp', +'opt_algebraic.cpp', +'opt_array_splitting.cpp', +'opt_constant_folding.cpp', +'opt_constant_propagation.cpp', +'opt_constant_variable.cpp', +'opt_copy_propagation.cpp', +'opt_copy_propagation_elements.cpp', +'opt_cse.cpp', +'opt_dead_builtin_varyings.cpp', +'opt_dead_code.cpp', +'opt_dead_code_local.cpp', +'opt_dead_functions.cpp', +'opt_flatten_nested_if_blocks.cpp', +'opt_flip_matrices.cpp', +'opt_function_inlining.cpp', +'opt_if_simplification.cpp', +'opt_noop_swizzle.cpp', +'opt_rebalance_tree.cpp', +'opt_redundant_jumps.cpp', +'opt_structure_splitting.cpp', +'opt_swizzle_swizzle.cpp', +'opt_tree_grafting.cpp', +'opt_vectorize.cpp', +'s_expression.cpp', +'strtod.c' +] + +glsl_generated = [ +'glsl_lexer.cpp', +'glsl_parser.cpp' +] + +libglsl = shared_library('glsl', glsl_sources, +generated_lexfile, generated_yaccfile, +include_dirs : [basic_includes, include_directories('.')] +) + +glsl_compiler_sources = [ +'standalone_scaffolding.cpp', +'main.cpp' +] + + diff --git a/src/loader/meson.build b/src/loader/meson.build new file mode 100644 index 0000000..6f09a16 --- /dev/null +++ b/src/loader/meson.build @@ -0,0 +1,3 @@ +loaderlib = shared_library('loader.c', 'pci_id_driver_map.c', +c_args : '-D__NOT_HAVE_DRM_H') + diff --git a/src/mapi/glapi/gen/extension_helper.py b/src/mapi/glapi/gen/extension_helper.py old mode 100644 new mode 100755 diff --git a/src/mapi/glapi/gen/glX_XML.py b/src/mapi/glapi/gen/glX_XML.py old mode 100644 new mode 100755 diff --git a/src/mapi/glapi/gen/glX_proto_common.py b/src/mapi/glapi/gen/glX_proto_common.py old mode 100644 new mode 100755 diff --git a/src/mapi/glapi/gen/glX_proto_recv.py b/src/mapi/glapi/gen/glX_proto_recv.py old mode 100644 new mode 100755 diff --git a/src/mapi/glapi/gen/glX_proto_send.py b/src/mapi/glapi/gen/glX_proto_send.py old mode 100644 new mode 100755 diff --git a/src/mapi/glapi/gen/glX_proto_size.py b/src/mapi/glapi/gen/glX_proto_size.py old mode 100644 new mode 100755 diff --git a/src/mapi/glapi/gen/glX_server_table.py b/src/mapi/glapi/gen/glX_server_table.py old mode 100644 new mode 100755 diff --git a/src/mapi/glapi/gen/gl_SPARC_asm.py b/src/mapi/glapi/gen/gl_SPARC_asm.py old mode 100644 new mode 100755 diff --git a/src/mapi/glapi/gen/gl_XML.py b/src/mapi/glapi/gen/gl_XML.py old mode 100644 new mode 100755 diff --git a/src/mapi/glapi/gen/gl_apitemp.py b/src/mapi/glapi/gen/gl_apitemp.py old mode 100644 new mode 100755 index 4157032..420e177 --- a/src/mapi/glapi/gen/gl_apitemp.py +++ b/src/mapi/glapi/gen/gl_apitemp.py @@ -310,7 +310,7 @@ if __name__ == '__main__': file_name = "gl_API.xml" try: - (args, trail) = getopt.getopt(sys.argv[1:], "f:c") + (args, trail) = getopt.getopt(sys.argv[1:], "f:o:c") except Exception,e: show_usage() @@ -320,6 +320,8 @@ if __name__ == '__main__': file_name = val elif arg == "-c": es = True + elif arg == "-o": + sys.stdout = file(val, 'w') api = gl_XML.parse_GL_API(file_name, glX_XML.glx_item_factory()) diff --git a/src/mapi/glapi/gen/gl_enums.py b/src/mapi/glapi/gen/gl_enums.py old mode 100644 new mode 100755 index 0214932..c46d641 --- a/src/mapi/glapi/gen/gl_enums.py +++ b/src/mapi/glapi/gen/gl_enums.py @@ -201,7 +201,7 @@ def show_usage(): if __name__ == '__main__': try: - (args, trail) = getopt.getopt(sys.argv[1:], "f:") + (args, trail) = getopt.getopt(sys.argv[1:], "f:o:") except Exception,e: show_usage() @@ -210,6 +210,8 @@ if __name__ == '__main__': if arg == "-f": api = gl_XML.parse_GL_API( val ) api_list.append(api); + elif arg == "-o": + sys.stdout = file(val, 'w') printer = PrintGlEnums() printer.Print( api_list ) diff --git a/src/mapi/glapi/gen/gl_genexec.py b/src/mapi/glapi/gen/gl_genexec.py old mode 100644 new mode 100755 index 4609193..9a19793 --- a/src/mapi/glapi/gen/gl_genexec.py +++ b/src/mapi/glapi/gen/gl_genexec.py @@ -214,13 +214,15 @@ if __name__ == '__main__': file_name = "gl_and_es_API.xml" try: - (args, trail) = getopt.getopt(sys.argv[1:], "m:f:") + (args, trail) = getopt.getopt(sys.argv[1:], "m:f:o:") except Exception,e: show_usage() for (arg,val) in args: if arg == "-f": file_name = val + elif arg == "-o": + sys.stdout = file(val, 'w') printer = PrintCode() diff --git a/src/mapi/glapi/gen/gl_gentable.py b/src/mapi/glapi/gen/gl_gentable.py old mode 100644 new mode 100755 diff --git a/src/mapi/glapi/gen/gl_offsets.py b/src/mapi/glapi/gen/gl_offsets.py old mode 100644 new mode 100755 diff --git a/src/mapi/glapi/gen/gl_procs.py b/src/mapi/glapi/gen/gl_procs.py old mode 100644 new mode 100755 index b1fffc4..2f16899 --- a/src/mapi/glapi/gen/gl_procs.py +++ b/src/mapi/glapi/gen/gl_procs.py @@ -170,7 +170,7 @@ if __name__ == '__main__': file_name = "gl_API.xml" try: - (args, trail) = getopt.getopt(sys.argv[1:], "f:c") + (args, trail) = getopt.getopt(sys.argv[1:], "f:o:c") except Exception,e: show_usage() @@ -180,6 +180,8 @@ if __name__ == '__main__': file_name = val elif arg == "-c": es = True + elif arg == "-o": + sys.stdout = file(val, 'w') api = gl_XML.parse_GL_API(file_name, glX_XML.glx_item_factory()) printer = PrintGlProcs(es) diff --git a/src/mapi/glapi/gen/gl_table.py b/src/mapi/glapi/gen/gl_table.py old mode 100644 new mode 100755 index fd38468..b9608e1 --- a/src/mapi/glapi/gen/gl_table.py +++ b/src/mapi/glapi/gen/gl_table.py @@ -209,12 +209,13 @@ if __name__ == '__main__': file_name = "gl_API.xml" try: - (args, trail) = getopt.getopt(sys.argv[1:], "f:m:c:") + (args, trail) = getopt.getopt(sys.argv[1:], "f:m:c:o:") except Exception,e: show_usage() mode = "table" es = None + outfile = None for (arg,val) in args: if arg == "-f": file_name = val @@ -222,6 +223,9 @@ if __name__ == '__main__': mode = val elif arg == "-c": es = val + elif arg == "-o": + sys.stdout = file(val, 'w') + if mode == "table": printer = PrintGlTable(es) diff --git a/src/mapi/glapi/gen/gl_x86-64_asm.py b/src/mapi/glapi/gen/gl_x86-64_asm.py old mode 100644 new mode 100755 diff --git a/src/mapi/glapi/gen/gl_x86_asm.py b/src/mapi/glapi/gen/gl_x86_asm.py old mode 100644 new mode 100755 diff --git a/src/mapi/glapi/gen/license.py b/src/mapi/glapi/gen/license.py old mode 100644 new mode 100755 diff --git a/src/mapi/glapi/gen/mesadef.py b/src/mapi/glapi/gen/mesadef.py old mode 100644 new mode 100755 diff --git a/src/mapi/glapi/gen/meson.build b/src/mapi/glapi/gen/meson.build new file mode 100644 index 0000000..1ea1c3c --- /dev/null +++ b/src/mapi/glapi/gen/meson.build @@ -0,0 +1,120 @@ +xml_files = [ +'gl_and_es_API.xml', +'AMD_draw_buffers_blend.xml', +'AMD_performance_monitor.xml', +'APPLE_object_purgeable.xml', +'APPLE_vertex_array_object.xml', +'ARB_base_instance.xml', +'ARB_blend_func_extended.xml', +'ARB_clear_buffer_object.xml', +'ARB_clear_texture.xml', +'ARB_color_buffer_float.xml', +'ARB_compressed_texture_pixel_storage.xml', +'ARB_compute_shader.xml', +'ARB_copy_buffer.xml', +'ARB_debug_output.xml', +'ARB_depth_buffer_float.xml', +'ARB_depth_clamp.xml', +'ARB_draw_buffers_blend.xml', +'ARB_draw_buffers.xml', +'ARB_draw_elements_base_vertex.xml', +'ARB_draw_indirect.xml', +'ARB_draw_instanced.xml', +'ARB_ES2_compatibility.xml', +'ARB_ES3_compatibility.xml', +'ARB_framebuffer_object.xml', +'ARB_geometry_shader4.xml', +'ARB_get_program_binary.xml', +'ARB_gpu_shader5.xml', +'ARB_instanced_arrays.xml', +'ARB_internalformat_query.xml', +'ARB_invalidate_subdata.xml', +'ARB_map_buffer_range.xml', +'ARB_multi_bind.xml', +'ARB_robustness.xml', +'ARB_sampler_objects.xml', +'ARB_sample_shading.xml', +'ARB_seamless_cube_map.xml', +'ARB_separate_shader_objects.xml', +'ARB_shader_atomic_counters.xml', +'ARB_shader_image_load_store.xml', +'ARB_sync.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_rgb10_a2ui.xml', +'ARB_texture_rg.xml', +'ARB_texture_storage_multisample.xml', +'ARB_texture_storage.xml', +'ARB_texture_view.xml', +'ARB_uniform_buffer_object.xml', +'ARB_vertex_array_object.xml', +'ARB_vertex_attrib_binding.xml', +'ARB_vertex_type_2_10_10_10_rev.xml', +'ARB_viewport_array.xml', +'es_EXT.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', +'gl_and_glX_API.xml', +'gl_API.xml', +'glX_API.xml', +'INTEL_performance_query.xml', +'KHR_debug.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', +] + + +dispatch = custom_target('dispatch', +output : 'dispatch.h', +input : xml_files, +command : [find_program('gl_table.py'), '-m', 'remap_table', '-f', '@0@/gl_and_es_API.xml'.format(meson.current_source_dir()), '-o', '@OUTPUT@', '@INPUT@']) + +glapitable = custom_target('glapitable', +output : 'glapitable.h', +input : xml_files, +command : [find_program('gl_table.py'), '-f', '@0@/gl_and_es_API.xml'.format(meson.current_source_dir()), '-o', '@OUTPUT@', '@INPUT@']) + +glapitemp = custom_target('glapitemp', +output : 'glapitemp.h', +input : xml_files, +command : [find_program('gl_apitemp.py'), '-f', '@0@/gl_and_es_API.xml'.format(meson.current_source_dir()), '-o', '@OUTPUT@', '@INPUT@']) + +glprocs = custom_target('glprocs', +output : 'glprocs.h', +input : xml_files, +command : [find_program('gl_procs.py'), '-f', '@0@/gl_and_es_API.xml'.format(meson.current_source_dir()), '-o', '@OUTPUT@', '@INPUT@']) + +remap_helper = custom_target('remap_helper', +output : 'remap_helper.h', +input : xml_files, +command : [find_program('remap_helper.py'), '-f', '@0@/gl_and_es_API.xml'.format(meson.current_source_dir()), '-o', '@OUTPUT@', '@INPUT@']) + +enums = custom_target('enums', +output : 'enums.c', +input : xml_files, +command : [find_program('gl_enums.py'), '-f', '@0@/gl_and_es_API.xml'.format(meson.current_source_dir()), '-o', '@OUTPUT@', '@INPUT@']) + +api_exec = custom_target('api_exec', +output : 'api_exec.c', +input : xml_files, +command : [find_program('gl_genexec.py'), '-f', '@0@/gl_and_es_API.xml'.format(meson.current_source_dir()), '-o', '@OUTPUT@', '@INPUT@']) + diff --git a/src/mapi/glapi/gen/remap_helper.py b/src/mapi/glapi/gen/remap_helper.py old mode 100644 new mode 100755 index e1a13d0..406db4b --- a/src/mapi/glapi/gen/remap_helper.py +++ b/src/mapi/glapi/gen/remap_helper.py @@ -172,7 +172,7 @@ if __name__ == '__main__': file_name = "gl_API.xml" try: - (args, trail) = getopt.getopt(sys.argv[1:], "f:c:") + (args, trail) = getopt.getopt(sys.argv[1:], "f:c:o:") except Exception,e: show_usage() @@ -182,6 +182,8 @@ if __name__ == '__main__': file_name = val elif arg == "-c": es = val + elif arg == "-o": + sys.stdout = file(val, 'w') api = gl_XML.parse_GL_API( file_name ) diff --git a/src/mapi/glapi/gen/typeexpr.py b/src/mapi/glapi/gen/typeexpr.py old mode 100644 new mode 100755 diff --git a/src/mapi/glapi/glapi_entrypoint.c b/src/mapi/glapi/glapi_entrypoint.c index 362a8f1..d94fcd0 100644 --- a/src/mapi/glapi/glapi_entrypoint.c +++ b/src/mapi/glapi/glapi_entrypoint.c @@ -45,7 +45,7 @@ extern const GLubyte gl_dispatch_functions_start[]; #endif /* USE_X86_ASM */ -#if defined(DISPATCH_FUNCTION_SIZE) +#if !defined(DISPATCH_FUNCTION_SIZE) _glapi_proc get_entrypoint_address(unsigned int functionOffset) diff --git a/src/mapi/glapi/meson.build b/src/mapi/glapi/meson.build new file mode 100644 index 0000000..f2bda77 --- /dev/null +++ b/src/mapi/glapi/meson.build @@ -0,0 +1,14 @@ +subdir('gen') + +glapi = shared_library('glapi', +'glapi_dispatch.c', +'glapi_entrypoint.c', +'glapi_getproc.c', +'glapi_nop.c', +'glapi.c', +'glapi.h', +glapitemp, glapitable, +include_dirs : basic_includes, +c_args : ['-DMAPI_MODE_UTIL', '-D_GLAPI_NO_EXPORTS'] +) + diff --git a/src/mapi/meson.build b/src/mapi/meson.build new file mode 100644 index 0000000..1fe588c --- /dev/null +++ b/src/mapi/meson.build @@ -0,0 +1,2 @@ +subdir('glapi') + diff --git a/src/mesa/meson.build b/src/mesa/meson.build new file mode 100644 index 0000000..d30b3c8 --- /dev/null +++ b/src/mesa/meson.build @@ -0,0 +1,312 @@ +main_sources = [ + 'main/api_arrayelt.c', +# 'main/api_exec.c', + 'main/api_loopback.c', + 'main/api_validate.c', + 'main/accum.c', + 'main/arbprogram.c', + 'main/atifragshader.c', + 'main/attrib.c', + 'main/arrayobj.c', + 'main/blend.c', + 'main/blit.c', + 'main/bufferobj.c', + 'main/buffers.c', + 'main/clear.c', + 'main/clip.c', + 'main/colortab.c', + 'main/compute.c', + 'main/condrender.c', + 'main/context.c', + 'main/convolve.c', + 'main/cpuinfo.c', + 'main/debug.c', + 'main/depth.c', + 'main/dlist.c', + 'main/drawpix.c', + 'main/drawtex.c', + 'main/enable.c', + # 'main/enums.c', + 'main/errors.c', + 'main/es1_conversion.c', + 'main/eval.c', + 'main/execmem.c', + 'main/extensions.c', + 'main/fbobject.c', + 'main/feedback.c', + 'main/ff_fragment_shader.cpp', + 'main/ffvertex_prog.c', + 'main/fog.c', + 'main/formatquery.c', + 'main/formats.c', + 'main/format_pack.c', + 'main/format_unpack.c', + 'main/framebuffer.c', + 'main/genmipmap.c', + 'main/getstring.c', + 'main/glformats.c', + 'main/hash.c', + 'main/hash_table.c', + 'main/hint.c', + 'main/histogram.c', + 'main/image.c', + 'main/imports.c', + 'main/light.c', + 'main/lines.c', + 'main/matrix.c', + 'main/mipmap.c', + 'main/mm.c', + 'main/multisample.c', + 'main/objectlabel.c', + 'main/pack.c', + 'main/pbo.c', + 'main/performance_monitor.c', + 'main/pipelineobj.c', + 'main/pixel.c', + 'main/pixelstore.c', + 'main/pixeltransfer.c', + 'main/points.c', + 'main/polygon.c', + 'main/querymatrix.c', + 'main/queryobj.c', + 'main/rastpos.c', + 'main/readpix.c', + 'main/remap.c', + 'main/renderbuffer.c', + 'main/samplerobj.c', + 'main/scissor.c', + 'main/set.c', + 'main/shaderapi.c', + 'main/shaderimage.c', + 'main/shaderobj.c', + 'main/shader_query.cpp', + 'main/shared.c', + 'main/state.c', + 'main/stencil.c', + 'main/syncobj.c', + 'main/texcompress.c', + 'main/texcompress_cpal.c', + 'main/texcompress_rgtc.c', + 'main/texcompress_s3tc.c', + 'main/texcompress_fxt1.c', + 'main/texcompress_etc.c', + 'main/texenv.c', + 'main/texformat.c', + 'main/texgen.c', + 'main/texgetimage.c', + 'main/teximage.c', + 'main/texobj.c', + 'main/texparam.c', + 'main/texstate.c', + 'main/texstorage.c', + 'main/texstore.c', + 'main/texturebarrier.c', + 'main/textureview.c', + 'main/transformfeedback.c', + 'main/uniform_query.cpp', + 'main/uniforms.c', + 'main/varray.c', + 'main/vdpau.c', + 'main/version.c', + 'main/viewport.c', + 'main/vtxfmt.c', +] + +glget_sources = [ +# 'main/get.c', +] + +math_sources = [ + 'math/m_debug_clip.c', + 'math/m_debug_norm.c', + 'math/m_debug_xform.c', + 'math/m_eval.c', + 'math/m_matrix.c', + 'math/m_translate.c', + 'math/m_vector.c', + 'math/m_xform.c', +] + +swrast_sources = [ + 'swrast/s_aaline.c', + 'swrast/s_aatriangle.c', + 'swrast/s_alpha.c', + 'swrast/s_atifragshader.c', + 'swrast/s_bitmap.c', + 'swrast/s_blend.c', + 'swrast/s_blit.c', + 'swrast/s_clear.c', + 'swrast/s_copypix.c', + 'swrast/s_context.c', + 'swrast/s_depth.c', + 'swrast/s_drawpix.c', + 'swrast/s_feedback.c', + 'swrast/s_fog.c', + 'swrast/s_fragprog.c', + 'swrast/s_lines.c', + 'swrast/s_logic.c', + 'swrast/s_masking.c', + 'swrast/s_points.c', + 'swrast/s_renderbuffer.c', + 'swrast/s_span.c', + 'swrast/s_stencil.c', + 'swrast/s_texcombine.c', + 'swrast/s_texfetch.c', + 'swrast/s_texfilter.c', + 'swrast/s_texrender.c', + 'swrast/s_texture.c', + 'swrast/s_triangle.c', + 'swrast/s_zoom.c', +] + +swrast_setup_sources = [ + 'swrast_setup/ss_context.c', + 'swrast_setup/ss_triangle.c', +] + +tnl_sources = [ + 'tnl/t_context.c', + 'tnl/t_pipeline.c', + 'tnl/t_draw.c', + 'tnl/t_rasterpos.c', + 'tnl/t_vb_program.c', + 'tnl/t_vb_render.c', + 'tnl/t_vb_texgen.c', + 'tnl/t_vb_texmat.c', + 'tnl/t_vb_vertex.c', + 'tnl/t_vb_fog.c', + 'tnl/t_vb_light.c', + 'tnl/t_vb_normals.c', + 'tnl/t_vb_points.c', + 'tnl/t_vp_build.c', + 'tnl/t_vertex.c', + 'tnl/t_vertex_sse.c', + 'tnl/t_vertex_generic.c', +] + +vbo_sources = [ + 'vbo/vbo_context.c', + 'vbo/vbo_exec.c', + 'vbo/vbo_exec_api.c', + 'vbo/vbo_exec_array.c', + 'vbo/vbo_exec_draw.c', + 'vbo/vbo_exec_eval.c', + 'vbo/vbo_noop.c', + 'vbo/vbo_primitive_restart.c', + 'vbo/vbo_rebase.c', + 'vbo/vbo_split.c', + 'vbo/vbo_split_copy.c', + 'vbo/vbo_split_inplace.c', + 'vbo/vbo_save.c', + 'vbo/vbo_save_api.c', + 'vbo/vbo_save_draw.c', + 'vbo/vbo_save_loopback.c', +] + +statetracker_sources = [ + 'state_tracker/st_atom.c', + 'state_tracker/st_atom_array.c', + 'state_tracker/st_atom_blend.c', + 'state_tracker/st_atom_clip.c', + 'state_tracker/st_atom_constbuf.c', + 'state_tracker/st_atom_depth.c', + 'state_tracker/st_atom_framebuffer.c', + 'state_tracker/st_atom_msaa.c', + 'state_tracker/st_atom_pixeltransfer.c', + 'state_tracker/st_atom_sampler.c', + 'state_tracker/st_atom_scissor.c', + 'state_tracker/st_atom_shader.c', + 'state_tracker/st_atom_rasterizer.c', + 'state_tracker/st_atom_stipple.c', + 'state_tracker/st_atom_texture.c', + 'state_tracker/st_atom_viewport.c', + 'state_tracker/st_cb_bitmap.c', + 'state_tracker/st_cb_blit.c', + 'state_tracker/st_cb_bufferobjects.c', + 'state_tracker/st_cb_clear.c', + 'state_tracker/st_cb_condrender.c', + 'state_tracker/st_cb_flush.c', + 'state_tracker/st_cb_drawpixels.c', + 'state_tracker/st_cb_drawtex.c', + 'state_tracker/st_cb_eglimage.c', + 'state_tracker/st_cb_fbo.c', + 'state_tracker/st_cb_feedback.c', + 'state_tracker/st_cb_msaa.c', + 'state_tracker/st_cb_program.c', + 'state_tracker/st_cb_queryobj.c', + 'state_tracker/st_cb_rasterpos.c', + 'state_tracker/st_cb_readpixels.c', + 'state_tracker/st_cb_syncobj.c', + 'state_tracker/st_cb_strings.c', + 'state_tracker/st_cb_texture.c', + 'state_tracker/st_cb_texturebarrier.c', + 'state_tracker/st_cb_viewport.c', + 'state_tracker/st_cb_xformfb.c', + 'state_tracker/st_context.c', + 'state_tracker/st_debug.c', + 'state_tracker/st_draw.c', + 'state_tracker/st_draw_feedback.c', + 'state_tracker/st_extensions.c', + 'state_tracker/st_format.c', + 'state_tracker/st_glsl_to_tgsi.cpp', + 'state_tracker/st_gen_mipmap.c', + 'state_tracker/st_manager.c', + 'state_tracker/st_mesa_to_tgsi.c', + 'state_tracker/st_program.c', + 'state_tracker/st_texture.c', + 'state_tracker/st_vdpau.c', +] + +#env.Append(YACCFLAGS = '-d -p "_mesa_program_"') +#program_lex = env.CFile('program/lex.yy.c', 'program/program_lexer.l') +#program_parse = env.CFile('program/program_parse.tab.c', +# 'program/program_parse.y') + +program_sources = [ + 'program/arbprogparse.c', + 'program/prog_hash_table.c', + 'program/ir_to_mesa.cpp', + 'program/program.c', + 'program/program_parse_extra.c', + 'program/prog_cache.c', + 'program/prog_execute.c', + 'program/prog_instruction.c', + 'program/prog_noise.c', + 'program/prog_optimize.c', + 'program/prog_opt_constant_fold.c', + 'program/prog_parameter.c', + 'program/prog_parameter_layout.c', + 'program/prog_print.c', + 'program/prog_statevars.c', + 'program/programopt.c', + 'program/sampler.cpp', + 'program/symbol_table.c', + 'program/string_to_uint_map.cpp', +# program_lex, +# program_parse[0], +] + +common_driver_sources = [ + 'drivers/common/driverfuncs.c', + 'drivers/common/meta.c', + 'drivers/common/meta_blit.c', + 'drivers/common/meta_generate_mipmap.c' +] + +mesa_sources = [ + main_sources, + glget_sources, + math_sources, + program_sources, + vbo_sources, + tnl_sources, + swrast_sources, + swrast_setup_sources, + common_driver_sources, + statetracker_sources] + +mesa = shared_library('mesa', mesa_sources, +dispatch, +include_dirs : basic_includes) + + diff --git a/src/meson.build b/src/meson.build new file mode 100644 index 0000000..c71a404 --- /dev/null +++ b/src/meson.build @@ -0,0 +1,6 @@ +subdir('glsl') +subdir('loader') +subdir('mapi') +subdir('mesa') +subdir('gallium') + -- 2.0.1
_______________________________________________ mesa-dev mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/mesa-dev
