Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GTK-4 Support #8

Open
MGlolenstine opened this issue May 26, 2021 · 7 comments
Open

GTK-4 Support #8

MGlolenstine opened this issue May 26, 2021 · 7 comments

Comments

@MGlolenstine
Copy link
Contributor

As I've used this Docker image for GTK+ 3 builds, I'm wondering if there are any plans to support GTK4?

@etrombly
Copy link
Owner

Eventually, yes. I primarily use relm, so I wasn't going to look into it into relm supports gtk4. I just looked quick and didn't see a mingw64-gtk4 package for fedora, but I'm not sure if that's the naming convention they'll be using.

@MGlolenstine
Copy link
Contributor Author

I don't know much about Fedora,, but there's mingw-w64-gtk4 in msys2. Would this help?

@etrombly
Copy link
Owner

etrombly commented Jun 8, 2021

just searched and the packages aren't in fedora yet. I'll keep an eye out.

@MGlolenstine
Copy link
Contributor Author

Thanks!

@MGlolenstine
Copy link
Contributor Author

It has taken me a few (22) days, but I've gotten a relm4 example app working.
I've made a fedora container, that works pretty similar to this one.
The code will be public soon enough.

I was wondering how you fixed the problems with case-insensitivity when linking.
I've tried compiling my personal project, which relies on winapi, so when it tried to compile and link Iphlpapi, it couldn't find it.
MinGW had a library called libiphlpapi installed, which I copied into libIphlpapi and it compiled correctly.

Is there a way to emulate Windows' case insensitivity?

@etrombly
Copy link
Owner

I actually haven't run into any case issues before. You can turn on case insensitive support for ext4 if you have a recent kernel. Here's instructions on setting it up with a loopback file, so you don't mess up any existing partitions:

dd if=/dev/zero of=fs.img bs=4M count=100
fdisk fs.img
#create a new partition and select the defaults
losetup --partscan --show --find fs.img
sudo mkfs -t ext4 -O casefold /dev/loop0
sudo mkdir /mnt/code
sudo mount /dev/loop0 /mnt/code
sudo mkdir /mnt/code/rust
sudo chattr +F /mnt/code/rust/

that will make a 400MB image mounted at /mnt/code and create a directory called rust that is case-insensitive. Then you can copy your code over to that directory and point the docker image to it like normal.

@MGlolenstine
Copy link
Contributor Author

MGlolenstine commented Jul 5, 2021

I think that the above wouldn't be great for a public project because people could easily mistype the dd command, but it is a nice idea to tinker with :)

I have come up with a way to compile GTK4 manually. I tried making an RPM for it but couldn't really figure out the Fedora build system or make it work with me, so I packaged it into a nice docker image.

It can be found here, and it does support multiple languages or build systems with customisable images (yours does too, don't get me wrong).

I still have a bit to go, mainly removing unnecessary .dll files and adding theming support, but it compiles and runs GTK4 projects.

I did use your package script with a few changes to make it work.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants