Vendor GLFW
This commit is contained in:
parent
c33a27b2ea
commit
742ead51e1
1
.gitignore
vendored
1
.gitignore
vendored
@ -7,3 +7,4 @@ CMakeLists.txt.user
|
|||||||
AppImageBuilder.yml
|
AppImageBuilder.yml
|
||||||
appimage-builder-cache
|
appimage-builder-cache
|
||||||
AppDir
|
AppDir
|
||||||
|
*.zsync
|
||||||
|
4
.gitmodules
vendored
4
.gitmodules
vendored
@ -6,3 +6,7 @@
|
|||||||
path = dependencies/zlib/src
|
path = dependencies/zlib/src
|
||||||
url = https://github.com/madler/zlib.git
|
url = https://github.com/madler/zlib.git
|
||||||
shallow = true
|
shallow = true
|
||||||
|
[submodule "dependencies/glfw/src"]
|
||||||
|
path = dependencies/glfw/src
|
||||||
|
url = https://github.com/glfw/glfw.git
|
||||||
|
shallow = true
|
||||||
|
@ -74,10 +74,8 @@ endif()
|
|||||||
# PIC
|
# PIC
|
||||||
set(CMAKE_POSITION_INDEPENDENT_CODE TRUE)
|
set(CMAKE_POSITION_INDEPENDENT_CODE TRUE)
|
||||||
|
|
||||||
# Buld LibPNG + ZLib + Download Minecraft: Pi Edition
|
# Buld Dependencies
|
||||||
if(BUILD_ARM_COMPONENTS)
|
|
||||||
add_subdirectory(dependencies)
|
add_subdirectory(dependencies)
|
||||||
endif()
|
|
||||||
|
|
||||||
# Warnings
|
# Warnings
|
||||||
add_compile_options(-Wall -Wextra -Werror -Wpointer-arith -Wshadow -Wnull-dereference)
|
add_compile_options(-Wall -Wextra -Werror -Wpointer-arith -Wshadow -Wnull-dereference)
|
||||||
|
@ -5,7 +5,6 @@ RUN \
|
|||||||
apt-get update && \
|
apt-get update && \
|
||||||
apt-get install -y tini sed && \
|
apt-get install -y tini sed && \
|
||||||
apt-get --fix-broken install -y && \
|
apt-get --fix-broken install -y && \
|
||||||
rm -f /root/*.deb && \
|
|
||||||
rm -rf /var/lib/apt/lists/*
|
rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
# Copy AppImage
|
# Copy AppImage
|
||||||
|
12
Dockerfile.build
Normal file
12
Dockerfile.build
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
FROM buildpack-deps:bullseye
|
||||||
|
|
||||||
|
# Setup
|
||||||
|
ENV ARM_PACKAGES_SUPPORTED=1
|
||||||
|
|
||||||
|
# Install
|
||||||
|
ADD ./scripts/install-dependencies.sh /
|
||||||
|
RUN \
|
||||||
|
apt-get update && \
|
||||||
|
apt-get install --no-install-recommends -y sudo && \
|
||||||
|
/install-dependencies.sh && \
|
||||||
|
rm -rf /var/lib/apt/lists/*
|
4
Jenkinsfile
vendored
4
Jenkinsfile
vendored
@ -4,7 +4,7 @@ pipeline {
|
|||||||
stage('Debian Bullseye') {
|
stage('Debian Bullseye') {
|
||||||
agent {
|
agent {
|
||||||
docker {
|
docker {
|
||||||
image 'buildpack-deps:bullseye'
|
filename 'Dockerfile.build'
|
||||||
args '-v /var/run/docker.sock:/var/run/docker.sock'
|
args '-v /var/run/docker.sock:/var/run/docker.sock'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -15,7 +15,7 @@ pipeline {
|
|||||||
}
|
}
|
||||||
post {
|
post {
|
||||||
success {
|
success {
|
||||||
archiveArtifacts artifacts: 'out/*.deb', fingerprint: true
|
archiveArtifacts artifacts: 'out/*.AppImage*', fingerprint: true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
10
dependencies/CMakeLists.txt
vendored
10
dependencies/CMakeLists.txt
vendored
@ -1,10 +1,18 @@
|
|||||||
project(dependencies)
|
project(dependencies)
|
||||||
|
|
||||||
# ZLib
|
# ZLib
|
||||||
|
if(BUILD_ARM_COMPONENTS)
|
||||||
add_subdirectory(zlib)
|
add_subdirectory(zlib)
|
||||||
|
endif()
|
||||||
# LibPNG
|
# LibPNG
|
||||||
|
if(BUILD_ARM_COMPONENTS)
|
||||||
add_subdirectory(libpng)
|
add_subdirectory(libpng)
|
||||||
|
endif()
|
||||||
|
# GLFW
|
||||||
|
if(BUILD_NATIVE_COMPONENTS)
|
||||||
|
add_subdirectory(glfw)
|
||||||
|
endif()
|
||||||
# Minecraft: Pi Edition
|
# Minecraft: Pi Edition
|
||||||
if(NOT MCPI_OPEN_SOURCE_ONLY)
|
if(BUILD_ARM_COMPONENTS AND NOT MCPI_OPEN_SOURCE_ONLY)
|
||||||
add_subdirectory(minecraft-pi)
|
add_subdirectory(minecraft-pi)
|
||||||
endif()
|
endif()
|
||||||
|
22
dependencies/glfw/CMakeLists.txt
vendored
Normal file
22
dependencies/glfw/CMakeLists.txt
vendored
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
project(glfw)
|
||||||
|
|
||||||
|
# Silence Warnings
|
||||||
|
add_compile_options(-w)
|
||||||
|
|
||||||
|
## GLFW
|
||||||
|
|
||||||
|
# Download
|
||||||
|
set(BUILD_SHARED_LIBS FALSE)
|
||||||
|
set(GLFW_BUILD_EXAMPLES FALSE)
|
||||||
|
set(GLFW_BUILD_TESTS FALSE)
|
||||||
|
set(GLFW_BUILD_DOCS FALSE)
|
||||||
|
set(GLFW_INSTALL FALSE)
|
||||||
|
set(GLFW_BUILD_WIN32 FALSE)
|
||||||
|
set(GLFW_BUILD_COCOA FALSE)
|
||||||
|
set(GLFW_BUILD_X11 TRUE)
|
||||||
|
set(GLFW_BUILD_WAYLAND TRUE)
|
||||||
|
set(GLFW_LIBRARY_TYPE "STATIC")
|
||||||
|
add_subdirectory(src EXCLUDE_FROM_ALL)
|
||||||
|
|
||||||
|
# Ensure Build
|
||||||
|
add_custom_target(glfw-build ALL DEPENDS glfw)
|
1
dependencies/glfw/src
vendored
Submodule
1
dependencies/glfw/src
vendored
Submodule
@ -0,0 +1 @@
|
|||||||
|
Subproject commit adc202d2c3182ca6ad8344624941e56d8e0bc493
|
@ -22,8 +22,6 @@ if(TARGET media-layer-core)
|
|||||||
# Link
|
# Link
|
||||||
target_link_libraries(media-layer-core media-layer-headers reborn-headers pthread dl)
|
target_link_libraries(media-layer-core media-layer-headers reborn-headers pthread dl)
|
||||||
if(NOT MCPI_HEADLESS_MODE)
|
if(NOT MCPI_HEADLESS_MODE)
|
||||||
# Find GLFW
|
|
||||||
find_package(glfw3 3.3 REQUIRED)
|
|
||||||
# Find FreeImage
|
# Find FreeImage
|
||||||
find_library(FREEIMAGE_LIBRARY NAMES freeimage libfreeimage.so.3 REQUIRED)
|
find_library(FREEIMAGE_LIBRARY NAMES freeimage libfreeimage.so.3 REQUIRED)
|
||||||
# OpenAL
|
# OpenAL
|
||||||
|
@ -2,17 +2,6 @@
|
|||||||
|
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
# Install sudo
|
|
||||||
apt-get update
|
|
||||||
apt-get install -y sudo
|
|
||||||
|
|
||||||
# Prepare
|
|
||||||
export ARM_PACKAGES_SUPPORTED=1
|
|
||||||
|
|
||||||
# Install Dependencies
|
|
||||||
echo '==== Installing Dependencies ===='
|
|
||||||
./scripts/install-dependencies.sh
|
|
||||||
|
|
||||||
# Build/Package
|
# Build/Package
|
||||||
echo '==== Building & Packaging ===='
|
echo '==== Building & Packaging ===='
|
||||||
./scripts/package-all.sh
|
./scripts/package-all.sh
|
||||||
|
@ -2,5 +2,8 @@
|
|||||||
|
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
|
# Build Docker Image
|
||||||
|
docker build -f Dockerfile.build -t minecraft-pi-reborn-build .
|
||||||
|
|
||||||
# Run
|
# Run
|
||||||
docker run --rm -v "$(pwd):/data" buildpack-deps:bullseye sh -c "cd /data; ./scripts/ci/run.sh"
|
docker run --rm -v "$(pwd):/data" -w '/data' -u '1000:1000' minecraft-pi-reborn-build ./scripts/ci/run.sh
|
||||||
|
@ -10,6 +10,7 @@ const arch = process.argv[3];
|
|||||||
// Data
|
// Data
|
||||||
const id = `com.thebrokenrail.MCPIReborn${mode === 'server' ? 'Server' : ''}`;
|
const id = `com.thebrokenrail.MCPIReborn${mode === 'server' ? 'Server' : ''}`;
|
||||||
const name = `minecraft-pi-reborn-${mode}`;
|
const name = `minecraft-pi-reborn-${mode}`;
|
||||||
|
const updateURL = `https://jenkins.thebrokenrail.com/job/minecraft-pi-reborn/job/master/lastSuccessfulBuild/artifact/out/${name}-latest-${arch}.AppImage.zsync`;
|
||||||
|
|
||||||
// APT Data
|
// APT Data
|
||||||
const apt_distribution = 'bullseye';
|
const apt_distribution = 'bullseye';
|
||||||
@ -26,10 +27,10 @@ const packages = [
|
|||||||
'libstdc++6'
|
'libstdc++6'
|
||||||
];
|
];
|
||||||
if (mode === 'client') {
|
if (mode === 'client') {
|
||||||
|
// GLFW's Dependencies Aren't Included As They Should Be Provided By The Host System
|
||||||
packages.push(
|
packages.push(
|
||||||
'zenity',
|
'zenity',
|
||||||
'libcanberra-gtk3-module',
|
'libcanberra-gtk3-module',
|
||||||
'libglfw3',
|
|
||||||
'libfreeimage3',
|
'libfreeimage3',
|
||||||
'libopenal1'
|
'libopenal1'
|
||||||
);
|
);
|
||||||
@ -170,7 +171,8 @@ if (!appImageArch) {
|
|||||||
}
|
}
|
||||||
const appImage = {
|
const appImage = {
|
||||||
arch: appImageArch,
|
arch: appImageArch,
|
||||||
file_name: `./out/${name}-${version}-${arch}.AppImage`
|
file_name: `./out/${name}-${version}-${arch}.AppImage`,
|
||||||
|
'update-information': `zsync|${updateURL}`
|
||||||
};
|
};
|
||||||
|
|
||||||
// Root
|
// Root
|
||||||
|
@ -24,29 +24,54 @@ queue_pkg() {
|
|||||||
PKG_QUEUE="${PKG_QUEUE} $@"
|
PKG_QUEUE="${PKG_QUEUE} $@"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Install
|
# Build Tools
|
||||||
queue_pkg \
|
queue_pkg \
|
||||||
git \
|
git \
|
||||||
cmake \
|
cmake \
|
||||||
ninja-build \
|
ninja-build \
|
||||||
libglfw3 libglfw3-dev \
|
|
||||||
libfreeimage3 libfreeimage-dev \
|
|
||||||
crossbuild-essential-armhf \
|
crossbuild-essential-armhf \
|
||||||
gcc g++ \
|
gcc g++ \
|
||||||
nodejs \
|
nodejs
|
||||||
|
|
||||||
|
# Dependencies
|
||||||
|
queue_pkg \
|
||||||
|
libfreeimage3 libfreeimage-dev \
|
||||||
libopenal-dev \
|
libopenal-dev \
|
||||||
qemu-user
|
qemu-user
|
||||||
|
|
||||||
# Install ARM Dependencies
|
# GLFW Dependencies
|
||||||
if [ ! -z "${ARM_PACKAGES_SUPPORTED}" ]; then
|
queue_pkg \
|
||||||
|
libwayland-dev \
|
||||||
|
libxkbcommon-dev \
|
||||||
|
wayland-protocols \
|
||||||
|
libx11-dev \
|
||||||
|
libxcursor-dev \
|
||||||
|
libxi-dev \
|
||||||
|
libxinerama-dev \
|
||||||
|
libxrandr-dev \
|
||||||
|
libxext-dev
|
||||||
|
|
||||||
|
# ARM Packages
|
||||||
|
if [ ! -z "${ARM_PACKAGES_SUPPORTED}" ]; then
|
||||||
|
# Build Tools
|
||||||
queue_pkg \
|
queue_pkg \
|
||||||
libglfw3:armhf libglfw3-dev:armhf \
|
|
||||||
libfreeimage3:armhf \
|
|
||||||
libopenal-dev:armhf \
|
|
||||||
libglfw3:arm64 libglfw3-dev:arm64 \
|
|
||||||
libfreeimage3:arm64 \
|
|
||||||
libopenal-dev:arm64 \
|
|
||||||
crossbuild-essential-arm64
|
crossbuild-essential-arm64
|
||||||
|
|
||||||
|
# Dependencies
|
||||||
|
queue_pkg \
|
||||||
|
libfreeimage3:armhf libfreeimage3:arm64 \
|
||||||
|
libopenal-dev:armhf libopenal-dev:arm64
|
||||||
|
|
||||||
|
# GLFW Dependencies
|
||||||
|
queue_pkg \
|
||||||
|
libwayland-dev:armhf libwayland-dev:arm64 \
|
||||||
|
libxkbcommon-dev:armhf libxkbcommon-dev:arm64 \
|
||||||
|
libx11-dev:armhf libx11-dev:arm64 \
|
||||||
|
libxcursor-dev:armhf libxcursor-dev:arm64 \
|
||||||
|
libxi-dev:armhf libxi-dev:arm64 \
|
||||||
|
libxinerama-dev:armhf libxinerama-dev:arm64 \
|
||||||
|
libxrandr-dev:armhf libxrandr-dev:arm64 \
|
||||||
|
libxext-dev:armhf libxext-dev:arm64
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Install appimagetool Dependencies
|
# Install appimagetool Dependencies
|
||||||
@ -68,8 +93,9 @@ sudo apt-get install --no-install-recommends -y ${PKG_QUEUE}
|
|||||||
sudo mkdir -p /opt
|
sudo mkdir -p /opt
|
||||||
sudo wget https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage -O /opt/appimagetool
|
sudo wget https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage -O /opt/appimagetool
|
||||||
# Workaround AppImage Issues With Docker
|
# Workaround AppImage Issues With Docker
|
||||||
cd /opt; sudo chmod +x ./appimagetool; sed -i '0,/AI\x02/{s|AI\x02|\x00\x00\x00|}' ./appimagetool; sudo ./appimagetool --appimage-extract
|
cd /opt; sudo chmod +x ./appimagetool; sudo sed -i '0,/AI\x02/{s|AI\x02|\x00\x00\x00|}' ./appimagetool; sudo ./appimagetool --appimage-extract
|
||||||
sudo mv /opt/squashfs-root /opt/appimagetool.AppDir
|
sudo mv /opt/squashfs-root /opt/appimagetool.AppDir
|
||||||
|
sudo rm -f /usr/local/bin/appimagetool
|
||||||
sudo ln -s /opt/appimagetool.AppDir/AppRun /usr/local/bin/appimagetool
|
sudo ln -s /opt/appimagetool.AppDir/AppRun /usr/local/bin/appimagetool
|
||||||
|
|
||||||
# Install appimage-builder
|
# Install appimage-builder
|
||||||
|
@ -7,3 +7,6 @@ set -e
|
|||||||
|
|
||||||
# Build/Package
|
# Build/Package
|
||||||
appimage-builder --recipe AppImageBuilder.yml
|
appimage-builder --recipe AppImageBuilder.yml
|
||||||
|
|
||||||
|
# Move ZSync
|
||||||
|
mv "./minecraft-pi-reborn-$1-$(cat VERSION)-$2.AppImage.zsync" "./out/minecraft-pi-reborn-$1-latest-$2.AppImage.zsync"
|
||||||
|
Loading…
Reference in New Issue
Block a user