| 17 Jul 2025 |
msgilligan | Why is Xcode non-viable? | 17:53:52 |
msgilligan | (I realize it's both binary and non-free, but just curious exactly how non-viable is defined in this context) | 17:54:23 |
Infinidoge 🏳️⚧️ | Pretty sure it would directly violate Xcode's license | 17:56:30 |
Infinidoge 🏳️⚧️ |  Download image.png | 17:57:39 |
Infinidoge 🏳️⚧️ | Not to mention needing Darling or a VM to even run it on Linux, making cross-compiling impossible | 17:58:10 |
Infinidoge 🏳️⚧️ | Or at least extremely impractical | 17:59:46 |
Infinidoge 🏳️⚧️ | https://docs.godotengine.org/en/2.1/development/compiling/cross-compiling_for_ios_on_linux.html | 17:59:48 |
Infinidoge 🏳️⚧️ | Godot's page about it makes it seem... extremely not fun | 17:59:57 |
Infinidoge 🏳️⚧️ | Not the worst, but not fun | 18:00:08 |
emily | uhh, why does Xcode even come into this | 18:00:09 |
Infinidoge 🏳️⚧️ | From what I remember of the PR, compiling the JDK properly for Darwin required Xcode | 18:00:29 |
emily | we have a full native LLVM toolchain and macOS SDK in Nixpkgs | 18:00:33 |
Infinidoge 🏳️⚧️ | Cool that works then | 18:00:44 |
emily | you only need Xcode itself in rare cases like the metal command-line tool or ibtool | 18:00:45 |
emily | it's not inconceivable that the WebKit build in OpenJFX wants metal or something but I'd be extremely surprised for OpenJDK | 18:01:05 |
emily | ok, this is before the 24.11 SDK rework also | 18:01:40 |
emily | so everything was very different/harder then | 18:02:04 |
emily | I truly think it's probably as easy as turning off GTK/JavaFX, maybe turning off the X11 dependencies, maybe adjusting some of the prefixed tool stuff, and firing off a build | 18:03:37 |
emily | I could give pointers for any particular errors that come up but I don't expect any "fundamental" obstacle | 18:04:02 |
msgilligan | I'm tempted to dive into this right now, but I really have too much I'm already committed to on my plate. And it is a task that is currently above my skill level, so I don't think it would be easy for me. I wish I had more time. | 18:12:28 |
msgilligan | I'd like to make sure two things from this conversation are captured in GitHub Issues:
- The idea of using
jlink to add OpenJFX to Temurin. Which should allow Darwin to use Temurin rather than Zulu.
- Whatever technical details emily is explaining above that are not already covered by existing issues.
| 18:15:15 |
emily | FWIW I haven't actually tried the jlink thing so I could be wrong about how it works :) | 18:18:30 |
emily | feel free to open issues though | 18:18:41 |
emily | I think in any case that it's likely not too hard to get OpenJFX building from source on Darwin even if jlink doesn't work. but I would really rather avoid building two JDKs in general | 18:18:57 |
emily | it makes testing them a pain too | 18:19:02 |
msgilligan | That's fine, I just want to make an issue to capture the idea, so someone can try it. | 18:19:09 |
emily | I would prefer even avoiding the jlink thing but I don't understand Java modules enough to determine whether it's possible (other than telling people to get OpenJFX from Maven) | 18:19:23 |
emily | I get the impression that nothing except OpenJFX actually uses them | 18:19:31 |
msgilligan | I'm a big advocate of Java modules and I feel like I've been swimming upstream for the last 6 years. But the current is getting weaker and modules are beginning to be accepted. | 18:20:39 |
msgilligan | OpenJFX made a bad decision to pretty much force modules on people and that's caused a lot of pain. | 18:20:57 |