[Mesa-dev] [PATCH 1/6] spirv: Fix building with SCons
Brian Paul
brianp at vmware.com
Fri Mar 30 17:31:17 UTC 2018
From: Neil Roberts <nroberts at igalia.com>
The SCons build broke with commit ba975140d3c9 because a SPIR-V
function is called from Mesa main. This adds a convenience library for
SPIR-V and adds it to everything that was including nir. It also adds
both nir and spirv to drivers/x11/SConscript.
Also add nir/spirv modules to osmesa and libgl-gdi targets. (Brian Paul)
---
src/compiler/Makefile.nir.am | 3 +-
src/compiler/SConscript | 1 +
src/compiler/SConscript.spirv | 54 +++++++++++++++++++++++++++
src/gallium/targets/dri/SConscript | 1 +
src/gallium/targets/haiku-softpipe/SConscript | 1 +
src/gallium/targets/libgl-gdi/SConscript | 6 ++-
src/gallium/targets/libgl-xlib/SConscript | 1 +
src/gallium/targets/osmesa/SConscript | 1 +
src/mesa/drivers/osmesa/SConscript | 2 +
src/mesa/drivers/x11/SConscript | 2 +
10 files changed, 70 insertions(+), 2 deletions(-)
create mode 100644 src/compiler/SConscript.spirv
diff --git a/src/compiler/Makefile.nir.am b/src/compiler/Makefile.nir.am
index 32e4145..27dc129 100644
--- a/src/compiler/Makefile.nir.am
+++ b/src/compiler/Makefile.nir.am
@@ -100,4 +100,5 @@ EXTRA_DIST += \
nir/nir_opt_algebraic.py \
nir/tests \
nir/README \
- SConscript.nir
+ SConscript.nir \
+ SConstript.spirv
diff --git a/src/compiler/SConscript b/src/compiler/SConscript
index 44509a9..0a0c073 100644
--- a/src/compiler/SConscript
+++ b/src/compiler/SConscript
@@ -27,3 +27,4 @@ Export('compiler')
SConscript('SConscript.glsl')
SConscript('SConscript.nir')
+SConscript('SConscript.spirv')
diff --git a/src/compiler/SConscript.spirv b/src/compiler/SConscript.spirv
new file mode 100644
index 0000000..4941088
--- /dev/null
+++ b/src/compiler/SConscript.spirv
@@ -0,0 +1,54 @@
+import common
+
+Import('*')
+
+from sys import executable as python_cmd
+
+env = env.Clone()
+
+env.MSVC2013Compat()
+
+env.Prepend(CPPPATH = [
+ '#include',
+ '#src',
+ '#src/mapi',
+ '#src/mesa',
+ '#src/gallium/include',
+ '#src/gallium/auxiliary',
+ '#src/compiler/nir',
+ '#src/compiler/spirv',
+])
+
+# Make generated headers reachable from the include path.
+env.Prepend(CPPPATH = [Dir('.').abspath, Dir('nir').abspath])
+env.Prepend(CPPPATH = [Dir('.').abspath, Dir('spirv').abspath])
+
+# spirv generated sources
+
+env.CodeGenerate(
+ target = 'spirv/spirv_info.c',
+ script = 'spirv/spirv_info_c.py',
+ source = ['spirv/spirv.core.grammar.json'],
+ command = python_cmd + ' $SCRIPT $SOURCE $TARGET'
+)
+
+env.CodeGenerate(
+ target = 'spirv/vtn_gather_types.c',
+ script = 'spirv/vtn_gather_types_c.py',
+ source = ['spirv/spirv.core.grammar.json'],
+ command = python_cmd + ' $SCRIPT $SOURCE $TARGET'
+)
+
+# parse Makefile.sources
+source_lists = env.ParseSourceList('Makefile.sources')
+
+spirv_sources = source_lists['SPIRV_FILES']
+spirv_sources += source_lists['SPIRV_GENERATED_FILES']
+
+spirv = env.ConvenienceLibrary(
+ target = 'spirv',
+ source = spirv_sources,
+)
+
+env.Alias('spirv', spirv)
+Export('spirv')
diff --git a/src/gallium/targets/dri/SConscript b/src/gallium/targets/dri/SConscript
index f5c2818..ff6ce3b 100644
--- a/src/gallium/targets/dri/SConscript
+++ b/src/gallium/targets/dri/SConscript
@@ -45,6 +45,7 @@ env.Prepend(LIBS = [
mesa,
glsl,
nir,
+ spirv,
gallium,
megadrivers_stub,
dri_common,
diff --git a/src/gallium/targets/haiku-softpipe/SConscript b/src/gallium/targets/haiku-softpipe/SConscript
index f80c167..89792fb 100644
--- a/src/gallium/targets/haiku-softpipe/SConscript
+++ b/src/gallium/targets/haiku-softpipe/SConscript
@@ -10,6 +10,7 @@ env.Prepend(LIBS = [
mesa,
glsl,
nir,
+ spirv,
gallium
])
diff --git a/src/gallium/targets/libgl-gdi/SConscript b/src/gallium/targets/libgl-gdi/SConscript
index d3251ca..b5ba0fa 100644
--- a/src/gallium/targets/libgl-gdi/SConscript
+++ b/src/gallium/targets/libgl-gdi/SConscript
@@ -18,7 +18,11 @@ env.Append(LIBS = [
'ws2_32',
])
-env.Prepend(LIBS = [mesautil])
+env.Prepend(LIBS = [
+ mesautil,
+ nir,
+ spirv
+])
sources = ['libgl_gdi.c']
drivers = []
diff --git a/src/gallium/targets/libgl-xlib/SConscript b/src/gallium/targets/libgl-xlib/SConscript
index a81ac79..b94ef35 100644
--- a/src/gallium/targets/libgl-xlib/SConscript
+++ b/src/gallium/targets/libgl-xlib/SConscript
@@ -33,6 +33,7 @@ env.Prepend(LIBS = [
mesa,
glsl,
nir,
+ spirv,
gallium,
])
diff --git a/src/gallium/targets/osmesa/SConscript b/src/gallium/targets/osmesa/SConscript
index 7be1b48..ccf7d51 100644
--- a/src/gallium/targets/osmesa/SConscript
+++ b/src/gallium/targets/osmesa/SConscript
@@ -18,6 +18,7 @@ env.Prepend(LIBS = [
trace,
glsl,
nir,
+ spirv,
mesautil,
softpipe
])
diff --git a/src/mesa/drivers/osmesa/SConscript b/src/mesa/drivers/osmesa/SConscript
index 9391dc3..064f3da 100644
--- a/src/mesa/drivers/osmesa/SConscript
+++ b/src/mesa/drivers/osmesa/SConscript
@@ -15,6 +15,8 @@ env.Prepend(LIBS = [
glapi,
compiler,
mesa,
+ spirv,
+ nir,
glsl,
])
diff --git a/src/mesa/drivers/x11/SConscript b/src/mesa/drivers/x11/SConscript
index 59c8df4..b097dcc 100644
--- a/src/mesa/drivers/x11/SConscript
+++ b/src/mesa/drivers/x11/SConscript
@@ -21,6 +21,8 @@ env.Prepend(LIBS = [
compiler,
glsl,
mesa,
+ spirv,
+ nir,
])
sources = [
--
2.7.4
More information about the mesa-dev
mailing list