Libgtkmm2 fails when attempting a build

I am attempting to build Ardour 7.3 from source on Mac (Intel, Big Sur 11.7.4). I have read some documentation and forum posts on doing so but I cannot find a solution to my problem.

No matter how I configure it, I end up with the same result when running ./waf:

Build failed
→ task in ‘libgtkmm2ext’ failed with exit status 1:
{task 4398947816: cxx nsglview.mm → nsglview.mm.1.o}

I have tried configuring the build using various combinations of these flags:
./waf configure --libjack=weak --with-backends=jack,dummy --cxx11 --strict --optimize --no-fpu-optimization

Any help is welcome


Here are some of the other posts I perused:


Thanks in advance

What is the actual error message from the compiler?

That is printed a bit above in the compile output before the “tasked failed”.

nsglview.mm is a dedicated openGL View for macOS, and while apple deprecated it, it still compiles just fine. I am building Ventura 13.2.1 and official Ardour Apple-silicon binaries are done on BigSur (11.6).

Here’s the output right before the build failed message:

warning: unknown warning option ‘-Wno-deprecated-copy-with-user-provided-copy’ [-Wunknown-warning-option]

…/libs/gtkmm2ext/nsglview.mm:46:2: error: NO TAG

#error NO TAG

^

1 warning and 1 error generated.

OK, I just got a crazy idea that ended up working. I located the nsglview.mm file and was looking thru the code when I noticed this:

#ifndef ARDOUR_CANVAS_NSVIEW_TAG
#error NO TAG
#define ARDOUR_CANVAS_NSVIEW_TAG 0x0
#endif

So I thought to myself “cool, what if I just commented out that #error line?”
So I did.
And it compiled successfully.

I understand this probably shouldnt have worked. I assume that the #error was there for a reason but whatevs.

So thank you Robin for making me actually read the error message, giving me the impetus to go snoop around the code.


On another note, to make it an app bundle the osx_build script is failing.
When I run the ./osx_build --public command I get this:

Removing old Ardour7.app tree …
Building new app directory structure …
Copying ardour executable …
cp: …/…/build/gtk2_ardour/ardour-7.3.23: No such file or directory

Any suggestions? If not thats OK, I can simply make a shell script that runs the ardev executable.

To consolidate the problem and a poor short term solution:

MY SETUP: Intel Macbook, Big Sur 11.7.4 | Ardour 7.3.23

PROBLEM: While compiling from source during the ./waf step, the build fails in task libgtkmm2ext because of a NO TAG error raised in the the file ../libs/gtkmm2ext/nsglview.mm.

SOLUTION (ymmv): Manually edit line 46 of the previously mentioned file. Either remove that line completely or comment it out.

Old Broken code:

#ifndef ARDOUR_CANVAS_NSVIEW_TAG
#error NO TAG
#define ARDOUR_CANVAS_NSVIEW_TAG 0x0
#endif

Edited Code:

#ifndef ARDOUR_CANVAS_NSVIEW_TAG
// #error NO TAG
#define ARDOUR_CANVAS_NSVIEW_TAG 0x0
#endif

This causes the build to be incomplete. While I was able to run the ../gtk2_ardour/ardev just once. The app functioned just fine. But after closing the app, I was unable to reopen it. Now each attempt to run the ardev script gives an error such as ../../gtk2_ardour/ardev: line 5: ~/../../build/gtk2_ardour/ardour-7.3.23: No such file or directory.

Ah, I forgot that we patch gtk+ (see Ardour - Nightly Builds) specifically debian Pastezone

With your change, I expect there may be some issues with mouse events. To work around this, you could change Ardour > Preferences > Appearance > Render Canvas on openGL texture to No.

What is the output of ls build/gtk2_ardour/ardour-* ?
Did you perhaps git pull since the last call to ./waf configure ...?

The only files in the …/build/gtk2_ardour/ directory are gtk2ardour-config.h and gtk2ardour-version.h.

I didn’t git pull in between then but I run ./waf clean before trying to create the app bundle.

It would seem that the build is not complete, then. There should be some 300+ .o object files there. and the resulting executable.

poo. It worked once, now it wont. I’ll try again tomorrow but thanks again for your help Robin

This topic was automatically closed 91 days after the last reply. New replies are no longer allowed.