tumagonx / pygi-mingw-patches

patches of pygi aio for windows
15 stars 4 forks source link

Better documentation #4

Open steelcowboy opened 7 years ago

steelcowboy commented 7 years ago

Could you provide some documentation on how to build this? I think it would be nice to have better support for python-gobject on Windows and I think development would flow more smoothly if you had more people helping you ;)

And by that, of course, I imply that I would love to help out myself!

tumagonx commented 7 years ago

Admittedly I not sure where to start, the buildscript is gnomebuild.sh I think people familiar with mingw/msys will get a hang of it. But yes it's horrible mess (compared to msys2 build system). The gcc compiler need to be customized, the one I prepared was https://sourceforge.net/projects/pygobjectwin32/files/gcc485_sjlj32_seh64_boost155_static.7z/download

Therefor where to start? nb: I'm not good at documenting or english overall

steelcowboy commented 7 years ago

No problem, I completely understand. Here are a few questions I have that it would nice to have in your README:

1) What do I need to run the gnomebuild.sh? Do I need mingw? Can I use msys2? 2) Will I need to download that gcc to my build environment, and how can I customize it myself? 3) Where are all of the patches coming from?

Some of these may be answerable by reading gnomebuild.sh, but in order to get started you want your devs to just be able to jump in, make a build, and then look at the source later for hacking.

If you want to email me at james.r.heald@gmail.com and correspond with me I can help write up some of that documentation if you'd like :)

tumagonx commented 7 years ago
  1. I think msys2 should do, I don't personally use it though (still stuck with msys1)
  2. it's a matter precautions but how this matter at runtime in real world I am not sure:
    • to not linking multiple version msvcrt in a binary (passing -lmsvcrXX isn't enough)
    • care of XP (at least until now I keep it XP compatible), vanilla gcc/mingw64 is targeted with Vista msvcrt.dll in mind. The mingw-w64 headers need to be patched, that's why you'll see strange gcc options in buildscript like -vcrXX (just cosmetics rather than override gcc specfile), gcc internal order of libs also need altered (gcc\config\i386\mingw-w64.h and/or mingw32.h). I will prepare patch if you interested
  3. Some patches are from me (mostly cosmetics) some came from fedore/opensuse cross-compile project (I merge all into one file)

Oh and currently I'm stuck https://sourceforge.net/p/pygobjectwin32/tickets/50/ (don't have time to debug it as well) I have no idea how to use msvcrt 2015 with gcc nor will it feasible to use vs2015 compiler to build all of these stuff.

tumagonx commented 7 years ago

in fact lately I started to think if I still need to maintain pygobjectwin32 considering msys2 support it as well and more developer friendly (I think mine is more user friendly, the installer that is).