llvmpipe: fix race between draw and setting fragment shader.
[mesa.git] / src / gallium / drivers / llvmpipe / SConscript
index 7196ff131013cb94139f98621fa410d94cde497f..1af6867715c7c992b26cbeaf7753809bba5bf5a8 100644 (file)
@@ -1,84 +1,46 @@
+from sys import executable as python_cmd
+import distutils.version
+
 Import('*')
 
 if not env['llvm']:
-    print 'warning: LLVM disabled: not building llvmpipe'
+    print('warning: LLVM disabled: not building llvmpipe')
     Return()
 
 env = env.Clone()
 
-env.Tool('udis86')
-
-env.Append(CPPPATH = ['.'])
-
-env.CodeGenerate(
-       target = 'lp_tile_soa.c',
-       script = 'lp_tile_soa.py',
-       source = ['#src/gallium/auxiliary/util/u_format.csv'],
-       command = 'python $SCRIPT $SOURCE > $TARGET'
-)
-
-# XXX: Our dependency scanner only finds depended modules in relative dirs.
-env.Depends('lp_tile_soa.c', [
-    '#src/gallium/auxiliary/util/u_format_parse.py', 
-    '#src/gallium/auxiliary/util/u_format_pack.py', 
-])
+env.MSVC2013Compat()
 
 llvmpipe = env.ConvenienceLibrary(
        target = 'llvmpipe',
-       source = [
-               'lp_bld_alpha.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_perf.c',
-               'lp_query.c',
-               'lp_rast.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_rasterizer.c',
-               'lp_state_sampler.c',
-               'lp_state_surface.c',
-               'lp_state_vertex.c',
-               'lp_state_vs.c',
-               'lp_surface.c',
-               'lp_tex_sample_llvm.c',
-               'lp_texture.c',
-               'lp_tile_image.c',
-               'lp_tile_soa.c',
-       ])
+       source = env.ParseSourceList('Makefile.sources', 'C_SOURCES')
+       )
+
+env.Alias('llvmpipe', llvmpipe)
 
+env.Append(CPPPATH = [
+    '../../../compiler/nir',
+])
 
-if env['platform'] != 'embedded':
+if not env['embedded']:
     env = env.Clone()
 
-    env.Prepend(LIBS = [llvmpipe] + gallium)
+    env.Prepend(LIBS = [llvmpipe, gallium, mesautil])
 
     tests = [
+        'arit',
+        'format',
         'blend',
         'conv',
+        'printf',
     ]
 
     for test in tests:
+        testname = 'lp_test_' + test
         target = env.Program(
-            target = 'lp_test_' + test,
-            source = ['lp_test_' + test + '.c', 'lp_test_main.c'],
+            target = testname,
+            source = [testname + '.c', 'lp_test_main.c'],
         )
-        env.InstallProgram(target)
+        env.UnitTest(testname, target)
 
-    Export('llvmpipe')
+Export('llvmpipe')