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
|
||||
appimage-builder-cache
|
||||
AppDir
|
||||
*.zsync
|
||||
|
4
.gitmodules
vendored
4
.gitmodules
vendored
@ -6,3 +6,7 @@
|
||||
path = dependencies/zlib/src
|
||||
url = https://github.com/madler/zlib.git
|
||||
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
|
||||
set(CMAKE_POSITION_INDEPENDENT_CODE TRUE)
|
||||
|
||||
# Buld LibPNG + ZLib + Download Minecraft: Pi Edition
|
||||
if(BUILD_ARM_COMPONENTS)
|
||||
# Buld Dependencies
|
||||
add_subdirectory(dependencies)
|
||||
endif()
|
||||
|
||||
# Warnings
|
||||
add_compile_options(-Wall -Wextra -Werror -Wpointer-arith -Wshadow -Wnull-dereference)
|
||||
|
@ -5,7 +5,6 @@ RUN \
|
||||
apt-get update && \
|
||||
apt-get install -y tini sed && \
|
||||
apt-get --fix-broken install -y && \
|
||||
rm -f /root/*.deb && \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# 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') {
|
||||
agent {
|
||||
docker {
|
||||
image 'buildpack-deps:bullseye'
|
||||
filename 'Dockerfile.build'
|
||||
args '-v /var/run/docker.sock:/var/run/docker.sock'
|
||||
}
|
||||
}
|
||||
@ -15,7 +15,7 @@ pipeline {
|
||||
}
|
||||
post {
|
||||
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)
|
||||
|
||||
# ZLib
|
||||
if(BUILD_ARM_COMPONENTS)
|
||||
add_subdirectory(zlib)
|
||||
endif()
|
||||
# LibPNG
|
||||
if(BUILD_ARM_COMPONENTS)
|
||||
add_subdirectory(libpng)
|
||||
endif()
|
||||
# GLFW
|
||||
if(BUILD_NATIVE_COMPONENTS)
|
||||
add_subdirectory(glfw)
|
||||
endif()
|
||||
# Minecraft: Pi Edition
|
||||
if(NOT MCPI_OPEN_SOURCE_ONLY)
|
||||
if(BUILD_ARM_COMPONENTS AND NOT MCPI_OPEN_SOURCE_ONLY)
|
||||
add_subdirectory(minecraft-pi)
|
||||
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
|
||||
target_link_libraries(media-layer-core media-layer-headers reborn-headers pthread dl)
|
||||
if(NOT MCPI_HEADLESS_MODE)
|
||||
# Find GLFW
|
||||
find_package(glfw3 3.3 REQUIRED)
|
||||
# Find FreeImage
|
||||
find_library(FREEIMAGE_LIBRARY NAMES freeimage libfreeimage.so.3 REQUIRED)
|
||||
# OpenAL
|
||||
|
@ -2,17 +2,6 @@
|
||||
|
||||
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
|
||||
echo '==== Building & Packaging ===='
|
||||
./scripts/package-all.sh
|
||||
|
@ -2,5 +2,8 @@
|
||||
|
||||
set -e
|
||||
|
||||
# Build Docker Image
|
||||
docker build -f Dockerfile.build -t minecraft-pi-reborn-build .
|
||||
|
||||
# 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
|
||||
const id = `com.thebrokenrail.MCPIReborn${mode === 'server' ? 'Server' : ''}`;
|
||||
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
|
||||
const apt_distribution = 'bullseye';
|
||||
@ -26,10 +27,10 @@ const packages = [
|
||||
'libstdc++6'
|
||||
];
|
||||
if (mode === 'client') {
|
||||
// GLFW's Dependencies Aren't Included As They Should Be Provided By The Host System
|
||||
packages.push(
|
||||
'zenity',
|
||||
'libcanberra-gtk3-module',
|
||||
'libglfw3',
|
||||
'libfreeimage3',
|
||||
'libopenal1'
|
||||
);
|
||||
@ -170,7 +171,8 @@ if (!appImageArch) {
|
||||
}
|
||||
const appImage = {
|
||||
arch: appImageArch,
|
||||
file_name: `./out/${name}-${version}-${arch}.AppImage`
|
||||
file_name: `./out/${name}-${version}-${arch}.AppImage`,
|
||||
'update-information': `zsync|${updateURL}`
|
||||
};
|
||||
|
||||
// Root
|
||||
|
@ -24,29 +24,54 @@ queue_pkg() {
|
||||
PKG_QUEUE="${PKG_QUEUE} $@"
|
||||
}
|
||||
|
||||
# Install
|
||||
# Build Tools
|
||||
queue_pkg \
|
||||
git \
|
||||
cmake \
|
||||
ninja-build \
|
||||
libglfw3 libglfw3-dev \
|
||||
libfreeimage3 libfreeimage-dev \
|
||||
crossbuild-essential-armhf \
|
||||
gcc g++ \
|
||||
nodejs \
|
||||
nodejs
|
||||
|
||||
# Dependencies
|
||||
queue_pkg \
|
||||
libfreeimage3 libfreeimage-dev \
|
||||
libopenal-dev \
|
||||
qemu-user
|
||||
|
||||
# Install ARM Dependencies
|
||||
if [ ! -z "${ARM_PACKAGES_SUPPORTED}" ]; then
|
||||
# GLFW Dependencies
|
||||
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 \
|
||||
libglfw3:armhf libglfw3-dev:armhf \
|
||||
libfreeimage3:armhf \
|
||||
libopenal-dev:armhf \
|
||||
libglfw3:arm64 libglfw3-dev:arm64 \
|
||||
libfreeimage3:arm64 \
|
||||
libopenal-dev: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
|
||||
|
||||
# Install appimagetool Dependencies
|
||||
@ -68,8 +93,9 @@ sudo apt-get install --no-install-recommends -y ${PKG_QUEUE}
|
||||
sudo mkdir -p /opt
|
||||
sudo wget https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage -O /opt/appimagetool
|
||||
# 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 rm -f /usr/local/bin/appimagetool
|
||||
sudo ln -s /opt/appimagetool.AppDir/AppRun /usr/local/bin/appimagetool
|
||||
|
||||
# Install appimage-builder
|
||||
|
@ -7,3 +7,6 @@ set -e
|
||||
|
||||
# Build/Package
|
||||
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