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')