tsunami icon indicating copy to clipboard operation
tsunami copied to clipboard

[windows] Build and run on windows

Open momentarylapse opened this issue 7 months ago • 0 comments

The biggest blockers here are:

  • the gtk library is not well supported on windows
  • our internal JIT compiler kaba needs to adapt to a different ABI
  • I don't understand visual studio and the build system well enough

gtk

Yes, there are multiple ways of using gtk on windows. Sadly, they seem to get abandoned fairly quickly. I had my hopes on vcpkg but since gtk4 it is only usable with heavy workarounds.

Currently I got it working using https://github.com/wingtk/gvsbuild but who knows.

I still need to check out how to bundle everything. At least theming has gotten easier since gtk4.

kaba

There was a major bug in the calling convention that I've fixed recently. And I'm carefully optimistic after a couple of experiments. Needs more proper testing before I'll call it stable.

build system

As much as I dislike cmake, it is the only realistic and """reliable""" system. I'm automatically generating cmake files with a script from a list of required and optional libraries.

Visual studio can handle cmake files. It seems to require some additional files that my script has (partially) learned to generate.

Libraries on windows are still a nightmare though. From what I've tried, vcpkg still seems like the best option. Yes, some libraries are screwed up, but most work. And cmake integration is finally supported out-of-the-box.

Outlook

I finally got the program running again yesterday. What is missing:

  • more testing
    • automatic ci builds? (not sure if that is possible with the current way of using gtk)
  • smaller fixes in the build system
  • enabling support for ogg and flac files again
  • some musical unicode symbols are not supported
  • native backend? (at least pick better devices in portaudio)
  • bundling files

momentarylapse avatar Jul 21 '24 12:07 momentarylapse