| from sys import executable as python_cmd |
| import distutils.version |
| |
| Import('*') |
| |
| if not env['llvm']: |
| print 'warning: LLVM disabled: not building llvmpipe' |
| Return() |
| |
| env = env.Clone() |
| |
| 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_cmd + ' $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', |
| ]) |
| |
| |
| lp_tile_soa_os = env.SharedObject('lp_tile_soa.c') |
| |
| |
| llvmpipe = env.ConvenienceLibrary( |
| target = 'llvmpipe', |
| source = [ |
| 'lp_bld_alpha.c', |
| 'lp_bld_blend_aos.c', |
| 'lp_bld_blend_logicop.c', |
| 'lp_bld_blend_soa.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', |
| 'lp_tile_image.c', |
| lp_tile_soa_os, |
| ]) |
| |
| env.Alias('llvmpipe', llvmpipe) |
| |
| |
| if not env['embedded']: |
| env = env.Clone() |
| |
| env.Prepend(LIBS = [llvmpipe] + gallium) |
| |
| tests = [ |
| 'format', |
| 'blend', |
| 'conv', |
| 'printf', |
| 'sincos', |
| ] |
| |
| if not env['msvc']: |
| tests.append('round') |
| |
| for test in tests: |
| testname = 'lp_test_' + test |
| target = env.Program( |
| target = testname, |
| source = [testname + '.c', 'lp_test_main.c'], |
| ) |
| env.InstallProgram(target) |
| |
| # http://www.scons.org/wiki/UnitTests |
| alias = env.Alias(testname, [target], target[0].abspath) |
| AlwaysBuild(alias) |
| |
| Export('llvmpipe') |