romgrk / node-gtk

GTK+ bindings for NodeJS (via GObject introspection)
MIT License
493 stars 41 forks source link

Windows build #327

Closed ten0s closed 2 years ago

ten0s commented 2 years ago

This PR makes it possible to build and run on Windows using Node.js 12, see GitHub workflow for Windows.

At this point the next examples run successfully:

examples/hello-gtk.js examples/drawing-area.js examples/builder-auto-connect-signals.js examples/builder.js examples/entry.js

Closes #107

ten0s commented 2 years ago

Screenshot_2022-06-09_16-18-21

romgrk commented 2 years ago

Amazing work :open_mouth: I have limited time these days but ping me when it's ready, I'll do a quick review and as long as the tests are passing for the existing OSes I'm ok with merging it.

ten0s commented 2 years ago

@romgrk At this point all the tests pass on Linux and the majority of tests pass on Windows.

The two skipped tests callback.js and signal__non-introspected.js (both Gst) pass locally on my machine, but seems to crash in CI. Since Gst doesn't interest me I'm not going to look into them.

Also I disabled one test inside conversion__array.js introduced in https://github.com/romgrk/node-gtk/pull/313, since it crashes somewhere inside node. See comment in code.

MacOS build still fails https://github.com/romgrk/node-gtk/pull/326, so no idea if my changes somehow affected it.

romgrk commented 2 years ago

I've started the test suite, let's see what passes.

Overall LGTM, I'm ok merging as it is. Some windows support is better than no windows support.

One thing though, for the cairo.cc changes, those files are actually autogenerated, can you update the corresponding generator? https://github.com/romgrk/node-gtk/blob/ab813bb45e2801fd7ffd9dc9b441a06d520c1143/src/modules/cairo/generator.js#L524-L536

ten0s commented 2 years ago

Will do.

Seems like I found the cause of https://github.com/romgrk/node-gtk/pull/327/commits/a1e0f72660d4d493ac6025fcf83ce91be7e40f35#diff-2ecb150c1fd88f2ab8aaf603ccee701e18d113bdb931ffc3aa4eb528243a3a38R1347-R1349

Will change, test and give you know.

ten0s commented 2 years ago

@romgrk Done

ten0s commented 2 years ago

@romgrk Done

romgrk commented 2 years ago

Good, nice work. Not sure I would have got around to doing the windows support by myself, so thanks a lot :)

ten0s commented 2 years ago

Great! Hopefully the project will start gaining more traction!

romgrk commented 2 years ago

Yeah, my dream as always been to have a clean & simple native alternative to electron. node-qt is probably better placed than this project, but the downside is they use Qt which is ugly by default.