forked from daid/EmptyEpsilon
-
Notifications
You must be signed in to change notification settings - Fork 0
fork Cross compiling with dockcross
Oznogon edited this page Jun 15, 2026
·
1 revision
...
vim ~/.config/containers/registries.conf[registries.search]
registries = ['docker.io']
[registries.short-name-mode]
mode = "disabled"
https://github.com/dockcross/dockcross
podman run --rm dockcross/linux-armv6 > ./dockcross-armv6 && chmod +x ./dockcross-armv6 && mv ./dockcross-armv6 ~/bin/
podman run --rm dockcross/linux-armv7 > ./dockcross-armv7 && chmod +x ./dockcross-armv7 && mv ./dockcross-armv7 ~/bin/
podman run --rm dockcross/linux-arm64 > ./dockcross-armv8 && chmod +x ./dockcross-armv8 && mv ./dockcross-armv8 ~/bin/
podman run --rm dockcross/windows-static-x64 > ./dockcross-win64 && chmod +x ./dockcross-win64 && mv ./dockcross-win64 ~/bin/
podman run --rm dockcross/windows-arm64 > ./dockcross-win-arm64 && chmod +x ./dockcross-win-arm64 && mv ./dockcross-win-arm64 ~/bin/
etc.
master branch, quick:
for repo in EmptyEpsilon SeriousProton
do
git clone --depth=1 "https://github.com/daid/${repo}"
doneor legacy/2024.12.08:
for repo in EmptyEpsilon SeriousProton
do
git clone -b legacy --depth=1 --single-branch "https://github.com/daid/${repo}"
doneFirst time only:
wget https://github.com/libsdl-org/SDL/releases/download/release-2.32.10/SDL2-2.32.10.tar.gz
tar zxf SDL2-2.32.10.tar.gz
for i in armv6 armv7 armv8 win64 win-arm64
do
dockcross-${i} cmake -S SDL2-2.32.10 -B SDL2-2.32.10/build_${i}/release -G Ninja -DCMAKE_INSTALL_PREFIX=SDL2-2.32.10/install_${i} -DCMAKE_BUILD_TYPE=Release
dockcross-${i} cmake --build SDL2-2.32.10/build_${i}/release --target install
doneCreate DEB package:
export SUPPRESS_BOLTDB_WARNING=true
dockcross-armv6 bash -c '
{
cmake \
-B EmptyEpsilon/_build_armv6 \
-S EmptyEpsilon \
-G Ninja \
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
-DCMAKE_PROJECT_EmptyEpsilon_INCLUDE=version.cmake \
-DSDL2_DIR=/work/SDL2-2.32.10/install_armv6/lib/cmake/SDL2 \
-DCPACK_GENERATOR=DEB \
-DCPACK_DEBIAN_PACKAGE_ARCHITECTURE=armel \
-DCPACK_DEBIAN_PACKAGE_DEPENDS="libfreetype6, libsdl2-2.0-0" \
-DCPACK_DEBIAN_PACKAGE_VERSION="2024.12.08" &&
cmake \
--build EmptyEpsilon/_build_armv6 \
--target package
} > EmptyEpsilon-build-armv6.log 2>&1
dpkg --info EmptyEpsilon/_build_armv6/EmptyEpsilon.deb | grep Version'
dockcross-armv7 bash -c '
{
cmake \
-B EmptyEpsilon/_build_armv7 \
-S EmptyEpsilon \
-G Ninja \
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
-DCMAKE_PROJECT_EmptyEpsilon_INCLUDE=version.cmake \
-DSDL2_DIR=/work/SDL2-2.32.10/install_armv7/lib/cmake/SDL2 \
-DCPACK_GENERATOR=DEB \
-DCPACK_DEBIAN_PACKAGE_ARCHITECTURE=armhf \
-DCPACK_DEBIAN_PACKAGE_DEPENDS="libfreetype6, libsdl2-2.0-0" \
-DCPACK_DEBIAN_PACKAGE_VERSION="2024.12.08" &&
cmake \
--build EmptyEpsilon/_build_armv7 \
--target package
} > EmptyEpsilon-build-armv7.log 2>&1
dpkg --info EmptyEpsilon/_build_armv7/EmptyEpsilon.deb | grep Version'
dockcross-armv8 bash -c '
{
cmake \
-B EmptyEpsilon/_build_armv8 \
-S EmptyEpsilon \
-G Ninja \
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
-DCMAKE_PROJECT_EmptyEpsilon_INCLUDE=version.cmake \
-DSDL2_DIR=/work/SDL2-2.32.10/install_armv8/lib/cmake/SDL2 \
-DCPACK_GENERATOR=DEB \
-DCPACK_DEBIAN_PACKAGE_ARCHITECTURE=arm64 \
-DCPACK_DEBIAN_PACKAGE_DEPENDS="libfreetype6, libsdl2-2.0-0" \
-DCPACK_DEBIAN_PACKAGE_VERSION="2024.12.08" &&
cmake \
--build EmptyEpsilon/_build_armv8 \
--target package
} > EmptyEpsilon-build-armv8.log 2>&1
dpkg --info EmptyEpsilon/_build_armv8/EmptyEpsilon.deb | grep Version'
dockcross-win64 bash -c '
{
cmake \
-B EmptyEpsilon/_build_win64 \
-S EmptyEpsilon \
-G Ninja \
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
-DCMAKE_PROJECT_EmptyEpsilon_INCLUDE=version.cmake \
-DSDL2_DIR=/work/SDL2-2.32.10/install_win64/lib/cmake/SDL2 \
-DCPACK_GENERATOR=ZIP &&
cmake \
--build EmptyEpsilon/_build_win64 \
--target package
} > EmptyEpsilon-build-win64.log 2>&1
cat EmptyEpsilon-build-win64.log'
# Disable problematic LTO
dockcross-win-arm64 bash -c '
{
LDFLAGS="-fno-lto" CFLAGS="-fno-lto" CXXFLAGS="-fno-lto" \
cmake \
-B EmptyEpsilon/_build_win-arm64 \
-S EmptyEpsilon \
-G Ninja \
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
-DCMAKE_CXX_FLAGS="-O2 -fno-lto" \
-DCMAKE_C_FLAGS="-O2 -fno-lto" \
-DCMAKE_EXE_LINKER_FLAGS="-fno-lto" \
-DCMAKE_SHARED_LINKER_FLAGS="-fno-lto" \
-DCMAKE_MODULE_LINKER_FLAGS="-fno-lto" \
-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=OFF \
-DCMAKE_PROJECT_EmptyEpsilon_INCLUDE=version.cmake \
-DSDL2_DIR=/work/SDL2-2.32.10/install_win-arm64/lib/cmake/SDL2 \
-DCPACK_GENERATOR=ZIP &&
cmake \
--build EmptyEpsilon/_build_win-arm64 \
--target package
} > EmptyEpsilon-build-win-arm64.log 2>&1
cat EmptyEpsilon-build-win-arm64.log'-
-DCPACK_DEB_PACKAGE_VERSION=2024.12.08is a hack workaround for https://github.com/daid/EmptyEpsilon/issues/2689 and should be changed for any other version built (or removed for nightly) -
-DCPACK_DEBIAN_PACKAGE_DEPENDS="libfreetype6, libsdl2-2.0-0"is a workaround for skipping a condition inEmptyEpsilon/CMakeLists.txt
- Home
- Building and installing the game
- Configuring the game
- Playing the game
- Officer roles and screens
- Captain
- Main screen
- Ship window
- Crews of 5-6 players
- Crews of 3-4 players
- Single-player crew
- Game Master (GM) screens
- Extra screens
- Minigames
- Weapon types
- Officer roles and screens
- Extending the game
- Troubleshooting
- Fork content