forked from OpenRCT2/OpenRCT2
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
752f169
commit 63b0106
Showing
28 changed files
with
769 additions
and
25 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
# | ||
# - Find speexdsp libraries | ||
# | ||
# SPEEXDSP_INCLUDE_DIRS - where to find speexdsp headers. | ||
# SPEEXDSP_LIBRARIES - List of libraries when using speexdsp. | ||
# SPEEXDSP_FOUND - True if speexdsp is found. | ||
|
||
find_package(PkgConfig QUIET) | ||
pkg_search_module(PC_SPEEXDSP QUIET speexdsp) | ||
|
||
find_path(SPEEXDSP_INCLUDE_DIR | ||
NAMES | ||
speex/speex_resampler.h | ||
HINTS | ||
${PC_SPEEXDSP_INCLUDE_DIRS} | ||
) | ||
|
||
find_library(SPEEXDSP_LIBRARY | ||
NAMES | ||
speexdsp | ||
HINTS | ||
${PC_SPEEXDSP_LIBRARY_DIRS} | ||
) | ||
|
||
include(FindPackageHandleStandardArgs) | ||
find_package_handle_standard_args(SpeexDSP | ||
REQUIRED_VARS SPEEXDSP_LIBRARY SPEEXDSP_INCLUDE_DIR | ||
VERSION_VAR PC_SPEEXDSP_VERSION) | ||
|
||
if(SPEEXDSP_FOUND) | ||
set(SPEEXDSP_LIBRARIES ${SPEEXDSP_LIBRARY}) | ||
set(SPEEXDSP_INCLUDE_DIRS ${SPEEXDSP_INCLUDE_DIR}) | ||
set(SPEEX_INCLUDE_DIRS ${SPEEXDSP_INCLUDE_DIR}) | ||
else() | ||
set(SPEEXDSP_LIBRARIES) | ||
set(SPEEXDSP_INCLUDE_DIRS) | ||
set(SPEEX_INCLUDE_DIRS) | ||
endif() | ||
|
||
mark_as_advanced(SPEEXDSP_LIBRARIES SPEEXDSP_INCLUDE_DIRS SPEEX_INCLUDE_DIRS) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
FROM docker.io/library/fedora:41 AS builder | ||
|
||
RUN dnf update -y && dnf install -y git cmake make gcc g++ nlohmann-json-devel autoreconf libtool openssl-devel libcurl-devel fontconfig-devel libzip-devel SDL2-devel flac-devel libvorbis-devel zip speexdsp-devel | ||
|
||
WORKDIR / | ||
|
||
RUN git clone https://github.com/emscripten-core/emsdk.git | ||
|
||
WORKDIR /emsdk/ | ||
|
||
# Pin version - to prevent sudden breakage of the CI | ||
RUN ./emsdk install 3.1.74 | ||
RUN ./emsdk activate 3.1.74 | ||
|
||
WORKDIR /openrct2/ | ||
|
||
COPY ./ ./ | ||
|
||
RUN rm -rf emscripten/temp/ emscripten/www/ emscripten/ext/ | ||
|
||
WORKDIR /emsdk/ | ||
|
||
RUN . ./emsdk_env.sh && cd /openrct2/emscripten/ && ./build_emscripten.sh | ||
|
||
FROM scratch AS export | ||
|
||
COPY --from=builder /openrct2/emscripten/www/* . |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,162 @@ | ||
|
||
cd "$(dirname "$0")" | ||
|
||
START_DIR=$(pwd) | ||
ICU_ROOT=$(pwd)/ext/icu/icu4c/source | ||
JSON_DIR=/usr/include/nlohmann/ | ||
|
||
build_ext() { | ||
mkdir -p ext/ | ||
cd ext/ | ||
# Pin versions - to prevent sudden breakage | ||
if [ ! -d "speexdsp" ]; then | ||
git clone https://gitlab.xiph.org/xiph/speexdsp.git --depth 1 | ||
cd speexdsp | ||
git fetch --depth=1 origin dbd421d149a9c362ea16150694b75b63d757a521 | ||
git checkout dbd421d149a9c362ea16150694b75b63d757a521 | ||
cd .. | ||
fi | ||
if [ ! -d "icu" ]; then | ||
git clone https://github.com/unicode-org/icu.git --depth 1 | ||
cd icu | ||
git fetch --depth=1 origin ba012a74a11405a502b6890e710bfb58cef7a2c7 | ||
git checkout ba012a74a11405a502b6890e710bfb58cef7a2c7 | ||
cd .. | ||
fi | ||
if [ ! -d "libzip" ]; then | ||
git clone https://github.com/nih-at/libzip.git --depth 1 | ||
cd libzip | ||
git fetch --depth=1 origin 8352d224d458d86949fd9148dd33332f50a25c7f | ||
git checkout 8352d224d458d86949fd9148dd33332f50a25c7f | ||
cd .. | ||
fi | ||
if [ ! -d "zlib" ]; then | ||
git clone https://github.com/madler/zlib.git --depth 1 | ||
cd zlib | ||
git fetch --depth=1 origin ef24c4c7502169f016dcd2a26923dbaf3216748c | ||
git checkout ef24c4c7502169f016dcd2a26923dbaf3216748c | ||
cd .. | ||
fi | ||
if [ ! -d "vorbis" ]; then | ||
git clone https://gitlab.xiph.org/xiph/vorbis.git --depth 1 | ||
cd vorbis | ||
git fetch --depth=1 origin bb4047de4c05712bf1fd49b9584c360b8e4e0adf | ||
git checkout bb4047de4c05712bf1fd49b9584c360b8e4e0adf | ||
cd .. | ||
fi | ||
if [ ! -d "ogg" ]; then | ||
git clone https://gitlab.xiph.org/xiph/ogg.git --depth 1 | ||
cd ogg | ||
git fetch --depth=1 origin 7cf42ea17aef7bc1b7b21af70724840a96c2e7d0 | ||
git checkout 7cf42ea17aef7bc1b7b21af70724840a96c2e7d0 | ||
cd .. | ||
fi | ||
if [ ! -d "$JSON_DIR" ]; then | ||
echo "$JSON_DIR does not exist. Set in build_emscripten.sh or install the nlohmann-json headers!" | ||
exit 1 | ||
fi | ||
rm -rf ../../src/thirdparty/nlohmann | ||
cp -r $JSON_DIR ../../src/thirdparty/nlohmann | ||
|
||
cd speexdsp | ||
emmake ./autogen.sh | ||
emmake ./configure --enable-shared --disable-neon | ||
emmake make -j$(nproc) | ||
cd $START_DIR/ext/ | ||
|
||
cd icu/icu4c/source | ||
ac_cv_namespace_ok=yes icu_cv_host_frag=mh-linux emmake ./configure \ | ||
--enable-release \ | ||
--enable-shared \ | ||
--disable-icu-config \ | ||
--disable-extras \ | ||
--disable-icuio \ | ||
--disable-layoutex \ | ||
--disable-tools \ | ||
--disable-tests \ | ||
--disable-samples | ||
emmake make -j$(nproc) | ||
cd $START_DIR/ext/ | ||
|
||
cd zlib | ||
emcmake cmake ./ | ||
emmake make zlib -j$(nproc) | ||
emmake make install | ||
ZLIB_ROOT=$(pwd) | ||
cd $START_DIR/ext/ | ||
|
||
cd libzip | ||
mkdir -p build/ | ||
cd build/ | ||
emcmake cmake ../ -DZLIB_INCLUDE_DIR="$ZLIB_ROOT" -DZLIB_LIBRARY="$ZLIB_ROOT/libz.a" | ||
emmake make zip -j$(nproc) | ||
emmake make install | ||
cd $START_DIR/ext/ | ||
|
||
cd ogg | ||
mkdir -p build/ | ||
cd build/ | ||
emcmake cmake ../ | ||
emmake make -j$(nproc) | ||
emmake make install | ||
cd $START_DIR/ext/ | ||
|
||
cd vorbis | ||
mkdir -p build/ | ||
cd build/ | ||
emcmake cmake ../ | ||
emmake make -j$(nproc) | ||
emmake make install | ||
|
||
cd $START_DIR | ||
} | ||
|
||
build_assets() { | ||
mkdir temp/ | ||
cd temp/ | ||
cmake ../../ -DMACOS_BUNDLE=off -DDISABLE_NETWORK=on -DDISABLE_GUI=off | ||
make openrct2-cli -j$(nproc) | ||
make g2 -j$(nproc) | ||
DESTDIR=. make install | ||
mkdir -p ../static/assets/ | ||
cp -r usr/local/share/openrct2/* ../static/assets/ | ||
cd ../static/assets | ||
zip -r ../assets.zip * | ||
cd ../ | ||
rm -rf assets/ | ||
|
||
cd $START_DIR | ||
} | ||
|
||
if [ "$1" != "skip" ] ; then | ||
build_ext | ||
build_assets | ||
fi | ||
|
||
emcmake cmake ../ \ | ||
-DDISABLE_NETWORK=ON \ | ||
-DDISABLE_HTTP=ON \ | ||
-DDISABLE_TTF=ON \ | ||
-DDISABLE_FLAC=ON \ | ||
-DDISABLE_DISCORD_RPC=ON \ | ||
-DCMAKE_SYSTEM_NAME=Emscripten \ | ||
-DCMAKE_BUILD_TYPE=Release \ | ||
-DSPEEXDSP_INCLUDE_DIR="$(pwd)/ext/speexdsp/include/" \ | ||
-DSPEEXDSP_LIBRARY="$(pwd)/ext/speexdsp/libspeexdsp/.libs/libspeexdsp.a" \ | ||
-DICU_INCLUDE_DIR="$ICU_ROOT/common" \ | ||
-DICU_DATA_LIBRARIES=$ICU_ROOT/lib/libicuuc.so \ | ||
-DICU_DT_LIBRARY_RELEASE="$ICU_ROOT/stubdata/libicudata.so" \ | ||
-DLIBZIP_LIBRARIES="$(pwd)/ext/libzip/build/lib/libzip.a" \ | ||
-DEMSCRIPTEN_FLAGS="-s USE_SDL=2 -s USE_BZIP2=1 -s USE_LIBPNG=1 -pthread -O3" \ | ||
-DEMSCRIPTEN_LDFLAGS="-Wno-pthreads-mem-growth -s ASYNCIFY -s FULL_ES3 -s SAFE_HEAP=0 -s ALLOW_MEMORY_GROWTH=1 -s MAXIMUM_MEMORY=4GB -s INITIAL_MEMORY=2GB -s MAX_WEBGL_VERSION=2 -s PTHREAD_POOL_SIZE=120 -pthread -sEXPORTED_RUNTIME_METHODS=FS,callMain,UTF8ToString,stringToNewUTF8 -lidbfs.js --use-preload-plugins -s MODULARIZE=1 -s 'EXPORT_NAME=\"OPENRCT2_WEB\"'" | ||
|
||
emmake make -j$(nproc) | ||
|
||
rm -rf www/ | ||
mkdir -p www/ | ||
cd www/ | ||
cp -r ../openrct2.* ./ | ||
cp -r ../static/* ./ | ||
cp -r ../static/.* ./ | ||
|
||
echo "finished!" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
<!DOCTYPE html> | ||
<html> | ||
<head> | ||
<title>OpenRCT2</title> | ||
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/jszip.min.js" crossorigin=anonymous></script> | ||
<script src="openrct2.js"></script> | ||
<style> | ||
* { padding: 0; margin: 0; } | ||
canvas { | ||
display: block; | ||
margin: 0 auto; | ||
position: fixed; | ||
left: 0; | ||
right: 0; | ||
width: 100%; | ||
height: 100%; | ||
} | ||
</style> | ||
<script src="index.js"></script> | ||
</head> | ||
<body> | ||
<p id="loadingWebassembly">Please wait... Loading webassembly</p> | ||
<div id="beforeLoad" style="display:none;"> | ||
<p id="statusMsg">Please select your RCT2 assets (zip file):</p> | ||
<input type="file" id="selectFile"></input> | ||
</div> | ||
<canvas id="canvas" style="display:none;"></canvas> | ||
</body> | ||
</html> | ||
|
Oops, something went wrong.