[Mesa-dev] [PATCH 11/37] scons: build mesa/program as a convinience library
Emil Velikov
emil.l.velikov at gmail.com
Sat Nov 2 12:00:41 PDT 2013
* Demangle the large and complex mesa/SConscript.
* Make use of source file lists in Makefile.sources.
* Makes the build systems symmetric.
Signed-off-by: Emil Velikov <emil.l.velikov at gmail.com>
---
I've tried squashing mesa & mesa_program into one library,
but my attempts have been futile. Any ideas ?
Cheers
Emil
---
src/gallium/targets/dri-i915/SConscript | 1 +
src/gallium/targets/dri-swrast/SConscript | 1 +
src/gallium/targets/dri-vmwgfx/SConscript | 1 +
src/gallium/targets/egl-static/SConscript | 7 ++++++-
src/gallium/targets/libgl-gdi/SConscript | 11 ++++++++++-
src/gallium/targets/libgl-xlib/SConscript | 1 +
src/mesa/SConscript | 31 +------------------------------
src/mesa/drivers/osmesa/SConscript | 1 +
src/mesa/drivers/windows/gdi/SConscript | 1 +
src/mesa/drivers/x11/SConscript | 3 ++-
src/mesa/program/SConscript | 29 +++++++++++++++++++++++++++++
11 files changed, 54 insertions(+), 33 deletions(-)
create mode 100644 src/mesa/program/SConscript
diff --git a/src/gallium/targets/dri-i915/SConscript b/src/gallium/targets/dri-i915/SConscript
index 77dca6c..045829e 100644
--- a/src/gallium/targets/dri-i915/SConscript
+++ b/src/gallium/targets/dri-i915/SConscript
@@ -17,6 +17,7 @@ env.Prepend(LIBS = [
trace,
rbug,
mesa,
+ mesa_program,
glsl,
gallium,
COMMON_DRI_DRM_OBJECTS
diff --git a/src/gallium/targets/dri-swrast/SConscript b/src/gallium/targets/dri-swrast/SConscript
index 3a70e5a..37720de 100644
--- a/src/gallium/targets/dri-swrast/SConscript
+++ b/src/gallium/targets/dri-swrast/SConscript
@@ -14,6 +14,7 @@ env.Prepend(LIBS = [
trace,
rbug,
mesa,
+ mesa_program,
glsl,
gallium,
COMMON_DRI_SW_OBJECTS
diff --git a/src/gallium/targets/dri-vmwgfx/SConscript b/src/gallium/targets/dri-vmwgfx/SConscript
index 455ef70..0691d8c 100644
--- a/src/gallium/targets/dri-vmwgfx/SConscript
+++ b/src/gallium/targets/dri-vmwgfx/SConscript
@@ -21,6 +21,7 @@ env.Prepend(LIBS = [
svgadrm,
svga,
mesa,
+ mesa_program,
glsl,
gallium,
COMMON_DRI_DRM_OBJECTS
diff --git a/src/gallium/targets/egl-static/SConscript b/src/gallium/targets/egl-static/SConscript
index b4ccc5b..a8b1e0b 100644
--- a/src/gallium/targets/egl-static/SConscript
+++ b/src/gallium/targets/egl-static/SConscript
@@ -69,7 +69,12 @@ if env['gles']:
env.Prepend(LIBPATH = [shared_glapi.dir])
# manually add LIBPREFIX on windows
glapi_name = 'glapi' if env['platform'] != 'windows' else 'libglapi'
- env.Prepend(LIBS = [glapi_name, glsl, mesa])
+ env.Prepend(LIBS = [
+ glapi_name,
+ mesa,
+ mesa_program,
+ glsl
+ ])
# OpenVG
if True:
diff --git a/src/gallium/targets/libgl-gdi/SConscript b/src/gallium/targets/libgl-gdi/SConscript
index f8393da..5a795db 100644
--- a/src/gallium/targets/libgl-gdi/SConscript
+++ b/src/gallium/targets/libgl-gdi/SConscript
@@ -47,7 +47,16 @@ if env['gles']:
opengl32 = env.SharedLibrary(
target ='opengl32',
source = sources,
- LIBS = wgl + ws_gdi + glapi + mesa + drivers + gallium + glsl + env['LIBS'],
+ env.Prepend(LIBS = [
+ wgl,
+ ws_gdi,
+ glapi,
+ mesa,
+ mesa_program,
+ glsl,
+ drivers,
+ gallium,
+ ])
)
env.Alias('opengl32', opengl32)
diff --git a/src/gallium/targets/libgl-xlib/SConscript b/src/gallium/targets/libgl-xlib/SConscript
index fc0264c..78472c5 100644
--- a/src/gallium/targets/libgl-xlib/SConscript
+++ b/src/gallium/targets/libgl-xlib/SConscript
@@ -29,6 +29,7 @@ env.Prepend(LIBS = [
ws_xlib,
glapi,
mesa,
+ mesa_program,
glsl,
gallium,
])
diff --git a/src/mesa/SConscript b/src/mesa/SConscript
index a2bb9f1..2c5a838 100644
--- a/src/mesa/SConscript
+++ b/src/mesa/SConscript
@@ -288,35 +288,6 @@ statetracker_sources = [
'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',
@@ -326,7 +297,6 @@ mesa_sources = (
main_sources +
glget_sources +
math_sources +
- program_sources +
vbo_sources +
tnl_sources +
swrast_sources +
@@ -464,4 +434,5 @@ env.Alias('mesa', mesa)
Export('mesa')
+SConscript('program/SConscript')
SConscript('drivers/SConscript')
diff --git a/src/mesa/drivers/osmesa/SConscript b/src/mesa/drivers/osmesa/SConscript
index fb2d98c..477a918 100644
--- a/src/mesa/drivers/osmesa/SConscript
+++ b/src/mesa/drivers/osmesa/SConscript
@@ -11,6 +11,7 @@ env.Prepend(CPPPATH = [
env.Prepend(LIBS = [
glapi,
mesa,
+ mesa_program,
glsl,
])
diff --git a/src/mesa/drivers/windows/gdi/SConscript b/src/mesa/drivers/windows/gdi/SConscript
index 10a7eea..0a04422 100644
--- a/src/mesa/drivers/windows/gdi/SConscript
+++ b/src/mesa/drivers/windows/gdi/SConscript
@@ -18,6 +18,7 @@ if not env['gles']:
env.Prepend(LIBS = [
glapi,
mesa,
+ mesa_program,
glsl,
'gdi32',
'user32',
diff --git a/src/mesa/drivers/x11/SConscript b/src/mesa/drivers/x11/SConscript
index b1b854d..630c0fa 100644
--- a/src/mesa/drivers/x11/SConscript
+++ b/src/mesa/drivers/x11/SConscript
@@ -16,8 +16,9 @@ env.Prepend(LIBPATH = env['X11_LIBPATH'])
env.Prepend(LIBS = [
glapi,
- glsl,
mesa,
+ mesa_program,
+ glsl,
])
sources = [
diff --git a/src/mesa/program/SConscript b/src/mesa/program/SConscript
new file mode 100644
index 0000000..3b1dacf
--- /dev/null
+++ b/src/mesa/program/SConscript
@@ -0,0 +1,29 @@
+Import('*')
+
+env = env.Clone()
+
+env.Append(CPPPATH = [
+ '#/src/mapi',
+ '#/src/glsl',
+ '#/src/mesa',
+ Dir('..'), # src/mesa build path
+])
+
+env.Append(YACCFLAGS = '-d -p "_mesa_program_"')
+program_lex = env.CFile('lex.yy.c', 'program_lexer.l')
+program_parse = env.CFile('program_parse.tab.c', 'program_parse.y')
+
+program_sources = [
+ program_lex,
+ program_parse[0],
+]
+program_sources.append(env.ParseSourceList('Makefile.sources', 'PROGRAM_FILES'))
+
+mesa_program = env.ConvenienceLibrary(
+ target = 'mesa_program',
+ source = program_sources,
+)
+
+env.Alias('mesa_program', mesa_program)
+
+Export('mesa_program')
--
1.8.4.2
More information about the mesa-dev
mailing list