TGITS-Solutions / Cataclysm-DDA

Cataclysm - Dark Days Ahead. A turn-based survival game set in a post-apocalyptic world.
http://cataclysmdda.org
Other
1 stars 1 forks source link

Windows builds through travis #18

Open Coolthulhu opened 5 years ago

Coolthulhu commented 5 years ago

I checked out the releases in your repo, but I only see sources. This means that Windows users who can't into computers (or are too lazy to go through COMPILING.md) can't play. Most of /rlg/ probably fits this description.

Consider adapting my .travis.yml to your repo: https://github.com/Coolthulhu/Cataclysm/blob/experimental/.travis.yml

TGITS-Solutions commented 5 years ago

Hi. Yes, I'm struggling with Travis, never used it before. Tried to adapt the solution from BN repository, but apparently I'm doing something wrong, as Windows builds keep failing and the deploy part didn't seem to do anything (maybe because of the failing builds, maybe not).

I'll take a look at your file. Thank you for your help.

UPD: wait, it seems to be the same one. Seems like I screwed something up trying to combine it with the up-to-date CleverRaven one.

Coolthulhu commented 5 years ago

It seems that at least one build passed: https://travis-ci.org/TGITS-Solutions/Cataclysm-DDA/jobs/485035863

You don't have skip_cleanup: true, which may sometimes be needed to actually keep the build artifacts. I'm not exactly sure what build artifacts are, but it seems that it should be anything that git stash --all would stash. And from what I can tell (git docs and manual test) that includes ignored files/directories, which happens to cover bindist.

There are some important lines in the build log:

Cleaning up git repository with `git stash --all`. If you need build artifacts for deployment, set `deploy.skip_cleanup: true`. See https://docs.travis-ci.com/user/deployment#Uploading-Files-and-skip_cleanup.
...
cataclysmdda-cth-win-tiles32-7.zip does not exist.

tl;dr adding the skip_deploy: true should be a quick fix for at least one of the builds

TGITS-Solutions commented 5 years ago

@Coolthulhu

skip_deploy

That's going to be counter-productive hurr.

Ok, that probably worked, and I feel silly because I've seen a guide which explicitly stated that you need to set skip_cleanup to true is you want to deploy the artifacts, made a mental note to do that and forgot. And also because it's written right in the build log. Thank you.

Coolthulhu commented 5 years ago

I see one windows build now, but it's HUEG and all of it is the binary, meaning it's a debug build.

TrainTurningPoint commented 5 years ago

@Coolthulhu I assumed that RELEASE=1 will resolve it, but it doesn't seem to be the case. Any suggestions?

Coolthulhu commented 5 years ago

@TrainTurningPoint It should, but some other option is adding -g flag to g++ command line. -g is for debug symbols, so even though the build isn't debug, it includes the symbols. In the Makefile there is DEBUG_SYMBOLS option which causes the -g option to be added. build_scripts/build.sh unconditionally specifies DEBUG_SYMBOLS=1. Release builds shouldn't have that part (it shouldn't be set to 0 - Makefile will only check if it's defined, not 1). Not sure about BACKTRACE option - it may be worth keeping it if it doesn't bloat the build and still works without debug symbols.

Coolthulhu commented 5 years ago

I see an archive of expected size (compared with CDDA one). For an x64 version, I'd expect setting the following values to do the job:

MXE_TARGET='x86_64-w64-mingw32.static'
NATIVE="win64"
BUILD_TYPE="win-tiles64"

In requirements.sh, the PLATFORM variable is set to a constant instead of depending on MXE_TARGET. This might cause problems.