Fork me on GitHub
#humbleui
<
2023-06-13
>
Quest17:06:06

Has anyone successfully built JWM on MacOS? https://github.com/HumbleUI/JWM#building-from-source Any tips, or should I instead build on Windows & transfer the artifact to Mac for testing?

phronmophobic17:06:35

I haven't tried, but you can try using the github workflow steps for mac https://github.com/HumbleUI/JWM/blob/main/.github/workflows/build-deploy.yml#L48

Quest18:06:53

Hmm, good catch. This looks runnable, just need to round up all of my missing tools/deps

phronmophobic18:06:00

Or if you don't want to bother building locally, you could probably just fork and let github build changes for you.

phronmophobic18:06:12

I think you get a certain number of free hours a month

Quest18:06:28

Now that's a real protip! I'll opt for trying locally first, hope to release several JWM PRs over the coming months

clojure-spin 2
Niki18:06:47

you can’t compile mac version on windows (unfortunately). C++ doesn’t really have cross-compilation

🆗 2
Quest18:06:14

I did get Mac compilation working, https://github.com/HumbleUI/JWM/pull/268 but I've been fighting with Mac's API while implementing bringToFront Below works but needs cleanup & reimplementation. Will be a while longer before I submit a PR

Quest18:06:37

I'd also like to ask about exposing unique parts of Mac's API to downstream Clojure apps. I'd like to be able to invoke [nsWindow setLevel:9999] & [nsWindow setCollectionBehavior:...] from my app. Because these are specific to MacOS, do you have a recommendation on exposing these? It seems wrong to add to JWM/shared/java/Window.java. What about adding to macos/cc/WindowMac.hh & having downstream Clojure app run:

(condp = os
  :mac (do (.setLevel window 9999) ...)
  ...)
@tonsky How does this sound?

Niki16:06:03

Yeah, that was the idea behind having WindowMac.java separate from Window.java

Niki16:06:12

Go for it

👍 2
Quest15:06:39

Appreciate the encouragement in this thread; Opened https://github.com/HumbleUI/JWM/pull/269 for Mac bringToFront & isFront

Quest18:06:37

I'd also like to ask about exposing unique parts of Mac's API to downstream Clojure apps. I'd like to be able to invoke [nsWindow setLevel:9999] & [nsWindow setCollectionBehavior:...] from my app. Because these are specific to MacOS, do you have a recommendation on exposing these? It seems wrong to add to JWM/shared/java/Window.java. What about adding to macos/cc/WindowMac.hh & having downstream Clojure app run:

(condp = os
  :mac (do (.setLevel window 9999) ...)
  ...)
@tonsky How does this sound?