summaryrefslogtreecommitdiffstats
path: root/src/gallium
diff options
context:
space:
mode:
authorOlivier Pena <[email protected]>2015-04-22 15:36:28 +0000
committerJose Fonseca <[email protected]>2015-04-27 15:18:36 +0100
commitf9965347dc0cac8822c44faf7bade09093076c74 (patch)
treeee94936826c1ac39b1fefbe23ca740379a071ece /src/gallium
parentdb2415189a04fd64106a739c635b1433192ef969 (diff)
scons: add target osmesa using gallium state tracker.
Reviewed-by: Jose Fonseca <[email protected]>
Diffstat (limited to 'src/gallium')
-rw-r--r--src/gallium/SConscript5
-rw-r--r--src/gallium/state_trackers/osmesa/Makefile.am2
-rw-r--r--src/gallium/state_trackers/osmesa/SConscript26
-rw-r--r--src/gallium/targets/osmesa/Makefile.am6
-rw-r--r--src/gallium/targets/osmesa/SConscript43
-rw-r--r--src/gallium/targets/osmesa/osmesa.def16
-rw-r--r--src/gallium/targets/osmesa/osmesa.mingw.def13
7 files changed, 110 insertions, 1 deletions
diff --git a/src/gallium/SConscript b/src/gallium/SConscript
index 680ad925f5f..eeb1c780fcd 100644
--- a/src/gallium/SConscript
+++ b/src/gallium/SConscript
@@ -60,6 +60,11 @@ SConscript([
])
if not env['embedded']:
+ SConscript([
+ 'state_trackers/osmesa/SConscript',
+ 'targets/osmesa/SConscript',
+ ])
+
if env['x11']:
SConscript([
'state_trackers/glx/xlib/SConscript',
diff --git a/src/gallium/state_trackers/osmesa/Makefile.am b/src/gallium/state_trackers/osmesa/Makefile.am
index 4ba6c207498..22e65c881e0 100644
--- a/src/gallium/state_trackers/osmesa/Makefile.am
+++ b/src/gallium/state_trackers/osmesa/Makefile.am
@@ -39,3 +39,5 @@ AM_CPPFLAGS = \
noinst_LTLIBRARIES = libosmesa.la
libosmesa_la_SOURCES = $(C_SOURCES)
+
+EXTRA_DIST = SConscript
diff --git a/src/gallium/state_trackers/osmesa/SConscript b/src/gallium/state_trackers/osmesa/SConscript
new file mode 100644
index 00000000000..f5519f13762
--- /dev/null
+++ b/src/gallium/state_trackers/osmesa/SConscript
@@ -0,0 +1,26 @@
+import os
+
+Import('*')
+
+env = env.Clone()
+
+env.Append(CPPPATH = [
+ '#src/mapi',
+ '#src/mesa',
+ '.',
+])
+
+if env['platform'] == 'windows':
+ env.AppendUnique(CPPDEFINES = [
+ 'BUILD_GL32', # declare gl* as __declspec(dllexport) in Mesa headers
+ 'WIN32_LEAN_AND_MEAN', # http://msdn2.microsoft.com/en-us/library/6dwk3a1z.aspx
+ ])
+ if not env['gles']:
+ # prevent _glapi_* from being declared __declspec(dllimport)
+ env.Append(CPPDEFINES = ['_GLAPI_NO_EXPORTS'])
+
+st_osmesa = env.ConvenienceLibrary(
+ target ='st_osmesa',
+ source = env.ParseSourceList('Makefile.sources', 'C_SOURCES'),
+)
+Export('st_osmesa')
diff --git a/src/gallium/targets/osmesa/Makefile.am b/src/gallium/targets/osmesa/Makefile.am
index f53823aecae..2c09736714a 100644
--- a/src/gallium/targets/osmesa/Makefile.am
+++ b/src/gallium/targets/osmesa/Makefile.am
@@ -76,7 +76,11 @@ lib@OSMESA_LIB@_la_LIBADD += $(top_builddir)/src/gallium/drivers/llvmpipe/libllv
endif
EXTRA_lib@OSMESA_LIB@_la_DEPENDENCIES = osmesa.sym
-EXTRA_DIST = osmesa.sym
+EXTRA_DIST = \
+ osmesa.sym \
+ osmesa.def \
+ osmesa.mingw.def \
+ SConscript
include $(top_srcdir)/install-gallium-links.mk
diff --git a/src/gallium/targets/osmesa/SConscript b/src/gallium/targets/osmesa/SConscript
new file mode 100644
index 00000000000..4a9115ba1cf
--- /dev/null
+++ b/src/gallium/targets/osmesa/SConscript
@@ -0,0 +1,43 @@
+Import('*')
+
+env = env.Clone()
+
+env.Prepend(CPPPATH = [
+ '#src/mapi',
+ '#src/mesa',
+ #Dir('../../../mapi'), # src/mapi build path for python-generated GL API files/headers
+])
+
+env.Prepend(LIBS = [
+ st_osmesa,
+ ws_null,
+ glapi,
+ mesa,
+ gallium,
+ trace,
+ glsl,
+ mesautil,
+ softpipe
+])
+
+env.Append(CPPDEFINES = ['GALLIUM_TRACE', 'GALLIUM_SOFTPIPE'])
+
+sources = ['target.c']
+
+if env['llvm']:
+ env.Append(CPPDEFINES = 'GALLIUM_LLVMPIPE')
+ env.Prepend(LIBS = [llvmpipe])
+
+if env['platform'] == 'windows':
+ if env['gcc'] and env['machine'] != 'x86_64':
+ sources += ['osmesa.mingw.def']
+ else:
+ sources += ['osmesa.def']
+
+gallium_osmesa = env.SharedLibrary(
+ target ='osmesa',
+ source = sources,
+ LIBS = env['LIBS'],
+)
+
+env.Alias('osmesa', gallium_osmesa)
diff --git a/src/gallium/targets/osmesa/osmesa.def b/src/gallium/targets/osmesa/osmesa.def
new file mode 100644
index 00000000000..e2a31ab5457
--- /dev/null
+++ b/src/gallium/targets/osmesa/osmesa.def
@@ -0,0 +1,16 @@
+;DESCRIPTION 'Mesa OSMesa lib for Win32'
+VERSION 4.1
+
+EXPORTS
+ OSMesaCreateContext
+ OSMesaCreateContextExt
+ OSMesaDestroyContext
+ OSMesaMakeCurrent
+ OSMesaGetCurrentContext
+ OSMesaPixelStore
+ OSMesaGetIntegerv
+ OSMesaGetDepthBuffer
+ OSMesaGetColorBuffer
+ OSMesaGetProcAddress
+ OSMesaColorClamp
+ OSMesaPostprocess
diff --git a/src/gallium/targets/osmesa/osmesa.mingw.def b/src/gallium/targets/osmesa/osmesa.mingw.def
new file mode 100644
index 00000000000..874ac544084
--- /dev/null
+++ b/src/gallium/targets/osmesa/osmesa.mingw.def
@@ -0,0 +1,13 @@
+EXPORTS
+ OSMesaCreateContext = OSMesaCreateContext@8
+ OSMesaCreateContextExt = OSMesaCreateContextExt@20
+ OSMesaDestroyContext = OSMesaDestroyContext@4
+ OSMesaMakeCurrent = OSMesaMakeCurrent@20
+ OSMesaGetCurrentContext = OSMesaGetCurrentContext@0
+ OSMesaPixelStore = OSMesaPixelStore@8
+ OSMesaGetIntegerv = OSMesaGetIntegerv@8
+ OSMesaGetDepthBuffer = OSMesaGetDepthBuffer@20
+ OSMesaGetColorBuffer = OSMesaGetColorBuffer@20
+ OSMesaGetProcAddress = OSMesaGetProcAddress@4
+ OSMesaColorClamp = OSMesaColorClamp@4
+ OSMesaPostprocess = OSMesaPostprocess@12