Hi Olivier Thanks for the patch !
Adding Jose to the Cc list as I believe he'll have some input on the topic. On 3 April 2015 at 15:06, <olivier.pena...@gmail.com> wrote: > 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 > Can you add the three new files into the EXTRA_DIST variable in the relevant Makefile.am ? This way one we can build scons gallium-osmesa from a release tarball :-) > 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 0000000..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']) > + Shouldn't these be used when building for windows only ? > +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 0000000..e2a31ab > --- /dev/null > +++ b/src/gallium/state_trackers/osmesa/osmesa.def Can we move this file next to it's only user - i.e. into targets/osmesa/ ? > @@ -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 0000000..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'] > + Afaict this should be included only if the target is Windows. > +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] > + One should include softpipe unconditionally as we can switch between llvmpipe and softpipe at runtime. > +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']) > + Don't think you need this if block. > +gallium_osmesa = env.SharedLibrary( > + target ='osmesa', > + source = sources, > + LIBS = drivers + st_osmesa + ws_null + glapi + mesa + gallium + > trace + glsl + mesautil + env['LIBS'], How about we move this before the SharedLibrary construct and use env.Prepend(LIBS =... like other places in mesa ? Thanks Emil _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev