1#!/bin/bash
2set -ev
3
4git submodule update --init
5
6git clone --depth 1 git://github.com/mosra/corrade.git
7cd corrade
8
9# Build native corrade-rc
10mkdir build && cd build || exit /b
11cmake .. \
12    -DCMAKE_BUILD_TYPE=Release \
13    -DCMAKE_INSTALL_PREFIX=$HOME/deps-native \
14    -DWITH_INTERCONNECT=OFF \
15    -DWITH_PLUGINMANAGER=OFF \
16    -DWITH_TESTSUITE=OFF \
17    -DWITH_UTILITY=OFF \
18    -G Ninja
19ninja install
20cd ..
21
22# Crosscompile Corrade
23mkdir build-emscripten && cd build-emscripten
24cmake .. \
25    -DCORRADE_RC_EXECUTABLE=$HOME/deps-native/bin/corrade-rc \
26    -DCMAKE_TOOLCHAIN_FILE="../../toolchains/generic/Emscripten.cmake" \
27    -DEMSCRIPTEN_PREFIX=$(echo /usr/local/Cellar/emscripten/*/libexec) \
28    -DCMAKE_BUILD_TYPE=Release \
29    -DCMAKE_CXX_FLAGS_RELEASE="-DNDEBUG -O1" \
30    -DCMAKE_EXE_LINKER_FLAGS_RELEASE="-O1" \
31    -DCMAKE_INSTALL_PREFIX=$HOME/deps \
32    -DWITH_INTERCONNECT=OFF \
33    -DWITH_TESTSUITE=OFF \
34    -G Ninja
35ninja install
36cd ../..
37
38# Crosscompile Magnum
39git clone --depth 1 git://github.com/mosra/magnum.git
40cd magnum
41mkdir build-emscripten && cd build-emscripten
42cmake .. \
43    -DCORRADE_RC_EXECUTABLE=$HOME/deps-native/bin/corrade-rc \
44    -DCMAKE_TOOLCHAIN_FILE="../../toolchains/generic/Emscripten.cmake" \
45    -DEMSCRIPTEN_PREFIX=$(echo /usr/local/Cellar/emscripten/*/libexec) \
46    -DCMAKE_BUILD_TYPE=Release \
47    -DCMAKE_CXX_FLAGS_RELEASE="-DNDEBUG -O1" \
48    -DCMAKE_EXE_LINKER_FLAGS_RELEASE="-O1" \
49    -DCMAKE_INSTALL_PREFIX=$HOME/deps \
50    -DCMAKE_FIND_ROOT_PATH=$HOME/deps \
51    -DWITH_AUDIO=OFF \
52    -DWITH_DEBUGTOOLS=ON \
53    -DWITH_MESHTOOLS=ON \
54    -DWITH_PRIMITIVES=ON \
55    -DWITH_SCENEGRAPH=ON \
56    -DWITH_SHADERS=ON \
57    -DWITH_TEXT=ON \
58    -DWITH_TEXTURETOOLS=ON \
59    -DWITH_TRADE=ON \
60    -DWITH_EMSCRIPTENAPPLICATION=ON \
61    -DTARGET_GLES2=$TARGET_GLES2 \
62    -G Ninja
63ninja install
64cd ../..
65
66# Crosscompile Magnum Integration
67git clone --depth 1 git://github.com/mosra/magnum-integration.git
68cd magnum-integration
69mkdir build-emscripten && cd build-emscripten
70cmake .. \
71    -DCORRADE_RC_EXECUTABLE=$HOME/deps-native/bin/corrade-rc \
72    -DCMAKE_TOOLCHAIN_FILE="../../toolchains/generic/Emscripten.cmake" \
73    -DEMSCRIPTEN_PREFIX=$(echo /usr/local/Cellar/emscripten/*/libexec) \
74    -DCMAKE_BUILD_TYPE=Release \
75    -DCMAKE_CXX_FLAGS_RELEASE="-DNDEBUG -O1" \
76    -DCMAKE_EXE_LINKER_FLAGS_RELEASE="-O1" \
77    -DCMAKE_INSTALL_PREFIX=$HOME/deps \
78    -DCMAKE_FIND_ROOT_PATH=$HOME/deps \
79    -DIMGUI_DIR=$HOME/imgui \
80    -DWITH_BULLET=OFF \
81    -DWITH_DART=OFF \
82    -DWITH_IMGUI=$TARGET_GLES3 \
83    -DWITH_OVR=OFF \
84    -G Ninja
85ninja install
86cd ../..
87
88# Crosscompile Magnum Extras
89git clone --depth 1 git://github.com/mosra/magnum-extras.git
90cd magnum-extras
91mkdir build-emscripten && cd build-emscripten
92cmake .. \
93    -DCORRADE_RC_EXECUTABLE=$HOME/deps-native/bin/corrade-rc \
94    -DCMAKE_TOOLCHAIN_FILE="../../toolchains/generic/Emscripten.cmake" \
95    -DEMSCRIPTEN_PREFIX=$(echo /usr/local/Cellar/emscripten/*/libexec) \
96    -DCMAKE_BUILD_TYPE=Release \
97    -DCMAKE_CXX_FLAGS_RELEASE="-DNDEBUG -O1" \
98    -DCMAKE_EXE_LINKER_FLAGS_RELEASE="-O1" \
99    -DCMAKE_INSTALL_PREFIX=$HOME/deps \
100    -DCMAKE_FIND_ROOT_PATH=$HOME/deps \
101    -DWITH_UI=OFF \
102    -G Ninja
103ninja install
104cd ../..
105
106# Crosscompile
107mkdir build-emscripten && cd build-emscripten
108cmake .. \
109    -DCORRADE_RC_EXECUTABLE=$HOME/deps-native/bin/corrade-rc \
110    -DCMAKE_TOOLCHAIN_FILE="../toolchains/generic/Emscripten.cmake" \
111    -DEMSCRIPTEN_PREFIX=$(echo /usr/local/Cellar/emscripten/*/libexec) \
112    -DCMAKE_BUILD_TYPE=Release \
113    -DCMAKE_CXX_FLAGS_RELEASE="-DNDEBUG -O1" \
114    -DCMAKE_EXE_LINKER_FLAGS_RELEASE="-O1" \
115    -DCMAKE_INSTALL_PREFIX=$HOME/deps \
116    -DCMAKE_FIND_ROOT_PATH=$HOME/deps \
117    -DIMGUI_DIR=$HOME/imgui \
118    -DWITH_AREALIGHTS_EXAMPLE=OFF \
119    -DWITH_AUDIO_EXAMPLE=OFF \
120    -DWITH_BOX2D_EXAMPLE=OFF \
121    -DWITH_BULLET_EXAMPLE=OFF \
122    -DWITH_CUBEMAP_EXAMPLE=OFF \
123    -DWITH_DART_EXAMPLE=OFF \
124    -DWITH_IMGUI_EXAMPLE=$TARGET_GLES3 \
125    -DWITH_MOTIONBLUR_EXAMPLE=OFF \
126    -DWITH_MOUSEINTERACTION_EXAMPLE=OFF \
127    -DWITH_OVR_EXAMPLE=OFF \
128    -DWITH_PICKING_EXAMPLE=OFF \
129    -DWITH_PRIMITIVES_EXAMPLE=OFF \
130    -DWITH_SHADOWS_EXAMPLE=OFF \
131    -DWITH_TEXT_EXAMPLE=OFF \
132    -DWITH_TEXTUREDTRIANGLE_EXAMPLE=OFF \
133    -DWITH_TRIANGLE_EXAMPLE=OFF \
134    -DWITH_TRIANGLE_PLAIN_GLFW_EXAMPLE=OFF \
135    -DWITH_TRIANGLE_SOKOL_EXAMPLE=OFF \
136    -DWITH_VIEWER_EXAMPLE=OFF \
137    -DWITH_WEBVR_EXAMPLE=ON \
138    -G Ninja
139# Otherwise the job gets killed (probably because using too much memory)
140ninja -j4
141