[Mesa-dev] [PATCH] scons: support for llvm 3.7.
From: Olivier Pena--- scons/llvm.py | 14 +- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/scons/llvm.py b/scons/llvm.py index c59b8cb..1fc8a3f 100644 --- a/scons/llvm.py +++ b/scons/llvm.py @@ -106,7 +106,19 @@ def generate(env): ]) env.Prepend(LIBPATH = [os.path.join(llvm_dir, 'lib')]) # LIBS should match the output of `llvm-config --libs engine mcjit bitwriter x86asmprinter` -if llvm_version >= distutils.version.LooseVersion('3.6'): +if llvm_version >= distutils.version.LooseVersion('3.7'): +env.Prepend(LIBS = [ +'LLVMBitWriter', 'LLVMX86Disassembler', 'LLVMX86AsmParser', +'LLVMX86CodeGen', 'LLVMSelectionDAG', 'LLVMAsmPrinter', +'LLVMCodeGen', 'LLVMScalarOpts', 'LLVMProfileData', +'LLVMInstCombine', 'LLVMInstrumentation', 'LLVMTransformUtils', 'LLVMipa', +'LLVMAnalysis', 'LLVMX86Desc', 'LLVMMCDisassembler', +'LLVMX86Info', 'LLVMX86AsmPrinter', 'LLVMX86Utils', +'LLVMMCJIT', 'LLVMTarget', 'LLVMExecutionEngine', +'LLVMRuntimeDyld', 'LLVMObject', 'LLVMMCParser', +'LLVMBitReader', 'LLVMMC', 'LLVMCore', 'LLVMSupport' +]) +elif llvm_version >= distutils.version.LooseVersion('3.6'): env.Prepend(LIBS = [ 'LLVMBitWriter', 'LLVMX86Disassembler', 'LLVMX86AsmParser', 'LLVMX86CodeGen', 'LLVMSelectionDAG', 'LLVMAsmPrinter', -- 2.6.3 ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev
[Mesa-dev] [PATCH] scons : Support LLVM 3.5 and 3.6 on windows.
From: Olivier Pena op...@isagri.fr llvm/Config/llvm-config.h is parsed instead of llvm/Config/config.h for detecting LLVM version (http://lists.cs.uiuc.edu/pipermail/llvmdev/2014-June/073707.html) --- scons/llvm.py | 33 ++--- 1 file changed, 26 insertions(+), 7 deletions(-) diff --git a/scons/llvm.py b/scons/llvm.py index be7df9f..6c6b733 100644 --- a/scons/llvm.py +++ b/scons/llvm.py @@ -72,18 +72,25 @@ def generate(env): return # Try to determine the LLVM version from llvm/Config/config.h -llvm_config = os.path.join(llvm_dir, 'include/llvm/Config/config.h') +llvm_config = os.path.join(llvm_dir, 'include/llvm/Config/llvm-config.h') if not os.path.exists(llvm_config): print 'scons: could not find %s' % llvm_config return -llvm_version_re = re.compile(r'^#define PACKAGE_VERSION ([^]*)') +llvm_version_major_re = re.compile(r'^#define LLVM_VERSION_MAJOR ([0-9]+)') +llvm_version_minor_re = re.compile(r'^#define LLVM_VERSION_MINOR ([0-9]+)') llvm_version = None +llvm_version_major = None +llvm_version_minor = None for line in open(llvm_config, 'rt'): -mo = llvm_version_re.match(line) +mo = llvm_version_major_re.match(line) if mo: -llvm_version = mo.group(1) -llvm_version = distutils.version.LooseVersion(llvm_version) -break +llvm_version_major = mo.group(1) +mo = llvm_version_minor_re.match(line) +if mo: +llvm_version_minor = mo.group(1) +if (llvm_version_major is not None) and (llvm_version_minor is not None): +llvm_version = distutils.version.LooseVersion('{0}.{1}'.format(llvm_version_major, llvm_version_minor)) + if llvm_version is None: print 'scons: could not determine the LLVM version from %s' % llvm_config return @@ -99,7 +106,19 @@ def generate(env): ]) env.Prepend(LIBPATH = [os.path.join(llvm_dir, 'lib')]) # LIBS should match the output of `llvm-config --libs engine mcjit bitwriter x86asmprinter` -if llvm_version = distutils.version.LooseVersion('3.5'): +if llvm_version = distutils.version.LooseVersion('3.6'): +env.Prepend(LIBS = [ +'LLVMBitWriter', 'LLVMX86Disassembler', 'LLVMX86AsmParser', +'LLVMX86CodeGen', 'LLVMSelectionDAG', 'LLVMAsmPrinter', +'LLVMCodeGen', 'LLVMScalarOpts', 'LLVMProfileData', +'LLVMInstCombine', 'LLVMTransformUtils', 'LLVMipa', +'LLVMAnalysis', 'LLVMX86Desc', 'LLVMMCDisassembler', +'LLVMX86Info', 'LLVMX86AsmPrinter', 'LLVMX86Utils', +'LLVMMCJIT', 'LLVMTarget', 'LLVMExecutionEngine', +'LLVMRuntimeDyld', 'LLVMObject', 'LLVMMCParser', +'LLVMBitReader', 'LLVMMC', 'LLVMCore', 'LLVMSupport' +]) +elif llvm_version = distutils.version.LooseVersion('3.5'): env.Prepend(LIBS = [ 'LLVMBitWriter', 'LLVMMCJIT', 'LLVMRuntimeDyld', 'LLVMX86Disassembler', 'LLVMX86AsmParser', 'LLVMX86CodeGen', -- 1.9.4.msysgit.2 ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev
[Mesa-dev] [PATCH] scons: add target osmesa using gallium state tracker.
From: Olivier Pena op...@isagri.fr --- src/gallium/SConscript| 5 src/gallium/state_trackers/osmesa/Makefile.am | 2 ++ src/gallium/state_trackers/osmesa/SConscript | 26 src/gallium/targets/osmesa/Makefile.am| 6 +++- src/gallium/targets/osmesa/SConscript | 43 +++ src/gallium/targets/osmesa/osmesa.def | 16 ++ src/gallium/targets/osmesa/osmesa.mingw.def | 13 7 files changed, 110 insertions(+), 1 deletion(-) create mode 100644 src/gallium/state_trackers/osmesa/SConscript create mode 100644 src/gallium/targets/osmesa/SConscript create mode 100644 src/gallium/targets/osmesa/osmesa.def create mode 100644 src/gallium/targets/osmesa/osmesa.mingw.def diff --git a/src/gallium/SConscript b/src/gallium/SConscript index 680ad92..eeb1c78 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 4ba6c20..22e65c8 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 000..f5519f1 --- /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 f53823a..2c09736 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 000..4a9115b --- /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 000..e2a31ab --- /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 000..874ac54 --- /dev/null +++ b/src/gallium/targets/osmesa/osmesa.mingw.def @@ -0,0 +1,13 @@ +EXPORTS + OSMesaCreateContext =
[Mesa-dev] [PATCH] scons: add target gallium-osmesa
From: Olivier Pena op...@isagri.fr --- src/gallium/SConscript | 5 src/gallium/state_trackers/osmesa/SConscript | 25 + src/gallium/state_trackers/osmesa/osmesa.def | 16 +++ src/gallium/targets/osmesa/SConscript| 41 4 files changed, 87 insertions(+) create mode 100644 src/gallium/state_trackers/osmesa/SConscript create mode 100644 src/gallium/state_trackers/osmesa/osmesa.def create mode 100644 src/gallium/targets/osmesa/SConscript diff --git a/src/gallium/SConscript b/src/gallium/SConscript index 680ad92..eeb1c78 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/SConscript b/src/gallium/state_trackers/osmesa/SConscript new file mode 100644 index 000..fa7c968 --- /dev/null +++ b/src/gallium/state_trackers/osmesa/SConscript @@ -0,0 +1,25 @@ +import os + +Import('*') + +env = env.Clone() + +env.Append(CPPPATH = [ +'#src/mapi', +'#src/mesa', +'.', +]) + +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/state_trackers/osmesa/osmesa.def b/src/gallium/state_trackers/osmesa/osmesa.def new file mode 100644 index 000..e2a31ab --- /dev/null +++ b/src/gallium/state_trackers/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/SConscript b/src/gallium/targets/osmesa/SConscript new file mode 100644 index 000..2c936cf --- /dev/null +++ b/src/gallium/targets/osmesa/SConscript @@ -0,0 +1,41 @@ +Import('*') + +env = env.Clone() + +env.Prepend(CPPPATH = [ +'#src/mapi', +'#src/mesa', +#Dir('../../../mapi'), # src/mapi build path for python-generated GL API files/headers +]) + +sources = [ +'target.c', +] +sources += ['#src/gallium/state_trackers/osmesa/osmesa.def'] + +drivers = [] + +if env['llvm']: +env.Append(CPPDEFINES = 'GALLIUM_LLVMPIPE') +env.Append(CPPDEFINES = 'GALLIUM_TRACE') +drivers += [llvmpipe] +else: +env.Append(CPPDEFINES = 'GALLIUM_SOFTPIPE') +env.Append(CPPDEFINES = 'GALLIUM_TRACE') +drivers += [softpipe] + +if env['platform'] == 'windows': +env.AppendUnique(CPPDEFINES = [ +'BUILD_GL32', # declare gl* as __declspec(dllexport) in Mesa headers +]) +if not env['gles']: +# prevent _glapi_* from being declared __declspec(dllimport) +env.Append(CPPDEFINES = ['_GLAPI_NO_EXPORTS']) + +gallium_osmesa = env.SharedLibrary( +target ='osmesa', +source = sources, +LIBS = drivers + st_osmesa + ws_null + glapi + mesa + gallium + trace + glsl + mesautil + env['LIBS'], +) + +env.Alias('gallium-osmesa', gallium_osmesa) -- 1.9.4.msysgit.2 ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev