NREL / Spawn

Other
15 stars 3 forks source link

Mac OS X (Apple Sillicon) support #64

Open borlum opened 5 months ago

borlum commented 5 months ago

I have managed to get part of the way in getting Spawn running on a MacBook w. M2 processor. I can compile a working spawn w/o compiler toolchain embedded with a few changes to CMake files + compilation of the EnergyPlus and pyfmi dependencies.

However, for it to be super useful for me, I would love to see the compiler toolchain embedded, since then I can short-circuit e.g. Dymola which does not provide Mac (and/or ARM) builds 👎 , and at least compile FMUs for simulations/control development purposes. This would be a killer setup - and super useful to have a cli tool to build FMUs without relying on Dymola...

I get the following errors in c_compiler/compiler.cpp, but looking at the file I can see that this is def. where work is needed to get it running on Mac OS X w. Apple Sillicon 🥲 :

builds/spawn/c_compiler/compiler.cpp:317:20: error: no member named 'elf' in namespace 'lld' [clang-diagnostic-error]
  317 |     success = lld::elf::link(Args, false /*canExitEarly*/, out, err);

builds/spawn/c_compiler/compiler.cpp:291:23: error: object of type 'ErrorHandler' cannot be assigned because its copy assignment operator is implicitly deleted [clang-diagnostic-error]
  291 |   lld::errorHandler() = lld::ErrorHandler{};