Build errors and faust errors on osx, and no "Valid Architectures" field in projucer despite faust docs
-
still having trouble building hise for release version -- I posted https://forum.hise.audio/topic/12445/hise-failing-to-build-with-faust-on-osx-even-though-disabled?_=1744657986812 yesterday, but wanted to open a new issue as I have completely started from scratch and cloned the develop branch and used that instead of whatever release I was on, and now I'm getting errors that look similar to before, but not the same. - perhaps we should start here, as the error I'm getting is specifically mentioned in the readme in the faust folder, but there is no Valid Architectures section in the projucer when I open it. Anyone know why this would be the case? - Also what does the projucer file do, does it just open an xcode project and control a bunch of build settings? (wondering if there a way to replicate what that field would be doing, because I have tried a bunch of different things and cannot figure it out) -
-
@thrice801 Your image is too small. Can you post the text instead?
-
@d-healey ya, I also forgot to post the most recent error, but think I'm back to where I was at with it yesterday
-- text from readme is below
Before you build HISE, you must remove the architecture target that doesn't match your machine, otherwise the link process with the Faust library will fail. If this is the case, you will see error message like this:
Warning: Ignoring file ../../../../tools/faust/lib/libfaust.dylib, building for macOS-x86_64 but attempting to link with file built for macOS-arm64 Undefined symbol: generateSHA1(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Undefined symbol: deleteDSPFactory(llvm_dsp_factory*) Undefined symbol: expandDSPFromFile(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int, char const**, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) Undefined symbol: getAllDSPFactories() Undefined symbol: expandDSPFromString(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int, char const**, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) Undefined symbol: getDSPMachineTarget()
If that happens, you need to open the Projucer project of HISE (either standalone or plugin), then go to the Exporters -> XCode (macOS) tab on the left. Scroll down to the Valid Architectures item list and untick the architecture that doesn't match your system. So if you're running on a Apple Silicon CPU, untick
x86_x64
and if you're on a Intel machine, untickarm64
andarm64e
.Build HISE with the Faust scheme
Then click on Save and Open in IDE to open the HISE Standalone project in XCode. Change the scheme via XCode Menu -> Product -> Scheme -> Edit Scheme -> Build Configuration to either Debug with Faust or Release with Faust.
You don't need to change any flags as the two configurations will contain all required build settings.
If the compilation went through, you should see a text label in the HISE top bar indicating that Faust is enabled.
When the build succeeded you need to go into the HISE Settings and set the
FaustPath
folder to the root folder of your faust installation (HISE_ROOT/tools/faust/
), otherwise it won't find the libraries and any Faust compilation will fail. -
@thrice801 oh wait.. I was clicking on "Release" in the projucer, I just found valid architectures, by clicking on the parent item above it. trying build again
-
@thrice801 said in Build errors and faust errors on osx, and no "Valid Architectures" field in projucer despite faust docs:
Before you build HISE, you must remove the architecture target that doesn't match your machine, otherwise the link process with the Faust library will fail. If this is the case, you will see error message like this:
I'm not sure if this is still true. I did a build the other day on an Intel based system and left both the Intel and Arm architectures enabled - or maybe it only applies to Apple Silicon machines.
Let's stick to building the Release build (without faust) for now, that way we don't have to worry about faust stuff so much.
What version of xcode are you using?
-
@d-healey 13.4.1 -- and as an update, nothing I did worked, including disabling everything but x86_64 - I've tried clearing build folder, blowing away the xcode project completely so the projucer can create a new xcode project, nothing. Keeps getting stuck on that same error, on the link HISE step.
Also for context, I am trying to build the release version so I can export my plugin to vst so I can test it. When I've tried doing that via the debug build I get a version mismatch error though, and it fails to compile it if I try to force it through. Not sure if there is some workaround I can employ or something.
-
@thrice801 Are you able to update xcode?
-
@d-healey was hoping not to have to because I think I have to update my entire OS to get newer version of xcode iirc which always seems to break things, but may be at that point
-
@thrice801 In that case try downgrading xcode. https://xcodereleases.com/
-
@d-healey oh wait according to that I can update to 14.2, I'll try that thanks
-
@d-healey success! (sort of, exporting still not working but will post separately). Thanks for the help