These are some disparate notes I took while building Intuition. If anyone happens to need some help, here’s my way of giving back. Saved you a week of trying.
I need to submit some issues.
scons
, the build tool for Godot. Nor did it read the env value, or the path I passed. If scons
does not find MoltenVK, you need to point vulkan-sdk-path
to the folder that has the MoltenVK.xcframework
file. Anything else and it won’t find it, no matter if it’s inside a folder. Took me hours to notice that little bit. Skill issue from my side.osxcross
, you need to unpack either the Xcode or Xcode Command Line Utilities file.
pbzx
could not find the file.gen_sdk_package_tools_dmg.sh
could extract the file onto a tarball.oscross
compiled the whole toolchain.llvm-mingw
(https://github.com/mstorsjo/llvm-mingw) hope you’re comfy compiling toolchains!osxcross
toolchains are just right. The things that kinda got me further down are: using Apple Clang and recompiling with them.scons --clean
in between.<godot_binary> --headless --generate-mono-glue modules/mono/glue
does imply two things: you’re in the root folder of the repo, and you’re running this on Linux. <godot_binary>
is the file you just compiled (or any, for that matter). If it’s fresh out of the compiler, it’s bin/<godot_editor_with_mono_suffix> —headless —generate-mono-glue <path_to_modules/mono/glue>
. If you execute it from /bin
, you will get the files on a folder called modules
inside the bin
folder. It will fail the next step if you leave it like this. Make sure the last argument _points to modules/mono/glue
. Ironically, the next step is clearer about this tiny little misunderstanding.
scons platform=linuxbsd target=template_release module_mono_enable=yes vcproj=yes gen_vcproj_only=no debug_symbols=no production=yes use_gcc=no use_llvm=yes
. If you’re targeting Windows, it doesn’t matter if you choose LLVM, it’s going to use mingw
anyways.dotnet nuget add source <absolute_path_to_folder_usually_./nuget/NuGet/bin/NameOfSource> --name NameOfSource
. I always messed the order of the dotnet arguments.bin/godot.linuxbsd.editor.x86_64.mono —headless —generate-mono-glue modules/mono/glue
.modules/mono/build_scripts
and then run the final command as python3 build_assemblies.py —godot-output-dir=absolute/address/to/bin/folder —godot-platform=linuxbsd
linuxbsd
platform. The binaries are universal. But cross-compiling from WSL worked so much better than doing it natively.GodotSharp
and NuGet packages! Save these for later.The final command I tried for macOS was:
export OSXCROSS_ROOT:"/absolute/path/to/osxcross/root/folder:$PATH"
scons \
target=template_release \
debug_symbols=no \
module_mono_enabled=yes \
production=yes \
platform=macos \
vulkan_sdk_path=/folder/to/MoltenVK.xcframework \
osxcross_sdk=darwin24 \
builtin_embree=no \
builtin_enet=yes \
builtin_freetype=no \
builtin_graphite=no \
builtin_harfbuzz=no \
builtin_libogg=yes \
builtin_libpng=no \
builtin_libtheora=yes \
builtin_libwebp=no \
builtin_mbedtls=yes \
builtin_miniupnpc=no \
builtin_zlib=no \
generate_bundle=yes
Your mileage may vary depending on what you do.
This is not a guide.
Did you like this post? Tell us
Leave a comment
Log in with your itch.io account to leave a comment.