Build failed on Signals.h

Hello! I am on a MacBook Pro M4, macOS Sequoia 15.4, libCinder 0.9.3. Now none of the sample projects (or my own projects) can build. It seems to be a change in cinder::Signals.h. Enclosed is the error traceback from Xcode.

Not sure what to do… Thanks for any tips!

Doing a quick scan of the code, it looks like it’s supposed to say
if( callback == link->mCallbackFn ) so you may just be able to patch that and be ok.

That code has been in cinder for a very long time so I’m surprised no-one’s hit it before, are you calling that deactivate function? I guess the compiler has just been stripping it out all these years and we’ve been lucky.

lithium,

Thanks, that tiny change worked! Everything is building again.
How strange it was never a problem before, and I’m not calling it directly.
My guess is that something has changed in the latest updates of macOS and/or Xcode.

BTW for others on the bleeding edge of macOS, I’m finding some other issues with Apple Photos export of depth images, and many /Library/Fonts have disappeared, or folders exist but with zero bytes.

cinder rocks!

@lemonjim I had the same issue when i tried to build as well but now I’m getting the below when I build.

Does anyone know a stable version of Cinder to use on mac? I tried using all the other version available for download and got errors with linked libraries or errors like this post.

Cinder/src/freetype/gzip/ftzconf.h:228:12: fatal error: unknown type name ‘Byte’
228 | typedef Byte FAR Bytef;
| ^
1 error generated.
make[2]: *** [CMakeFiles/cinder.dir/src/freetype/gzip/ftgzip.c.o] Error 1
make[1]: *** [CMakeFiles/cinder.dir/all] Error 2
make: *** [all] Error 2

Yes, I also had this error, and I fixed it with one line. Luckily I save the original file to make the difference clear:

diff ftzconf.h.orig ftzconf.h     
217a218
> typedef unsigned char  Byte;  /* 8 bits */

I hope your build works now!

Update zlib to the latest release version fixed the issue.
From a maintenance perspective, it would be an better idea to update 3rd party dependences if they fix the issue than trying to “hack” issue individually.