mirror of
https://github.com/zenorogue/hyperrogue.git
synced 2025-07-03 18:22:49 +00:00
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`.
This commit is contained in:
parent
5142901772
commit
ef562d0d43
15
.travis.yml
15
.travis.yml
@ -1,4 +1,6 @@
|
|||||||
language: cpp
|
language: cpp
|
||||||
|
services:
|
||||||
|
- docker
|
||||||
matrix:
|
matrix:
|
||||||
include:
|
include:
|
||||||
- os: linux
|
- os: linux
|
||||||
@ -62,6 +64,11 @@ matrix:
|
|||||||
HYPERROGUE_USE_GLEW=0
|
HYPERROGUE_USE_GLEW=0
|
||||||
HYPERROGUE_USE_PNG=0
|
HYPERROGUE_USE_PNG=0
|
||||||
HYPERROGUE_USE_ROGUEVIZ=0
|
HYPERROGUE_USE_ROGUEVIZ=0
|
||||||
|
- os: linux
|
||||||
|
env: >-
|
||||||
|
TRAVIS_OS_NAME=linux
|
||||||
|
TRAVIS_COMPILER_NAME=emscripten
|
||||||
|
TRAVIS_BUILD_SYSTEM=emscripten
|
||||||
|
|
||||||
before_install:
|
before_install:
|
||||||
- |-
|
- |-
|
||||||
@ -120,12 +127,18 @@ script:
|
|||||||
make
|
make
|
||||||
elif [[ "$TRAVIS_BUILD_SYSTEM" == "Makefile" ]]; then
|
elif [[ "$TRAVIS_BUILD_SYSTEM" == "Makefile" ]]; then
|
||||||
make -f Makefile.simple
|
make -f Makefile.simple
|
||||||
|
elif [[ "$TRAVIS_BUILD_SYSTEM" == "emscripten" ]]; then
|
||||||
|
docker run --rm -v $(pwd):/src trzeci/emscripten make -f Makefile.simple emscripten
|
||||||
else
|
else
|
||||||
exit 'Unsupported build system'
|
exit 'Unsupported build system'
|
||||||
fi
|
fi
|
||||||
- |-
|
- |-
|
||||||
# Test hyperrogue.
|
# Test hyperrogue.
|
||||||
./hyperrogue --help
|
if [[ "$TRAVIS_BUILD_SYSTEM" == "emscripten" ]]; then
|
||||||
|
ls -lAF hyper.html hyper.js hyper.wasm
|
||||||
|
else
|
||||||
|
./hyperrogue --help
|
||||||
|
fi
|
||||||
- |-
|
- |-
|
||||||
# Test "make dist". ("make distcheck" is expected to fail.)
|
# Test "make dist". ("make distcheck" is expected to fail.)
|
||||||
if [[ "$TRAVIS_BUILD_SYSTEM" == "autotools" ]]; then make dist; fi
|
if [[ "$TRAVIS_BUILD_SYSTEM" == "autotools" ]]; then make dist; fi
|
||||||
|
@ -136,7 +136,7 @@ hyperrogue$(EXE_EXTENSION): $(hyper_OBJS) $(hyper_RES)
|
|||||||
$(CXX) $(CXXFLAGS) $(hyper_OBJS) $(hyper_RES) $(LDFLAGS) $(hyper_LDFLAGS) -o $@
|
$(CXX) $(CXXFLAGS) $(hyper_OBJS) $(hyper_RES) $(LDFLAGS) $(hyper_LDFLAGS) -o $@
|
||||||
|
|
||||||
hyper$(OBJ_EXTENSION): *.cpp language-data.cpp
|
hyper$(OBJ_EXTENSION): *.cpp language-data.cpp
|
||||||
$(CXX) -O2 $(CXXFLAGS) $(hyper_CXXFLAGS) -c hyper.cpp
|
$(CXX) -O2 $(CXXFLAGS) $(hyper_CXXFLAGS) -c hyper.cpp -o $@
|
||||||
|
|
||||||
hyper.res: hyper.rc hr-icon.ico
|
hyper.res: hyper.rc hr-icon.ico
|
||||||
windres hyper.rc -O coff -o hyper.res
|
windres hyper.rc -O coff -o hyper.res
|
||||||
@ -148,9 +148,17 @@ language-data.cpp: langen$(EXE_EXTENSION)
|
|||||||
./langen > language-data.cpp
|
./langen > language-data.cpp
|
||||||
|
|
||||||
savepng$(OBJ_EXTENSION): savepng.cpp
|
savepng$(OBJ_EXTENSION): savepng.cpp
|
||||||
$(CXX) $(CXXFLAGS) -O2 -c savepng.cpp -o $@
|
$(CXX) -O2 $(CXXFLAGS) -c savepng.cpp -o $@
|
||||||
|
|
||||||
|
emscripten: hyper.html
|
||||||
|
|
||||||
|
%.html %.js %.wasm: %.emscripten-sources
|
||||||
|
emcc -std=c++11 -O3 -s LEGACY_GL_EMULATION=1 -s TOTAL_MEMORY=128*1024*1024 hyperweb.cpp -o hyper.html
|
||||||
|
|
||||||
|
hyper.emscripten-sources: *.cpp
|
||||||
|
|
||||||
.PHONY: clean
|
.PHONY: clean
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -f hyperrogue$(EXE_EXTENSION) hyper$(OBJ_EXTENSION) $(hyper_RES) langen$(EXE_EXTENSION) language-data.cpp savepng$(OBJ_EXTENSION)
|
rm -f hyperrogue$(EXE_EXTENSION) hyper$(OBJ_EXTENSION) $(hyper_RES) langen$(EXE_EXTENSION) language-data.cpp savepng$(OBJ_EXTENSION)
|
||||||
|
rm -f hyper.html hyper.js hyper.wasm
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
<a href="https://travis-ci.org/zenorogue/hyperrogue/builds">
|
<a href="https://travis-ci.org/zenorogue/hyperrogue/builds">
|
||||||
<img align="right" src="https://badges.herokuapp.com/travis/zenorogue/hyperrogue?branch=master&env=TRAVIS_BUILD_SYSTEM=autotools&label=autotools" alt="TravisCI badge">
|
<img align="right" src="https://badges.herokuapp.com/travis/zenorogue/hyperrogue?branch=master&env=TRAVIS_BUILD_SYSTEM=autotools&label=autotools" alt="TravisCI badge">
|
||||||
<img align="right" src="https://badges.herokuapp.com/travis/zenorogue/hyperrogue?branch=master&env=TRAVIS_BUILD_SYSTEM=Makefile&label=make" alt="TravisCI badge">
|
<img align="right" src="https://badges.herokuapp.com/travis/zenorogue/hyperrogue?branch=master&env=TRAVIS_BUILD_SYSTEM=Makefile&label=make" alt="TravisCI badge">
|
||||||
|
<img align="right" src="https://badges.herokuapp.com/travis/zenorogue/hyperrogue?branch=master&env=TRAVIS_BUILD_SYSTEM=emscripten&label=web" alt="TravisCI badge">
|
||||||
</a>
|
</a>
|
||||||
</p>
|
</p>
|
||||||
<p align="left">
|
<p align="left">
|
||||||
|
0
embuild.sh
Normal file → Executable file
0
embuild.sh
Normal file → Executable file
Loading…
x
Reference in New Issue
Block a user