On Wednesday, 2017-10-25 15:58:23 -0700, Dylan Baker wrote: > This has been tested with the osdemo from mesa-demos > > Signed-off-by: Dylan Baker <dylanx.c.ba...@intel.com> > --- > meson.build | 3 ++ > meson_options.txt | 2 +- > src/gallium/meson.build | 7 ++- > src/gallium/state_trackers/osmesa/meson.build | 28 +++++++++++ > src/gallium/targets/osmesa/meson.build | 68 > +++++++++++++++++++++++++++ > 5 files changed, 106 insertions(+), 2 deletions(-) > create mode 100644 src/gallium/state_trackers/osmesa/meson.build > create mode 100644 src/gallium/targets/osmesa/meson.build > > diff --git a/meson.build b/meson.build > index 79ce59c6b27..0bbe330042b 100644 > --- a/meson.build > +++ b/meson.build > @@ -704,6 +704,9 @@ if with_osmesa != 'none' > if with_osmesa == 'classic' and not with_dri_swrast > error('OSMesa classic requires dri (classic) swrast.') > endif > + if with_osmesa == 'gallium' and not with_gallium_softpipe > + error('OSMesa gallium requires gallium softpipe or llvmpipe.') > + endif > osmesa_lib_name = 'OSMesa' > osmesa_bits = get_option('osmesa-bits') > if osmesa_bits != '8' > diff --git a/meson_options.txt b/meson_options.txt > index 97aca571a48..a0b8044e4bb 100644 > --- a/meson_options.txt > +++ b/meson_options.txt > @@ -164,7 +164,7 @@ option( > 'osmesa', > type : 'combo', > value : 'none', > - choices : ['none', 'classic'], > + choices : ['none', 'classic', 'gallium'], > description : 'Build OSmesa.' > ) > option( > diff --git a/src/gallium/meson.build b/src/gallium/meson.build > index e0941103b93..6edfe80321d 100644 > --- a/src/gallium/meson.build > +++ b/src/gallium/meson.build > @@ -66,6 +66,9 @@ if with_gallium_imx > subdir('winsys/imx/drm') > endif > subdir('state_trackers/dri') > +if with_osmesa == 'gallium' > + subdir('state_trackers/osmesa') > +endif > # TODO: i915 > # TODO: SVGA > # TODO: r300 > @@ -77,9 +80,11 @@ subdir('state_trackers/dri') > if with_dri and with_gallium > subdir('targets/dri') > endif > +if with_osmesa == 'gallium' > + subdir('targets/osmesa') > +endif > # TODO: xlib-glx > # TODO: OMX > -# TODO: osmesa > # TODO: VA > # TODO: vdpau > # TODO: xa > diff --git a/src/gallium/state_trackers/osmesa/meson.build > b/src/gallium/state_trackers/osmesa/meson.build > new file mode 100644 > index 00000000000..dacf10512d6 > --- /dev/null > +++ b/src/gallium/state_trackers/osmesa/meson.build > @@ -0,0 +1,28 @@ > +# Copyright © 2017 Intel Corporation > + > +# Permission is hereby granted, free of charge, to any person obtaining a > copy > +# of this software and associated documentation files (the "Software"), to > deal > +# in the Software without restriction, including without limitation the > rights > +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell > +# copies of the Software, and to permit persons to whom the Software is > +# furnished to do so, subject to the following conditions: > + > +# The above copyright notice and this permission notice shall be included in > +# all copies or substantial portions of the Software. > + > +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR > +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, > +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE > +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER > +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING > FROM, > +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN > THE > +# SOFTWARE. > + > +libosmesa_st = static_library( > + 'osmesa_st', > + 'osmesa.c', > + c_args : ['-DGALLIUM_SOFTPIPE', '-DGALLIUM_TRACE'], > + include_directories : [ > + inc_include, inc_src, inc_gallium, inc_gallium_aux, inc_mapi, inc_mesa, > + ], > +) > diff --git a/src/gallium/targets/osmesa/meson.build > b/src/gallium/targets/osmesa/meson.build > new file mode 100644 > index 00000000000..af81c5adbbe > --- /dev/null > +++ b/src/gallium/targets/osmesa/meson.build > @@ -0,0 +1,68 @@ > +# Copyright © 2017 Intel Corporation > + > +# Permission is hereby granted, free of charge, to any person obtaining a > copy > +# of this software and associated documentation files (the "Software"), to > deal > +# in the Software without restriction, including without limitation the > rights > +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell > +# copies of the Software, and to permit persons to whom the Software is > +# furnished to do so, subject to the following conditions: > + > +# The above copyright notice and this permission notice shall be included in > +# all copies or substantial portions of the Software. > + > +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR > +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, > +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE > +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER > +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING > FROM, > +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN > THE > +# SOFTWARE. > + > +osmesa_link_with = [] > +osmesa_link_args = [] > +osmesa_comp_args = ['-DGALLIUM_SOFTPIPE', '-DGALLIUM_TRACE'] > +osmesa_deps = [] > + > +if with_shared_glapi > + osmesa_link_with += libglapi > +endif > +if with_ld_version_script > + osmesa_link_args += [ > + '-Wl,--version-script', join_paths(meson.current_source_dir(), > 'osmesa.sym')
files('osmesa.sym') ? I'm not sure if it would work here though, since it expects a string. /me hopes meson converts the file_array to a list of its filenames > + ] > +endif > + > +if with_llvm > + osmesa_comp_args += '-DGALLIUM_LLVM' GALLIUM_LLVMPIPE > + osmesa_deps += dep_llvm > + osmesa_link_with += libllvmpipe > +endif > +# TODO: swr > + > +libosmesa = shared_library( > + osmesa_lib_name, > + 'target.c', > + c_args : [c_vis_args, osmesa_comp_args], > + cpp_args : [cpp_vis_args, osmesa_comp_args], > + link_args : [ld_args_gc_sections, osmesa_link_args], > + include_directories : [ > + inc_include, inc_src, inc_gallium, inc_gallium_aux, inc_gallium_winsys, > + inc_gallium_drivers, > + ], > + link_whole : [libosmesa_st], > + link_with : [ > + libmesa_gallium, libgallium, libglapi_static, libws_null, libtrace, > + libsoftpipe, osmesa_link_with, > + ], > + dependencies : [dep_thread, dep_clock, dep_unwind, osmesa_deps], + dep_selinux With the last two comments fixed: Reviewed-by: Eric Engestrom <eric.engest...@imgtec.com> > + version : '8.0.0', > + install : true, > +) > + > +pkg.generate( > + name : 'osmesa', > + description : 'Mesa Off-screen Rendering Library', > + version : '8', > + libraries : libosmesa, > + libraries_private : gl_priv_libs, > +) > -- > 2.14.2 > _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev