SFTtech / SFTtech/openage

Compiling in msys2

Open
#934 34 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

area: buildsystem os: windows question
Dominant language
Python
Stars
14.4k
Forks
1.3k
PR merge metrics
No merged PRs in 30d

Description

This is just my experience compiling with msys2 (Spoiler alert: I DID NOT Succeed).

Preliminary configuration:

Go ahead and install everything in the dependency list, except for Python-related stuff (numpy, pillow, pycodestyle, pygments, pylint). Get those with pip, except for pillow. Qt5 is 5GB, so it's gonna take a while.

Get dejavu fonts from here and install. These are unrelated to msys2 (and building in general).

Get the latest Pillow source, 4.3.0 as of now.
Extract, cd into it and run (in mingw32 shell):
python3 setup.py build_ext --disable-jpeg2000 install

Get pyReadLine with pip, Jasper and dlfcn from repo.

If I didn't forget anything, this should be enough. CMake is also looking for backtrace, gperftools, and inotify. These seem to be optional, so I never bothered with these.

As far as the code goes, my only problem with libopenage was the _MSC_VER checks. You guys should really consider replacing those that look for Windows with something else. I've made some changes (libopenage-msys2.zip), but since I couldn't build openage itself, I can only confirm that libopenage builds with these changes, but I have no idea, if it actually works.

When building openage, I got a bunch of unidentified references to Py* (you can feast your eyes here), which is not surprising, since nothing in openage is being linked against, well, anything python-related. At least I couldn't find one in any of the linklibs.rsp's in openage. Since I know pretty much nothing about Python, I didn't know what to do with this, so this was my dead end...
I'm not sure if this is related or not, but CMake, for whatever reason, detected PYTHON_LIBRARIES and PYTHON_LIBRARY as libpython3.6.dll, I manually changed them to libpython3.6.dll.a, that didn't seem to change anything...
I noticed that there also seems to be a problem with WinMain/SDL_main in run.exe, -lSDL2Main must be added for Windows.

I guess, this is it. I hope you guys find this useful!

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with doc/building.md and the reported MSYS2 build failures, then inspect the _MSC_VER checks in libopenage, CMake's Python library detection, and the openage linklibs.rsp files. Reproduce the unresolved Py* references and the run.exe WinMain/SDL_main issue; done means openage builds successfully under MSYS2.

Written by the indexing model from the issue text.

Assessment

Tech stack
cmake, cpp, python
Domain
build-system, operating-systems
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.