Created attachment 249195 [details] Git diff of changes. Upgrade audio/supercollider to the latest version: 3.13.0. This will also fix the recent build failures caused by the upgrade to boost.
This patch fails portlint: FATAL: Makefile: [56]: USE_QT is set after including bsd.port.pre.mk. You cannot set USE_XXX options after bsd.port.pre.mk is included as that include already evaluates all USES. I know you didn't change this and it was already wrong before, but it should be changed before we proceed: As an alternative, try something like this (untested): CMAKE_ARGS_amd64= -DSSE:BOOL=FALSE -DSSE2:BOOL=FALSE -DSC_USE_QTWEBENGINE:BOOL=FALSE CMAKE_ARGS_i386= ${CMAKE_ARGS_amd64} CMAKE_ARGS+= ${CMAKE_ARGS_${ARCH}} USE_QT+= ${ARCH:Namd64:Ni386:C/.*/webengine/} If you like, I can apply a fix like this on commit.
Also note that SSE and SSE2 are not guaranteed to be available on i386. Ideally you should make an option for this (option SSE is predefined for this purpose) that is enabled by default on amd64, disabled by default on i386, and forbidden on all other platforms. You could handle the webengine dependency in a similar fashion. I'll leave this deeper change up to you. (I also got the order of things wrong in the previous comment; will do it right in the commit).
I'm having a go at making the changes you have asked for, but I have to say that it appears to be beyond my meagre make abilities. The main problem I'm having is that to use the ARCH variable, it must be after the .include <bsd.port.pre.mk>. After this point, no changes I make to OPTIONS_DEFINE take effect. How on earth can I make OPTIONS dependent on ARCH?
(In reply to Neal Nelson from comment #3) Well, it's a bit tricky and a known problem with our framework. The code I have shown above achieves this (though the wrong way round) and I'll commit something like this when I commit your patch (might be later tonight) if you like. It currently looks like this in my patch set: USE_QT_amd64= webengine USE_QT_i386= webengine USE_QT= buildtools:build concurrent core declarative gui linguisttools location \ network opengl printsupport qmake:build sensors \ sql widgets websockets webchannel svg ${USE_QT_${ARCH}} CMAKE_ARGS_nox86= -DSSE:BOOL=FALSE \ -DSSE2:BOOL=FALSE \ -DSC_USE_QTWEBENGINE:BOOL=FALSE CMAKE_ARGS= -DCMAKE_PREFIX_PATH=${LOCALBASE}/lib/qt5 \ -DLIBUSB_1_INCLUDE_DIR=/usr/include \ -DLIBUSB_1_LIBRARY=/usr/lib/libusb.so \ -DLIBSCSYNTH=ON \ -DSYSTEM_BOOST=ON \ -DSYSTEM_YAMLCPP=ON \ -DSC_ABLETON_LINK=OFF \ ${ARCH:Namd64:Ni386:C/.*/${CMAKE_ARGS_nox86}/}
A commit in branch main references this bug: URL: https://cgit.FreeBSD.org/ports/commit/?id=ba6612603a26676573cd3f34413227c1d906ea3c commit ba6612603a26676573cd3f34413227c1d906ea3c Author: Neal Nelson <ports@nicandneal.net> AuthorDate: 2024-05-12 09:53:01 +0000 Commit: Robert Clausecker <fuz@FreeBSD.org> CommitDate: 2024-05-13 21:19:52 +0000 audio/supercollider: update to 3.13.03 - fix handling of webengine dependency and SSE use - fix recent build failures due to boost update Changelog: https://github.com/supercollider/supercollider/releases/tag/Version-3.13.0 PR: 277722 audio/supercollider/Makefile | 27 ++++----- audio/supercollider/distinfo | 6 +- .../files/patch-common_SC__Apple.hpp (gone) | 22 ------- .../files/patch-common_SC__Apple.mm (gone) | 68 ---------------------- .../patch-common_SC__AppleEventLoop.hpp (gone) | 37 ------------ .../files/patch-common_SC__EventLoop.hpp (gone) | 19 ------ ...special__functions_detail_fp__traits.hpp (gone) | 11 ---- .../files/patch-lang_LangSource_PyrLexer.cpp (new) | 11 ++++ .../patch-server_scsynth_CMakeLists.txt (gone) | 17 ------ .../patch-server_scsynth_SC__GraphDef.cpp (new) | 11 ++++ .../patch-server_supernova_CMakeLists.txt (gone) | 18 ------ ...server_supernova_sc_sc__osc__handler.hpp (gone) | 27 --------- audio/supercollider/pkg-plist | 52 +++++++++++++++-- 13 files changed, 85 insertions(+), 241 deletions(-)
Committed the patch with the fix as indicated. Let me know if there are any problems with that.
Thanks very much. I shall endeavour to understand how the changes you made work. It's all way beyond anything in the porters' handbook.