# 从源码构建

  • 尽管说明详尽,但从源码构建需要技术能力、网络条件和时间投入。

  • 您可以尝试在 Android 上通过 Termux (opens new window) 进行构建,但不会提供相关支持。

  • 建议在开始配置 JRE 前克隆 PojavLauncher 仓库

  • git clone https://github.com/PojavLauncherTeam/PojavLauncher

# 配置 JRE

# Android

  • 克隆 PojavLauncherTeam/android-openjdk-build-multiarch 的 git 仓库
git clone https://github.com/PojavLauncherTeam/android-openjdk-build-multiarch
  • 切换到克隆的仓库目录
cd android-openjdk-build-multiarch
  • 此处 (opens new window)下载 Android NDK r10e 并通过文件管理器放置于此目录(因 EULA 限制无法自动下载)

WARNING

请勿尝试使用新版或旧版 NDK 构建,否则会导致编译错误

# iOS

# 平台与架构特定的环境变量

平台 架构 编译目标 目标JDK
Android armv8/aarch64 aarch64-linux-android aarch64
Android armv7/aarch32 arm-linux-androideabi arm
Android x86/i686 i686-linux-android x86
Android x86_64/amd64 x86_64-linux-android x86_64
iOS/iPadOS armv8/aarch64 aarch64-macos-ios aarch64

# 构建 JRE(Java 运行时环境)

  • Android
  • iOS
export BUILD_IOS=0

export BUILD_FREETYPE_VERSION=[2.10.4]

TIP

支持 2.6.2 至 2.10.4 之间的版本,但推荐使用 2.10.4

export JDK_DEBUG_LEVEL=[release]

TIP

支持 releasefastdebugdebug,但推荐使用 release

export JVM_VARIANTS=[client]

TIP

支持 clientserver 变体,Client 适用于 aarch32 架构,server 适用于其他架构

(仅 Android)

./extractndk.sh

./maketoolchain.sh

# 获取 CUPS、Freetype 并构建 Freetype

./getlibs.sh

./buildlibs.sh

# 克隆 JDK(只需运行一次)

./clonejdk.sh

# 配置并构建 JDK

./buildjdk.sh

TIP

若未更改配置,可运行 sh makejdkwithoutconfigure.sh 替代

# 打包已构建的 JDK

./removejdkdebuginfo.sh

./tarjdk.sh

# LWJGL

  • 即将推出

# 构建启动器

# 更新翻译

  • 借助语言列表更新脚本,翻译更新变得更加便捷

  • 运行以下命令即可自动从 Crowdin 更新

  • Windows
  • Linux/MacOS
scripts\languagelist_updater.bat

# 构建 GLFW 存根

  • Windows
  • Linux/MacOS
./gradlew :jre_lwjgl3glfw:build

# 构建启动器

  • Windows
  • Linux/MacOS
./gradlew.bat :app_pojavlauncher:assembleDebug