Is there any big change if we let meson decide it itself?

Usually we only disable stuff if compilation is broken, so there is no feature limit on purpose in OI. Just things that are broken or need additional deps nobody had the time for.

-Till

On 26.10.21 21:44, Tim Mooney via oi-dev wrote:

All-

I'm working my way through updating the gstreamer1 components to the
latest version (1.16.2 -> 1.18.5).  They've switched from autoconf to
meson, so the biggest hurdle has been converting the Makefile to use
the new configuration options.

With the current 1.16.2, gst-plugins-base1 specifies

     CONFIGURE_OPTIONS += --disable-gles2

but nothing else OpenGL related.

Unfortunately, gst-plugins-base1 for 1.18.5 with meson doesn't have
the same option meanings, so there's no one-to-one mapping between our
old configuration and the new.  The meson_options related to OpenGL are

     # OpenGL integration library options
    option('gl_api', type : 'array', choices : ['opengl', 'gles2', 'auto'],
         value : ['auto'],
         description : 'A comma separated list of opengl APIs to enable
         building against'
     )

     option('gl_platform', type : 'array',
         choices : ['glx', 'egl', 'cgl', 'wgl', 'eagl', 'auto'],
         value : ['auto'],
         description : 'A comma separated list of opengl platforms to
             enable building against'
     )

     option('gl_winsys', type : 'array',
        choices : ['x11', 'wayland', 'win32', 'winrt', 'cocoa',
             'dispmanx', 'egl', 'viv-fb', 'gbm', 'android', 'auto'],
        value : ['auto'],
        description : 'A comma separated list of opengl windows systems
             to enable building against. Supported values are x11, wayland,
             win32, winrt, cocoa, dispmanx, egl, viv-fb, gbm, and android'
     )

     option('egl_module_name', type : 'string',
         value : '',
         description : 'The file to pass to g_module_open to open the
             libEGL library (default: libEGL)'
     )

     option('opengl_module_name', type : 'string',
         value : '',
         description : 'The file to pass to g_module_open to open the
             libGL library (default: libGL)'
     )

     option('gles2_module_name', type : 'string',
         value : '',
         description : 'The file to pass to g_module_open to open the
             libGLESv2 library (default: libGLESv2)'
     )


     #
     # Feature option for opengl plugin and integration library
     #
     option('gl', type : 'feature',
         value : 'auto',
         description : 'OpenGL integration library and OpenGL plugin'
     )

     option('gl-graphene', type : 'feature',
         value : 'auto',
         description : 'Use Graphene in OpenGL plugin'
     )

     option('gl-jpeg', type : 'feature',
         value : 'auto',
         description : 'Use libjpeg in OpenGL plugin'
     )

     option('gl-png', type : 'feature',
         value : 'auto',
         description : 'Use libpng in OpenGL plugin'
     )


Now, with the available meson options, what I have (so far) specified for the
updated build is

     CONFIGURE_OPTIONS += -Dgl_api=opengl
     CONFIGURE_OPTIONS += -Dgl_platform=glx,egl
     CONFIGURE_OPTIONS += -Dgl_winsys=x11,egl
     CONFIGURE_OPTIONS += -Dgl-graphene=disabled


With those options specified, the updated manifest isn't missing anything
that was present in the 1.16.2 component.

It seems like some new stuff is being added, though:

  file path=usr/lib/pkgconfig/gstreamer-gl-1.0.pc
+file path=usr/lib/pkgconfig/gstreamer-gl-egl-1.0.pc
+file path=usr/lib/pkgconfig/gstreamer-gl-prototypes-1.0.pc
+file path=usr/lib/pkgconfig/gstreamer-gl-x11-1.0.pc

There are also new GL-related header files and several files related to
introspection (for the 64 bit build; the 32 bit build has introspection
disabled):

+file path=usr/lib/$(MACH64)/girepository-1.0/GstGLEGL-1.0.typelib
+file path=usr/lib/$(MACH64)/girepository-1.0/GstGLX11-1.0.typelib

+file path=usr/share/gir-1.0/GstGLEGL-1.0.gir
+file path=usr/share/gir-1.0/GstGLX11-1.0.gir


I also note that the existing package has dependency skips for libGL and
libEGL:

file path=usr/lib/$(MACH64)/libgstgl-1.0.so.0.1602.0 \
     pkg.depend.bypass-generate=libGL\.so\.1 \
     pkg.depend.bypass-generate=libEGL\.so\.1


This leads me to wonder whether the set of meson options I chose are
what we want.  Would it be better if I dropped "egl" from gl_platform
and gl_winsys?

If I include stuff by mistake that we later decide we don't want, it's
going to be more difficult to get rid of it later than it is to get the
right stuff selected now.

Tim

_______________________________________________
oi-dev mailing list
[email protected]
https://openindiana.org/mailman/listinfo/oi-dev

Reply via email to