[Mesa-dev] [PATCH v2 09/21] meson: Build gallium auxiliary

Dylan Baker dylan at pnwbakers.com
Thu Oct 12 17:38:36 UTC 2017


v2: - guard gallivm files with "with_llvm" instead of "dep_llvm.found()"

Signed-off-by: Dylan Baker <dylanx.c.baker at intel.com>
Reviewed-by: Eric Anholt <eric at anholt.net> (v1)
---
 meson.build                       |  36 ++-
 meson_options.txt                 |   4 +-
 src/gallium/auxiliary/meson.build | 528 ++++++++++++++++++++++++++++++++++++++
 src/{ => gallium}/meson.build     |  44 +---
 src/meson.build                   |   2 +-
 5 files changed, 564 insertions(+), 50 deletions(-)
 create mode 100644 src/gallium/auxiliary/meson.build
 copy src/{ => gallium}/meson.build (52%)

diff --git a/meson.build b/meson.build
index 39d800ee031..8c196f6aba0 100644
--- a/meson.build
+++ b/meson.build
@@ -133,11 +133,13 @@ endif
 # TODO: there are more platforms required for non-vulkan drivers
 with_platform_wayland = false
 with_platform_x11 = false
+with_platform_drm = false
 _platforms = get_option('platforms')
 if _platforms != ''
   _split = _platforms.split(',')
   with_platform_x11 = _split.contains('x11')
   with_platform_wayland = _split.contains('wayland')
+  with_platform_drm = _split.contains('drm')
 endif
 
 with_gbm = get_option('gbm')
@@ -551,7 +553,10 @@ dep_selinux = []
 
 # TODO: llvm-prefix and llvm-shared-libs
 
-# TODO: unwind (llvm [radeon, gallivm] and gallium)
+dep_unwind = dependency('libunwind', required : false)
+if dep_unwind.found()
+  pre_args += '-DHAVE_LIBUNWIND'
+endif
 
 # TODO: flags for opengl, gles, dri
 
@@ -561,9 +566,6 @@ dep_selinux = []
 
 # TODO: osmesa provider
 
-# TODO: flags for xa, egl, gbm, nin, xvmc, vdpau, omx, va, opencl,
-#       gallium-tests,
-
 # TODO: symbol mangling
 
 # TODO: egl configuration
@@ -645,8 +647,6 @@ endif
 
 # TODO: egl
 
-# TODO: xa
-
 # TODO: vallium G3DVL
 
 # TODO: nine
@@ -655,7 +655,29 @@ endif
 
 # TODO: egl sans x11
 
-# TODO: xvmc
+with_gallium_xvmc = false
+with_gallium_vdpau = false
+with_gallium_omx = false  # this is bellagio
+with_gallium_va = false
+with_gallium_media = false
+dep_va = []
+_drivers = get_option('gallium-media')
+if _drivers != ''
+  _split = _drivers.split(',')
+  with_gallium_xvmc = _split.contains('xvmc')
+  with_gallium_vdpau = _split.contains('vdpau')
+  with_gallium_omx = _split.contains('omx')
+  with_gallium_va = _split.contains('va')
+  with_gallium_media = (with_gallium_xvmc or with_gallium_vdpau or
+                        with_gallium_omx or with_gallium_va)
+  if with_gallium_media
+    dep_va = [
+      dependency('x11-xcb'),
+      dependency('xcb'),
+      dependency('xcb-dri2', version : '>= 1.8'), # FIXME: dedup version
+    ]
+  endif
+endif
 
 # TODO: gallium tests
 
diff --git a/meson_options.txt b/meson_options.txt
index 48e8867aa4c..d29b12e5959 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -18,7 +18,7 @@
 # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 # SOFTWARE.
 
-option('platforms', type : 'string', value : 'x11,wayland',
+option('platforms', type : 'string', value : 'x11,wayland,drm',
        description : 'comma separated list of window systems to support. wayland, x11, surfaceless, drm, etc.')
 option('dri3', type : 'combo', value : 'auto', choices : ['auto', 'yes', 'no'],
        description : 'enable support for dri3')
@@ -28,6 +28,8 @@ option('dri-drivers-path', type : 'string', value : '',
        description : 'Location of dri drivers. Default: $libdir/dri.')
 option('gallium-drivers', type : 'string', value : 'radeonsi',
        description : 'comma separated list of gallium drivers to build.')
+option('gallium-media', type : 'string', value : '',
+       description : 'comma separated list of gallium media APIs to build (omx,va,vdpau,xvmc).')
 option('vulkan-drivers', type : 'string', value : 'intel,amd',
        description : 'comma separated list of vulkan drivers to build.')
 option('shader-cache', type : 'boolean', value : true,
diff --git a/src/gallium/auxiliary/meson.build b/src/gallium/auxiliary/meson.build
new file mode 100644
index 00000000000..bb7c0506d84
--- /dev/null
+++ b/src/gallium/auxiliary/meson.build
@@ -0,0 +1,528 @@
+# Copyright © 2017 Dylan Baker
+
+# 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 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.
+
+files_libgallium = files(
+  'cso_cache/cso_cache.c',
+  'cso_cache/cso_cache.h',
+  'cso_cache/cso_context.c',
+  'cso_cache/cso_context.h',
+  'cso_cache/cso_hash.c',
+  'cso_cache/cso_hash.h',
+  'draw/draw_cliptest_tmp.h',
+  'draw/draw_context.c',
+  'draw/draw_context.h',
+  'draw/draw_decompose_tmp.h',
+  'draw/draw_fs.c',
+  'draw/draw_fs.h',
+  'draw/draw_gs.c',
+  'draw/draw_gs.h',
+  'draw/draw_gs_tmp.h',
+  'draw/draw_pipe_aaline.c',
+  'draw/draw_pipe_aapoint.c',
+  'draw/draw_pipe.c',
+  'draw/draw_pipe.h',
+  '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_prim_assembler.h',
+  'draw/draw_prim_assembler_tmp.h',
+  'draw/draw_private.h',
+  'draw/draw_pt.c',
+  'draw/draw_pt_decompose.h',
+  '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.h',
+  'draw/draw_pt_post_vs.c',
+  'draw/draw_pt_so_emit.c',
+  'draw/draw_pt_util.c',
+  'draw/draw_pt_vsplit.c',
+  'draw/draw_pt_vsplit_tmp.h',
+  'draw/draw_so_emit_tmp.h',
+  'draw/draw_split_tmp.h',
+  'draw/draw_vbuf.h',
+  'draw/draw_vertex.c',
+  'draw/draw_vertex.h',
+  'draw/draw_vs.c',
+  'draw/draw_vs_exec.c',
+  'draw/draw_vs.h',
+  'draw/draw_vs_variant.c',
+  'hud/font.c',
+  'hud/font.h',
+  'hud/hud_context.c',
+  'hud/hud_context.h',
+  'hud/hud_cpu.c',
+  'hud/hud_nic.c',
+  'hud/hud_cpufreq.c',
+  'hud/hud_diskstat.c',
+  'hud/hud_sensors_temp.c',
+  'hud/hud_driver_query.c',
+  'hud/hud_fps.c',
+  'hud/hud_private.h',
+  'indices/u_indices.h',
+  'indices/u_indices_priv.h',
+  'indices/u_primconvert.c',
+  'indices/u_primconvert.h',
+  'os/os_memory_aligned.h',
+  'os/os_memory_debug.h',
+  'os/os_memory_stdc.h',
+  'os/os_memory.h',
+  'os/os_misc.c',
+  'os/os_misc.h',
+  'os/os_mman.h',
+  'os/os_process.c',
+  'os/os_process.h',
+  'os/os_thread.h',
+  'os/os_time.c',
+  'os/os_time.h',
+  'pipebuffer/pb_buffer_fenced.c',
+  'pipebuffer/pb_buffer_fenced.h',
+  'pipebuffer/pb_buffer.h',
+  'pipebuffer/pb_buffer_malloc.c',
+  'pipebuffer/pb_bufmgr_alt.c',
+  'pipebuffer/pb_bufmgr_cache.c',
+  'pipebuffer/pb_bufmgr_debug.c',
+  'pipebuffer/pb_bufmgr.h',
+  'pipebuffer/pb_bufmgr_mm.c',
+  'pipebuffer/pb_bufmgr_ondemand.c',
+  'pipebuffer/pb_bufmgr_pool.c',
+  'pipebuffer/pb_bufmgr_slab.c',
+  'pipebuffer/pb_cache.c',
+  'pipebuffer/pb_cache.h',
+  'pipebuffer/pb_slab.c',
+  'pipebuffer/pb_slab.h',
+  'pipebuffer/pb_validate.c',
+  'pipebuffer/pb_validate.h',
+  'postprocess/filters.h',
+  'postprocess/postprocess.h',
+  'postprocess/pp_celshade.c',
+  'postprocess/pp_celshade.h',
+  'postprocess/pp_colors.c',
+  'postprocess/pp_colors.h',
+  'postprocess/pp_filters.h',
+  'postprocess/pp_init.c',
+  'postprocess/pp_mlaa_areamap.h',
+  'postprocess/pp_mlaa.c',
+  'postprocess/pp_mlaa.h',
+  'postprocess/pp_private.h',
+  'postprocess/pp_program.c',
+  'postprocess/pp_run.c',
+  'rbug/rbug_connection.c',
+  'rbug/rbug_connection.h',
+  'rbug/rbug_context.c',
+  'rbug/rbug_context.h',
+  'rbug/rbug_core.c',
+  'rbug/rbug_core.h',
+  'rbug/rbug_demarshal.c',
+  'rbug/rbug.h',
+  'rbug/rbug_internal.h',
+  'rbug/rbug_proto.h',
+  'rbug/rbug_shader.c',
+  'rbug/rbug_shader.h',
+  'rbug/rbug_texture.c',
+  'rbug/rbug_texture.h',
+  'rtasm/rtasm_cpu.c',
+  'rtasm/rtasm_cpu.h',
+  'rtasm/rtasm_execmem.c',
+  'rtasm/rtasm_execmem.h',
+  'rtasm/rtasm_x86sse.c',
+  'rtasm/rtasm_x86sse.h',
+  'tgsi/tgsi_aa_point.c',
+  'tgsi/tgsi_aa_point.h',
+  'tgsi/tgsi_build.c',
+  'tgsi/tgsi_build.h',
+  'tgsi/tgsi_dump.c',
+  'tgsi/tgsi_dump.h',
+  'tgsi/tgsi_exec.c',
+  'tgsi/tgsi_exec.h',
+  'tgsi/tgsi_emulate.c',
+  'tgsi/tgsi_emulate.h',
+  'tgsi/tgsi_from_mesa.c',
+  'tgsi/tgsi_from_mesa.h',
+  'tgsi/tgsi_info.c',
+  'tgsi/tgsi_info.h',
+  'tgsi/tgsi_info_opcodes.h',
+  'tgsi/tgsi_iterate.c',
+  'tgsi/tgsi_iterate.h',
+  'tgsi/tgsi_lowering.c',
+  'tgsi/tgsi_lowering.h',
+  'tgsi/tgsi_opcode_tmp.h',
+  'tgsi/tgsi_parse.c',
+  'tgsi/tgsi_parse.h',
+  'tgsi/tgsi_point_sprite.c',
+  'tgsi/tgsi_point_sprite.h',
+  'tgsi/tgsi_sanity.c',
+  'tgsi/tgsi_sanity.h',
+  'tgsi/tgsi_scan.c',
+  'tgsi/tgsi_scan.h',
+  'tgsi/tgsi_strings.c',
+  'tgsi/tgsi_strings.h',
+  'tgsi/tgsi_text.c',
+  'tgsi/tgsi_text.h',
+  'tgsi/tgsi_transform.c',
+  'tgsi/tgsi_transform.h',
+  'tgsi/tgsi_two_side.c',
+  'tgsi/tgsi_two_side.h',
+  'tgsi/tgsi_ureg.c',
+  'tgsi/tgsi_ureg.h',
+  'tgsi/tgsi_util.c',
+  'tgsi/tgsi_util.h',
+  'translate/translate.c',
+  'translate/translate.h',
+  'translate/translate_cache.c',
+  'translate/translate_cache.h',
+  'translate/translate_generic.c',
+  'translate/translate_sse.c',
+  'util/dbghelp.h',
+  'util/u_bitcast.h',
+  'util/u_bitmask.c',
+  'util/u_bitmask.h',
+  'util/u_blend.h',
+  'util/u_blit.c',
+  'util/u_blit.h',
+  'util/u_blitter.c',
+  'util/u_blitter.h',
+  'util/u_box.h',
+  'util/u_cache.c',
+  'util/u_cache.h',
+  'util/u_cpu_detect.c',
+  'util/u_cpu_detect.h',
+  'util/u_debug.c',
+  'util/u_debug.h',
+  'util/u_debug_describe.c',
+  'util/u_debug_describe.h',
+  'util/u_debug_flush.c',
+  'util/u_debug_flush.h',
+  'util/u_debug_image.c',
+  'util/u_debug_image.h',
+  'util/u_debug_memory.c',
+  'util/u_debug_refcnt.c',
+  'util/u_debug_refcnt.h',
+  'util/u_debug_stack.c',
+  'util/u_debug_stack.h',
+  'util/u_debug_symbol.c',
+  'util/u_debug_symbol.h',
+  'util/u_dirty_flags.h',
+  'util/u_dirty_surfaces.h',
+  'util/u_dl.c',
+  'util/u_dl.h',
+  'util/u_draw.c',
+  'util/u_draw.h',
+  'util/u_draw_quad.c',
+  'util/u_draw_quad.h',
+  'util/u_dual_blend.h',
+  'util/u_dump_defines.c',
+  'util/u_dump.h',
+  'util/u_dump_state.c',
+  'util/u_fifo.h',
+  'util/u_format.c',
+  'util/u_format.h',
+  'util/u_format_etc.c',
+  'util/u_format_etc.h',
+  'util/u_format_latc.c',
+  'util/u_format_latc.h',
+  'util/u_format_other.c',
+  'util/u_format_other.h',
+  'util/u_format_rgtc.c',
+  'util/u_format_rgtc.h',
+  'util/u_format_s3tc.c',
+  'util/u_format_s3tc.h',
+  'util/u_format_tests.c',
+  'util/u_format_tests.h',
+  'util/u_format_yuv.c',
+  'util/u_format_yuv.h',
+  'util/u_format_zs.c',
+  'util/u_format_zs.h',
+  'util/u_framebuffer.c',
+  'util/u_framebuffer.h',
+  'util/u_gen_mipmap.c',
+  'util/u_gen_mipmap.h',
+  'util/u_half.h',
+  'util/u_handle_table.c',
+  'util/u_handle_table.h',
+  'util/u_hash_table.c',
+  'util/u_hash_table.h',
+  'util/u_helpers.c',
+  'util/u_helpers.h',
+  'util/u_idalloc.c',
+  'util/u_idalloc.h',
+  'util/u_index_modify.c',
+  'util/u_index_modify.h',
+  'util/u_inlines.h',
+  'util/u_linear.c',
+  'util/u_linear.h',
+  'util/u_log.c',
+  'util/u_log.h',
+  'util/u_math.c',
+  'util/u_math.h',
+  'util/u_memory.h',
+  'util/u_mm.c',
+  'util/u_mm.h',
+  'util/u_network.c',
+  'util/u_network.h',
+  'util/u_pack_color.h',
+  'util/u_pointer.h',
+  'util/u_prim.h',
+  'util/u_prim_restart.c',
+  'util/u_prim_restart.h',
+  'util/u_pstipple.c',
+  'util/u_pstipple.h',
+  'util/u_pwr8.h',
+  'util/u_range.h',
+  'util/u_rect.h',
+  'util/u_resource.c',
+  'util/u_resource.h',
+  'util/u_ringbuffer.c',
+  'util/u_ringbuffer.h',
+  'util/u_sampler.c',
+  'util/u_sampler.h',
+  'util/u_simple_shaders.c',
+  'util/u_simple_shaders.h',
+  'util/u_split_prim.h',
+  'util/u_sse.h',
+  'util/u_suballoc.c',
+  'util/u_suballoc.h',
+  'util/u_surface.c',
+  'util/u_surface.h',
+  'util/u_surfaces.c',
+  'util/u_surfaces.h',
+  'util/u_tests.c',
+  'util/u_tests.h',
+  'util/u_texture.c',
+  'util/u_texture.h',
+  'util/u_tile.c',
+  'util/u_tile.h',
+  'util/u_time.h',
+  'util/u_transfer.c',
+  'util/u_transfer.h',
+  'util/u_threaded_context.c',
+  'util/u_threaded_context.h',
+  'util/u_threaded_context_calls.h',
+  'util/u_upload_mgr.c',
+  'util/u_upload_mgr.h',
+  'util/u_vbuf.c',
+  'util/u_vbuf.h',
+  'util/u_video.h',
+  'util/u_viewport.h',
+  'nir/tgsi_to_nir.c',
+  'nir/tgsi_to_nir.h',
+)
+
+if dep_libdrm != [] and dep_libdrm.found()
+  files_libgallium += files(
+    'renderonly/renderonly.c',
+    'renderonly/renderonly.h',
+  )
+endif
+
+if with_llvm
+  files_libgallium += files(
+    'gallivm/lp_bld_arit.c',
+    'gallivm/lp_bld_arit.h',
+    'gallivm/lp_bld_arit_overflow.c',
+    'gallivm/lp_bld_arit_overflow.h',
+    'gallivm/lp_bld_assert.c',
+    'gallivm/lp_bld_assert.h',
+    'gallivm/lp_bld_bitarit.c',
+    'gallivm/lp_bld_bitarit.h',
+    'gallivm/lp_bld_const.c',
+    'gallivm/lp_bld_const.h',
+    'gallivm/lp_bld_conv.c',
+    'gallivm/lp_bld_conv.h',
+    'gallivm/lp_bld_debug.cpp',
+    'gallivm/lp_bld_debug.h',
+    'gallivm/lp_bld_flow.c',
+    'gallivm/lp_bld_flow.h',
+    'gallivm/lp_bld_format_aos_array.c',
+    'gallivm/lp_bld_format_aos.c',
+    'gallivm/lp_bld_format_cached.c',
+    'gallivm/lp_bld_format_float.c',
+    'gallivm/lp_bld_format.c',
+    'gallivm/lp_bld_format.h',
+    'gallivm/lp_bld_format_soa.c',
+    'gallivm/lp_bld_format_srgb.c',
+    'gallivm/lp_bld_format_yuv.c',
+    'gallivm/lp_bld_gather.c',
+    'gallivm/lp_bld_gather.h',
+    'gallivm/lp_bld.h',
+    'gallivm/lp_bld_init.c',
+    'gallivm/lp_bld_init.h',
+    'gallivm/lp_bld_intr.c',
+    'gallivm/lp_bld_intr.h',
+    'gallivm/lp_bld_limits.h',
+    'gallivm/lp_bld_logic.c',
+    'gallivm/lp_bld_logic.h',
+    'gallivm/lp_bld_misc.cpp',
+    'gallivm/lp_bld_misc.h',
+    'gallivm/lp_bld_pack.c',
+    'gallivm/lp_bld_pack.h',
+    'gallivm/lp_bld_printf.c',
+    'gallivm/lp_bld_printf.h',
+    'gallivm/lp_bld_quad.c',
+    'gallivm/lp_bld_quad.h',
+    'gallivm/lp_bld_sample_aos.c',
+    'gallivm/lp_bld_sample_aos.h',
+    'gallivm/lp_bld_sample.c',
+    'gallivm/lp_bld_sample.h',
+    'gallivm/lp_bld_sample_soa.c',
+    'gallivm/lp_bld_struct.c',
+    'gallivm/lp_bld_struct.h',
+    'gallivm/lp_bld_swizzle.c',
+    'gallivm/lp_bld_swizzle.h',
+    'gallivm/lp_bld_tgsi_action.c',
+    'gallivm/lp_bld_tgsi_action.h',
+    'gallivm/lp_bld_tgsi_aos.c',
+    'gallivm/lp_bld_tgsi.c',
+    'gallivm/lp_bld_tgsi.h',
+    'gallivm/lp_bld_tgsi_info.c',
+    'gallivm/lp_bld_tgsi_soa.c',
+    'gallivm/lp_bld_type.c',
+    'gallivm/lp_bld_type.h',
+    'draw/draw_llvm.c',
+    'draw/draw_llvm.h',
+    'draw/draw_llvm_sample.c',
+    'draw/draw_pt_fetch_shade_pipeline_llvm.c',
+    'draw/draw_vs_llvm.c',
+  )
+endif
+
+files_libgalliumvl = files(
+  'vl/vl_bicubic_filter.c',
+  'vl/vl_bicubic_filter.h',
+  'vl/vl_compositor.c',
+  'vl/vl_compositor.h',
+  'vl/vl_csc.c',
+  'vl/vl_csc.h',
+  'vl/vl_decoder.c',
+  'vl/vl_decoder.h',
+  'vl/vl_defines.h',
+  'vl/vl_deint_filter.c',
+  'vl/vl_deint_filter.h',
+  'vl/vl_idct.c',
+  'vl/vl_idct.h',
+  'vl/vl_matrix_filter.c',
+  'vl/vl_matrix_filter.h',
+  'vl/vl_mc.c',
+  'vl/vl_mc.h',
+  'vl/vl_median_filter.c',
+  'vl/vl_median_filter.h',
+  'vl/vl_mpeg12_bitstream.c',
+  'vl/vl_mpeg12_bitstream.h',
+  'vl/vl_mpeg12_decoder.c',
+  'vl/vl_mpeg12_decoder.h',
+  'vl/vl_rbsp.h',
+  'vl/vl_types.h',
+  'vl/vl_vertex_buffers.c',
+  'vl/vl_vertex_buffers.h',
+  'vl/vl_video_buffer.c',
+  'vl/vl_video_buffer.h',
+  'vl/vl_vlc.h',
+  'vl/vl_zscan.c',
+  'vl/vl_zscan.h',
+)
+
+files_libgalliumvlwinsys = files('vl/vl_winsys.h')
+if with_dri2
+  files_libgalliumvlwinsys += files('vl/vl_winsys_dri.c')
+  if with_dri3
+    files_libgalliumvlwinsys += files('vl/vl_winsys_dri3.c')
+  endif
+endif
+if with_platform_drm
+  files_libgalliumvlwinsys += files('vl/vl_winsys_drm.c')
+endif
+
+u_indices_gen_c = custom_target(
+  'u_indices_gen.c',
+  input : 'indices/u_indices_gen.py',
+  output : 'u_indices_gen.c',
+  command : [prog_python2, '@INPUT@'],
+  capture : true,
+)
+
+u_unfilled_gen_c = custom_target(
+  'u_unfilled_gen.c',
+  input : 'indices/u_unfilled_gen.py',
+  output : 'u_unfilled_gen.c',
+  command : [prog_python2, '@INPUT@'],
+  capture : true,
+)
+
+u_format_table_c = custom_target(
+  'u_format_table.c',
+  input : ['util/u_format_table.py', 'util/u_format.csv'],
+  output : 'u_format_table.c',
+  command : [prog_python2, '@INPUT@'],
+  depend_files : files('util/u_format_pack.py', 'util/u_format_parse.py'),
+  capture : true,
+)
+
+libgallium = static_library(
+  'gallium',
+  [files_libgallium, u_indices_gen_c, u_unfilled_gen_c, u_format_table_c,
+   nir_opcodes_h],
+  include_directories : [
+    inc_loader, inc_gallium, inc_src, inc_include, include_directories('util')
+  ],
+  c_args : [c_vis_args, c_msvc_compat_args],
+  cpp_args : [cpp_vis_args, cpp_msvc_compat_args],
+  dependencies : [dep_libdrm, dep_llvm, dep_unwind, dep_dl],
+  build_by_default : false,
+)
+
+libgalliumvl_stub = static_library(
+  'galliumvl_stub',
+  'vl/vl_stubs.c',
+  c_args : [c_vis_args, c_msvc_compat_args],
+  cpp_args : [cpp_vis_args, cpp_msvc_compat_args],
+  include_directories: [inc_gallium, inc_include, inc_src],
+  build_by_default : false,
+)
+
+libgalliumvl = static_library(
+  'galliumvl',
+  files_libgalliumvl,
+  c_args : [c_vis_args, c_msvc_compat_args],
+  cpp_args : [cpp_vis_args, cpp_msvc_compat_args],
+  include_directories : [inc_gallium, inc_include, inc_src],
+  build_by_default : false,
+)
+
+# XXX: The dependencies here may be off...
+libgalliumvlwinsys = static_library(
+  'galliumvlwinsys',
+  files_libgalliumvlwinsys,
+  include_directories : [inc_gallium, inc_include, inc_loader, inc_src],
+  dependencies : [dep_libdrm],
+  build_by_default : false,
+)
diff --git a/src/meson.build b/src/gallium/meson.build
similarity index 52%
copy from src/meson.build
copy to src/gallium/meson.build
index 544d831ea63..a9c36973ca1 100644
--- a/src/meson.build
+++ b/src/gallium/meson.build
@@ -1,4 +1,4 @@
-# Copyright © 2017 Intel Corporation
+# Copyright © 2017 Dylan Baker
 
 # Permission is hereby granted, free of charge, to any person obtaining a copy
 # of this software and associated documentation files (the "Software"), to deal
@@ -18,44 +18,6 @@
 # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 # SOFTWARE.
 
-inc_common = include_directories(
-  '../include', '.', 'mapi', 'mesa', 'gallium/include', 'gallium/auxiliary')
-inc_mesa = include_directories('mesa')
-inc_mapi = include_directories('mapi')
-inc_src = include_directories('.')
+inc_gallium = include_directories('include')
 
-libglsl_util = static_library(
-  'glsl_util',
-  files('mesa/main/extensions_table.c', 'mesa/main/imports.c',
-        'mesa/program/prog_parameter.c', 'mesa/program/symbol_table.c',
-        'mesa/program/dummy_errors.c'),
-  include_directories : [inc_common],
-  c_args : [c_vis_args],
-  build_by_default : false,
-)
-
-sha1_h = vcs_tag(
-  input : 'git_sha1.h.in',
-  output : 'git_sha1.h',
-)
-
-subdir('gtest')
-subdir('util')
-subdir('mapi/glapi/gen')
-subdir('mapi')
-# TODO: opengl
-# TODO: osmesa
-subdir('compiler')
-subdir('egl/wayland/wayland-drm')
-subdir('vulkan')
-subdir('amd')
-subdir('intel')
-# TODO: vc4
-subdir('mesa')
-subdir('loader')
-subdir('glx')
-if with_gbm
-  subdir('gbm')
-endif
-# TODO: egl
-# TODO: gallium
+subdir('auxiliary')
diff --git a/src/meson.build b/src/meson.build
index 544d831ea63..15d8af0197d 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -58,4 +58,4 @@ if with_gbm
   subdir('gbm')
 endif
 # TODO: egl
-# TODO: gallium
+subdir('gallium')
-- 
2.14.2



More information about the mesa-dev mailing list