On Tue, Aug 25, 2020 at 11:29:21AM +0200, Pavel Hrdina wrote: > On Tue, Aug 25, 2020 at 09:44:41AM +0100, Daniel P. Berrangé wrote: > > On Mon, Aug 24, 2020 at 06:15:57PM -0700, Scott Shambarger wrote: > > > On 2020-08-24 02:34, Daniel P. Berrangé wrote: > > > > I don't think we want to keep compatibility with any libtool quirks. We > > > > should do the right thing for the platform, and I think that means using > > > > the platform native suffix for shared library modles correctly. > > > > > > > > > > Of course... we'd still have to deal with meson quirks (it suffixes modules > > > with .dylib instead of .bundle on MacOS). > > > > > > I'm happy to take a crack at a patch using the platform suffix in the > > > code... any idea how to configure meson to put the module suffix into > > > config.h? (I'm kinda new to meson - would be easy in autoconf :) > > > > I wouldn't bother - just #ifdef __APPLE__ in the source code > > Meson doesn't export any function to get the default suffix but they > have clear definition of the default suffixes: > > 'By default, for shared libraries this is dylib on macOS, dll on > Windows, and so everywhere else.' > > As we don't care about Windows in this case we can hard-code .dylib in > meson or in source code. With meson you would do something like this in > meson.build: > > if host_machine.system() == 'darwin' > conf.set('MODULE_SUFFIX', '.dylib') > else > conf.set('MODULE_SUFFIX', '.so') > endif > > The conf variable is then used to generate meson-config.h which is > included in config.h I don't think that adds any value over just using an #ifdef in the source. Arguably it makes it worse, as you can't see what's happening in the source without serching for the definition of MODULE_SUFFIX in meson. Autoconf skewed our POV towards using defining config.h variables for everything, because when you have a big hammer, everything looks like a nail. We should resist the urge to just blindly follow the same approach we did with autoconf. Use meson generated config.h variables only where truly adding value. ie things that are a response to user config params to meson, or things that we needed to auto-detect from host OS. ... > Or as Dan suggested you can do #ifdef somewhere in source code. ...If it can just be a siple #ifdef in the source though, just do that and skip meson-confg.h Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|