1
0
mirror of https://github.com/zenorogue/hyperrogue.git synced 2024-11-24 21:37:18 +00:00
Commit Graph

29 Commits

Author SHA1 Message Date
Arthur O'Dwyer
a49c40cee7 Make "mymake" work on OSX, and add it to Travis.
Fix a -Wformat bug exposed by compiling with Clang.

To preprocess C++11 code, you need `g++ -E -std=c++11`, not just
`g++ -E`. (The old code worked for GCC 6+ and Clang 6+ because they
changed the default mode from C++03 to C++14. But for GCC 5, we still
need `-std=c++11`. And regardless, it's a good idea.)

Add a "-mac" option to mymake, and cleanly factor out `set_mac`,
`set_linux`, and `set_win`. When you build mymake using
`make -f Makefile.simple mymake`, you get a mymake that knows what
platform it's on. This means you don't have to pass `mymake -mac`
on OSX, nor `mymake -win` on Windows.

The old code put `INCLUDE(___hyper-main.cpp)` into a C++ file that
would be preprocessed, which doesn't work because libSDL does
essentially `-Dmain=SDL_main`, which turns this into
`INCLUDE(___hyper-SDL_main.cpp)`, which gives us
a "file not found" error from mymake. The solution is to put
filenames into quotation marks, so that the string "main" never
appears as a token in the C++ file. (Alternatively, we could have
renamed "hyper-main.cpp" to "hypermain.cpp".)

Add several new "mymake" entries in the Travis build matrix,
and add the "mymake" builds' badge to the README.
2020-04-12 09:56:46 -04:00
Zeno Rogue
c5e6c26fb4
Merge pull request #104 from Quuxplusone/red
Get the build green again. Fix a bug in the Travis config.
2020-04-04 01:03:16 +02:00
Arthur O'Dwyer
a708c10f1d Get the build green again. Fix a bug in the Travis config.
The `HYPERROGUE_USE_ROGUEVIZ=1` build now uses inline variables.
So we pass `-std=c++17` in the Makefile. But GCC 5.4.0 (Travis's
default system compiler on Ubuntu Xenial) doesn't recognize
inline variables even in `-std=c++17` mode. Therefore, we must
pass `dist: bionic` to Travis, to get it to use Ubuntu Bionic,
whose system compiler is GCC 7.4.0. But we do this only for the
one entry in the build matrix that builds RogueViz with GCC
on Linux. Nobody else needs `dist: bionic`.

The bug was that my hack to support `g++-5` accidentally prevented
Travis from ever using `clang++`! So all our "Clang" builds were quietly
using regular `g++` instead. This is now fixed, and in fact I've removed
the `g++-5` build because its GCC 5.5.0 is not significantly different
from the regular `g++` build's GCC 5.4.0.

Also, add two more configurations to the build matrix.
Since `HYPERROGUE_USE_ROGUEVIZ=1` now uses `-std=c++17`, we want to
make sure that we run builds on every platform both with `HYPERROGUE_USE_ROGUEVIZ=1`
(to prove that the RogueViz code compiles) and without (to prove that
the non-RogueViz code still compiles as `-std=c++11`).
2020-04-03 17:18:24 -04:00
Arthur O'Dwyer
73d1232a8f Makefile.simple: Delete some more build products in make clean. 2020-03-31 15:53:01 -04:00
Arthur O'Dwyer
b450ca1596 Add -pedantic to the compiler options, and clean up some cruft. 2020-03-23 14:39:30 -04:00
Arthur O'Dwyer
41669ab720 Eliminate -Wmissing-field-initializers warnings. 2020-03-23 14:38:57 -04:00
Zeno Rogue
c45a7b37cf USE_ZLIB=1 in Makefile.simple 2020-03-08 01:31:03 +01:00
Arthur O'Dwyer
d0a6212fd4 Remove all GCC 4.6 support; new minimum is GCC 5.4. 2020-02-15 16:22:15 -05:00
Arthur O'Dwyer
e6ac60b356 Fix a typo-bug in f20a6bf2: s/phtread/pthread/
However, this does not unbreak the build on Emscripten.
Emscripten doesn't know where to find <zlib.h> at all:

    ./sysconfig.h:429:10: fatal error: 'zlib.h' file not found
    #include <zlib.h>
             ^~~~~~~~
2020-02-14 13:17:42 -05:00
Zeno Rogue
f20a6bf2f6 zlib used for (de)compression 2020-01-26 00:30:13 +01:00
Zeno Rogue
9444401ffa fixup to last 2020-01-16 18:11:01 +01:00
Zeno Rogue
6c61162392 merge 2019-12-26 22:40:41 +01:00
Zeno Rogue
6c3348c9f3 util to autohdr 2019-12-25 21:50:07 +01:00
Zeno Rogue
86d8eb759e classes.cpp first in makeh 2019-12-23 21:56:59 +01:00
Zeno Rogue
26fb19e7a8 subdivided game.cpp; split movepcto into separate functions 2019-12-08 20:07:02 +01:00
Zeno Rogue
8b77e2fb64 added -Wno-unknown-warning-option 2019-09-13 20:09:48 +02:00
Zeno Rogue
24b55fdbb1 added -Wno-maybe-uninitialized 2019-09-13 19:54:36 +02:00
Zeno Rogue
90baab83eb added autohdr.h to emscripten sources 2019-09-13 19:38:04 +02:00
Zeno Rogue
cf25bd83b5 changed TOTAL_MEMORY to the new format: 128MB 2019-09-13 18:48:17 +02:00
Zeno Rogue
09ff50ba45 order in autohdr.h 2019-09-13 18:41:49 +02:00
Zeno Rogue
6237bcbed6 added missing dependency 2019-09-13 18:26:51 +02:00
Zeno Rogue
9f868ec1e5 added makeh to Makefile.am and Makefile.simple 2019-09-13 18:20:50 +02:00
Zeno Rogue
ca9a025e45 added -Wno-implicit-fallthrough 2019-09-12 22:50:16 +02:00
Arthur O'Dwyer
ac37e5c000 Get hyper_function.h compiling on GCC 4.6.
We must avoid the following features:
- the `using` syntax for typedefs
- alias templates (so, rename `hyper_function` to `function`)
- the `override` keyword
- defaulted virtual destructors
2019-02-10 15:54:58 -05:00
Arthur O'Dwyer
5e8d03e90d Add GCC 4.6 to the TravisCI build.
With `-march=native`, we see assembler error messages like those described
in https://github.com/uzh-rpg/rpg_svo/issues/7 .
2019-02-10 14:51:21 -05:00
Arthur O'Dwyer
8ebdede538 Fix some issues with the MinGW build.
Fixes #58.
2018-09-05 22:28:03 -07:00
Arthur O'Dwyer
fbc7cd3212 Fix -Wempty-body warnings on GCC. 2018-07-17 16:53:46 -07:00
Arthur O'Dwyer
ef562d0d43 TravisCI and Makefile integration for the emscripten build!
For testing the emscripten build in TravisCI, it looks like some
arcane combination of node + Browserify + the wasmify plugin + maybe
some other stuff *might* work, but I have no real idea yet.

For grabbing the build artifacts from Travis, you can temporarily
insert lines into the .travis.yml such as

    curl --upload-file ./hyper.html https://transfer.sh/hyper.html
    curl --upload-file ./hyper.js https://transfer.sh/hyper.js
    curl --upload-file ./hyper.wasm https://transfer.sh/hyper.wasm

However, "hyper.wasm" is about 2.8 megabytes in size, so this hack
definitely should never become part of the *master* `.travis.yml`.
2018-07-10 17:48:31 -07:00
Arthur O'Dwyer
5142901772 Merge Makefile.{mac,mgw} into Makefile.simple.
https://travis-ci.org/Quuxplusone/hyperrogue
2018-07-10 17:02:56 -07:00