lucianodato / noise-repellent

Lv2 suite of plugins for broadband noise reduction
GNU Lesser General Public License v3.0
463 stars 39 forks source link

Build system regression #60

Closed x42 closed 4 years ago

x42 commented 6 years ago

Since the removal of the Makefile 1aa4b9d811d1029 the plugin can only be built on modern systems.

In particular cross-compile mingw on Linux is no longer available. Also older versions of OSX are not supported and noise-repellent's built broken.

The meson file also does not statically link the plugin. The resulting binary is not self-contained.

What is the benefit of using meson over the previous Makefile for this particular project?

lucianodato commented 6 years ago

Hey Robin! no real benefit really. it's just that is much easier to read than a makefile. I didn't know that meson was only for modern systems makes no sense now that you mention it. will revert asap.

x42 commented 6 years ago

I didn't try very hard to get meson/ninja going on OSX 10.5/10.6 (the systems we use for Ardour builds). Perhaps it is possible with some further effort.

I was wrong regarding x-compile. It is possible by writing a build-definition file (I expect ninja to just pick up CC, CXX environment variables).

PS. I do like meson for more complex projects (replacing auto-tools, projects that do need configuration)

x42 commented 6 years ago

Do you plan to build distributable binaries?

I suppose an alternative would be to use travis (but compile dependent libraries from source with hidden symbols for static linking, instead of using homebrew or apt). In that case meson would be fine to keep.

lucianodato commented 4 years ago

Finally I dedicated some time to this. Had to use appveyor with cygwin for windows but I do have binaries for all platforms, not sure if they work or not I only have a linux box. Do I have to provide linux i686 binaries?

lucianodato commented 4 years ago

Added i386 linux binaries. The ones that seems super difficult now are 32 bit binaries for osx are they really needed?

x42 commented 4 years ago

The ones that seems super difficult now are 32 bit binaries for osx

I use -arch i386 -arch x86_64 -arch ppc compiler flags on OSX. That creates a multi-arch binary. Along with -mmacosx-version-min=10.5 -DMAC_OS_X_VERSION_MAX_ALLOWED=105 (compiled on 10.6, works 10.5 or later, incl latest Catalina).

are they really needed?

probably not anymore, no.

lucianodato commented 4 years ago

Perfect! Thanks! Though powerpc builds seem a bit old and travis does not have a 10.6 image but 10.3 or 11.x. Is PPC needed? I guess I can do a specific build for that if needed

x42 commented 4 years ago

I guess I can do a specific build for that if needed

Yes, that's a good approach.

While those old PowerMac withstand the test of time amazingly well in Audio context , they are really rare. I'd postpone that until a there's a user asking for it and also volunteers to test.

dvzrv commented 4 years ago

the plugin can only be built on modern systems.

Hm, but meson can be installed using pip3 and ninja is buildable on older systems, too, no?

lucianodato commented 4 years ago

I've tried to do a ppc build but it was too much fiddle with travis. For now I'll leave it there.

x42 commented 4 years ago

Hm, but meson can be installed using pip3 and ninja is buildable on older systems, too, no?

Sure, it's software, so everything is possible. Except you'll spend four days chasing all kind of edge-cases, patching things, end up with a fragile system and if you have energy left reporting bugs that few are interested in fixing :)