50 Commits

Author SHA1 Message Date
DisherProject
18c487e4ff
Add JPG support to VC++2019 build (#5031)
* Add JPG support to VC++2019 build

Co-authored-by: DisherProject <pycchio@tiscali.it>
2020-08-05 23:43:38 -05:00
Pentarctagon
0c3cdd3a86 Remove VC14 (VS2015/VS2017 project files).
Reasons:
* These projectfiles are still 32-bit, whereas all other builds for all other OSes are now 64-bit.
* Relatedly, these projectfiles are dependent on the libraries kept at the aquileia/external repository.
* VS2019 is still listed as supporting Windows 7, so there is a minimal likelihood of developers not being able to use VS2019.
* The VS2019 projectfiles instead use vcpkg to get the required dependencies, which is easier to setup than the aquileia/external prebuilt libraries.
* It's one less thing that needs to be updated whenever source files are added/moved/removed.
* It's two fewer jobs that Travis needs to run, which means Travis builds will finish more quickly.
2020-07-03 12:23:34 -05:00
Pentarctagon
a6a927139b Change back to creating the macOS dmg from scratch.
On macOS 10.14 on travis, mounting the dmg template results in the job failing due to hanging indefinitely. This can be revisited when 10.15 is available, or perhaps dmgbuild could be used to add in the background image/ds_store metadata from scratch as well.
2020-03-28 22:09:33 -05:00
Pentarctagon
a04dce619b Add the VS2019 Debug configuration job to travis. 2020-03-22 19:54:02 -05:00
Pentarctagon
111e327e7b Add VS2019 jobs to travis.
The first run of the 2019 jobs will fail, since that run will be used to build and cache the vcpkg dependencies - there's no way to get enough time to build wesnoth and build the dependencies in a single job.
2020-03-20 16:07:18 -05:00
Pentarctagon
7ecc6a3fb4 Use the vcvarsall bat script. 2020-03-14 23:20:12 -05:00
Pentarctagon
1487fec273 Use macOS dmg template on travis. 2020-03-12 17:06:12 -05:00
Pentarctagon
faa58bc441 Update the VC14 toolset to the same as used on travis. 2020-03-02 07:35:09 -06:00
Pentarctagon
b100cebd4b Upload VS pdb files for the Debug configuration. 2020-03-02 07:35:09 -06:00
Pentarctagon
2f22de2636 Make debug builds instead of -O0 builds.
Rename OPT -> CFG.
Rename LTS -> IMAGE.
Reorder travis jobs.
2020-02-28 11:35:04 -06:00
Pentarctagon
d8e79a8e89 Run the pre-release translation targets on travis.
This will then catch errors on the commit it happens instead of usually much later.
2020-02-24 20:45:07 -06:00
Pentarctagon
5642ca74e4 Create macOS debug dmg image on travis.
Also uploads it to SourceForge.  This is also set to be UDBZ(bzip2) rather than UDZO(zlib), since it shrinks the dmg size for 30-40 MBs.
2020-02-21 22:20:08 -06:00
Pentarctagon
0f163825e6 Move variable exports to the install step. 2020-02-19 21:32:13 -06:00
Pentarctagon
dbe2eeabde Disable macOS code signing.
The Release configuration defaults to requiring it.
2020-02-19 21:32:13 -06:00
Pentarctagon
598310579c Build translations on macOS. 2020-02-19 21:32:13 -06:00
Pentarctagon
af74d9853c Remove code for no longer used scons/cmake travis builds. 2020-02-19 21:32:13 -06:00
Pentarctagon
abd7aed0f9 Switch to running Release and Debug xcode jobs on macOS. 2020-02-19 21:32:13 -06:00
Pentarctagon
082e209552 Run valid character checks during the translations job. 2020-02-19 21:32:13 -06:00
Pentarctagon
d9ba86ffe2 Upload the debug output of the VS job. 2020-02-16 05:27:10 -06:00
Pentarctagon
204c4b804c Create windows installer on Travis. 2020-02-15 18:41:01 -06:00
Pentarctagon
e679909762 Increase the xcode job's ccache size.
For whatever reason the existing limit of 200MB is no longer enough, resulting in a significant number of cache misses, which results in partial rebuilds taking far longer than they should.
2020-02-07 16:49:50 -06:00
Pentarctagon
84d88e97e3 Make variables provided to docker environment variables.
Currently they are only regular variables passed to a script, so they are not picked up by cmake as expected.
2020-02-07 16:49:50 -06:00
Pentarctagon
656737e6c9 Upload executables from travis.
This will SFTP the wesnoth and wesnothd executables from Travis (UPLOAD_ID=<something>) to SourceForge.
2020-02-07 08:18:40 -06:00
pentarctagon
6e27a84071 Enable caching/incremental builds for Windows builds on travis.
Problem: msbuild uses timestamps to determine what needs to be rebuilt, and git doesn't track files' last modified time, so everything is always fully rebuilt.
Solution: This commit adds an sqlite database that tracks C/C++ files and their md5 hashes. If a file's hash hasn't changed, then it doesn't need to be rebuilt, so its last modified time is backdated 20 years. The 20 years is an arbitrarily chosen amount of time and has no special significance.
2020-01-05 01:35:09 -06:00
pentarctagon
d1f2d9add2 Make sure to exit with the correct status. 2020-01-05 01:35:09 -06:00
pentarctagon
0a7f483c72 Add debug and release Windows jobs to travis.
This also removes the separate WML_tests.cmd scripts from VC14 and VC16, now instead using the same run_wml_tests script as the linux jobs.

There is currently no caching of the Windows jobs, since msbuild unfortunately uses timestamps rather than more complete information like scons/ccache in order to determine if things need to be rebuilt. Since git doesn't preserve any sort of last modified timestamp, the cloned repo into the travis job is always "newer" than the cached compiled output, and therefore wesnoth is always fully rebuilt.

Ideally, assuming this sticks around and gets out of early access from travis, we could then use just travis instead of travis and appveyor.
2019-12-31 17:17:34 -06:00
pentarctagon
21d133828b Add a flatpak travis job.
NOTE: This doesn't sign/upload/etc the output anywhere.
2019-12-31 17:17:34 -06:00
pentarctagon
d83fd5d9c8 Add mingw crosscompile job to travis.
Of note:
* The image now created by Dockerfile-base-mingw is available on wesnoth's Docker Hub.
* Strict building is disabled, as there are a couple warnings that show up when crosscompiling.
2019-11-15 18:54:49 -06:00
Pentarctagon
b8acbfe8d0 Put --add-cap right after docker run. 2019-07-25 19:18:47 -05:00
Pentarctagon
1165ce0d39 Docker doesn't like --cap-add for some reason. 2019-07-25 18:33:35 -05:00
Pentarctagon
b0200d1380 Attempt to fix gdb error when attempting to disable aslr 2019-07-25 18:27:19 -05:00
Pentarctagon
073081ef89 Fix travis macos+scons build.
Steps:
1) added `brew install libffi`, was told it was already installed and to try reinstalling.
2) changed to `brew reinstall libffi`, was told it was "keg only" and was provided the PKG_CONFIG export statement.
3) added export statement, seems to work.
2019-03-15 03:29:04 -05:00
Gunter Labes
e5615b92bc
Print error messages in red
Use unbuffer to work around a travis issue when a secret is set in .travis.yml: https://github.com/travis-ci/travis-ci/issues/7967
As a bonus colored output of for example cmake now works again.
Also streamline test execution.
2019-03-06 14:21:32 +01:00
Martin Hrubý (hrubymar10)
8629cbf91f
[Fwd-port] Apply latest changes to Xcode project from 1.14 branch
Commits included:
b677423cdd2a46b5abc1a8cdb21b79f9cde968ba
662da36ac5cee6c9786b83413daf9524979be5b0
d3eebd61e14efb00754f49bcefd962ab5e24b760
4d08b1eb78955378fbb13537b3f8cfc43450fa92
c03ab2e54c2d2410350dbbd4c6c8ef5fdc92e501
2019-01-31 14:17:49 +01:00
pentarctagon
7034c8f97b Run WML schema validation in travis. Fixes #3709
This adds running the WML schema validation in travis.  It also updates the schema itself and fixes a few WML errors so that core and all campaigns under all difficulties pass the schema validation.
2018-11-24 10:35:22 -06:00
Martin Hrubý (hrubymar10)
e6e8e20551 Switch travis Xcode to DEBUG scheme
(cherry-picked from commit dee670d2b5882c50464423b503477b0ae7593057)
2018-10-07 03:21:34 +00:00
Pentarctagon
b53e875bc6 Add osx+cmake support to travis.
(cherry-picked from commit f53c6b84cd96fa07405ebec699262158fb3311c3)
2018-10-07 03:20:49 +00:00
pentarctagon
5045c09fd5 Put the docker image on its own line.
(cherry-picked from commit eb0a290ca16080e615b4e538616dbaacc36579f0)
2018-10-07 03:19:56 +00:00
pentarctagon
1ef1704fd9 Adds the opt/OPT option to scons/cmake.
Travis now also makes use of this to set the optimization level for the -O0 builds, rather than extra_flags_*.  This additionally fixes an issue where using -O0 in the release build with LTO resulted in the individual *.o files being compiled with -O0, but LTO then still linked with release's default -O3.

(cherry-picked from commit 63ff641662d4192401a49f9a002d7872000a3f02)
2018-10-07 03:19:35 +00:00
pentarctagon
b2cca08257 Allow setting a sanitizer to use.
Note: UBSan at least does seem to take a fairly significant amount of extra time to compile and run the WML tests with.

(cherry-picked from commit 92f74c39f6aedc10bd04f1cf6dc9144fb35e3a19)
2018-10-07 03:19:14 +00:00
pentarctagon
dcf2767a14 Add using dockerfiles based on the LTS and BRANCH env vars
This makes it simpler in the future to have branches that have dependencies that are different from master, rather than having a single image with all necessary dependencies installed, which may at some point end up not being possible to do.

(cherry-picked from commit 1bb5fdf2830515d33793c52f298d305bd12b5a60)
2018-10-07 03:18:37 +00:00
pentarctagon
5e386ef43b Make UTF8 checks fail the build if they find anything.
Also fixes a comment typo in docker_run.sh.

(cherry-picked from commit c456d4b288ca6df59cca3663c10131f2c75e8574)
2018-10-07 03:18:08 +00:00
pentarctagon
2e76d2fe40 Remove debugging symbols from Travis xcode build.
This removes the -g option from the xcode travis build, since debugging information isn't needed and the increased size was causing the cache to timeout when compressing and uploading it.  ccache max cache size is also decreased from 2 GBs to 200 MBs, which matches the linux+cmake builds.  Fixes #2670.

(cherry-picked from commit b801140344c7cbf86980ff54ef963f9ec2122897)
2018-10-07 03:18:06 +00:00
Charles Dang
950a156712 Addressed most of the remaining whitespace issues from #2613
[ci skip]
2018-03-11 14:59:37 +11:00
pentarctagon
02244aaa53 Make LTO controlled by a variable export in steps/install.sh.
Currently will remain disabled everywhere, but this allows for enabling LTO for optimized, non-xcode jobs just by changing the value of the LTO variable.
2018-03-08 15:40:05 +02:00
pentarctagon
ee51afa128 Moves the build-cache directory to be under $HOME.
Moving it out of the same directory as the git repository means that the object files won't be copied into the temporary docker container when it's being created.
2018-03-08 15:40:05 +02:00
pentarctagon
900a159c8b Attempt to fix suspected race condition when running MP tests.
Currently the MP unit tests will randomly fail due to one of the two background wesnoth instances failing video initialization.  All unit tests require the display server to be initialized however, or they fail with the same error as the MP tests sometimes fail with.  However, the MP tests are the only tests to randomly fail due to video initialization, while for the same travis job the WML unit tests (which run before) and the boost unit tests (which run after) are still able to be successfully completed.

Therefore, the video initialization failures are not entirely random, and the MP tests are also the only tests that experience this failure while also being the only tests that have more than one instance of wesnoth running simultaneously.

tl;dr: the attempted solution here is to sleep for 5 seconds between starting background processes in the mp unit test script.

Also removes starting the display server prior outside of the docker container, since that's not needed anymore.
2018-03-05 15:49:46 +11:00
pentarctagon
abf93216ac Don't source steps/script.sh.
Travis runs all commands in .travis.yml in its own wrapper script, so by sourcing steps/script.sh and then using exit explicitly, it resulted in the entire travis wrapper immediately terminating.  With steps/script.sh no longer sourced, using exit works as expected again, and only exits steps/script.sh rather than quitting everything. Another solution, should sourcing steps/script.sh become necessary, is to use return instead of exit.

With that addressed, it's then possible to re-add printing the ccache statistics after the build ends while also making sure that the script exits with the return code of the xcodebuild/cmake+make command rather than the return code of the ccache statistics commands.
2018-03-04 15:48:00 -06:00
pentarctagon
2a783b0df2 Fix for failed ccache builds being considered successful.
Travis looks at the return code of the final command run, and since printing the ccache statistics never fails, building would never be considered as failing. Manually calling exit also causes travis to treat the build as errored, since by sourcing the build it results in the entire travis wrapper shell exiting.
2018-03-03 16:46:06 -06:00
pentarctagon
ea06cdc63a Move the logic for the install and script steps into their own files.
Also merges the before_install and install steps.
2018-03-02 13:55:22 -06:00