JCEF bundle: install dir -> lib/jcef-bundle, add build script to prefetch natives into ZIP
This commit is contained in:
@@ -294,6 +294,11 @@
|
|||||||
</fileset>
|
</fileset>
|
||||||
</copy>
|
</copy>
|
||||||
|
|
||||||
|
<!-- Скачиваем и собираем JCEF bundle -->
|
||||||
|
<exec executable="bash" failonerror="false">
|
||||||
|
<arg value="${project.basedir}/scripts/download-jcef-bundle.sh"/>
|
||||||
|
</exec>
|
||||||
|
|
||||||
<!-- Создаем папку bin и копируем JAR -->
|
<!-- Создаем папку bin и копируем JAR -->
|
||||||
<mkdir dir="../../server/builds/bin"/>
|
<mkdir dir="../../server/builds/bin"/>
|
||||||
<copy file="../../server/builds/zernmclauncher.jar"
|
<copy file="../../server/builds/zernmclauncher.jar"
|
||||||
|
|||||||
@@ -252,7 +252,7 @@ public class JCEFLauncher {
|
|||||||
java.awt.Toolkit.getDefaultToolkit();
|
java.awt.Toolkit.getDefaultToolkit();
|
||||||
|
|
||||||
CefAppBuilder builder = new CefAppBuilder();
|
CefAppBuilder builder = new CefAppBuilder();
|
||||||
builder.setInstallDir(new File("jcef-bundle"));
|
builder.setInstallDir(new File("lib/jcef-bundle"));
|
||||||
builder.setProgressHandler(new ConsoleProgressHandler());
|
builder.setProgressHandler(new ConsoleProgressHandler());
|
||||||
builder.getCefSettings().windowless_rendering_enabled = false;
|
builder.getCefSettings().windowless_rendering_enabled = false;
|
||||||
cefApp = builder.build();
|
cefApp = builder.build();
|
||||||
|
|||||||
Executable
+52
@@ -0,0 +1,52 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# Downloads and assembles JCEF bundle for offline packaging
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
JCEF_VERSION="146.0.10"
|
||||||
|
JCEF_HASH="jcef-d3de827+cef-146.0.10+g8219561+chromium-146.0.7680.179"
|
||||||
|
OUTDIR="../../server/builds/lib/jcef-bundle"
|
||||||
|
M2_REPO="${HOME}/.m2/repository"
|
||||||
|
|
||||||
|
mkdir -p "$OUTDIR/lib"
|
||||||
|
|
||||||
|
# Download natives JAR from Maven Central if not cached
|
||||||
|
NATIVES_JAR="jcef-natives-windows-amd64-${JCEF_HASH}.jar"
|
||||||
|
NATIVES_PATH="${M2_REPO}/me/friwi/jcef-natives-windows-amd64/${JCEF_HASH}/${NATIVES_JAR}"
|
||||||
|
|
||||||
|
if [ ! -f "$NATIVES_PATH" ]; then
|
||||||
|
echo "Downloading JCEF natives (155MB)..."
|
||||||
|
mvn dependency:copy -q \
|
||||||
|
-Dartifact="me.friwi:jcef-natives-windows-amd64:${JCEF_HASH}" \
|
||||||
|
-DoutputDirectory="${M2_REPO}/me/friwi/jcef-natives-windows-amd64/${JCEF_HASH}/"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Extract tar.gz from JAR and then extract to lib/
|
||||||
|
echo "Extracting native libraries..."
|
||||||
|
rm -rf /tmp/jcef-extract
|
||||||
|
mkdir -p /tmp/jcef-extract
|
||||||
|
cd /tmp/jcef-extract
|
||||||
|
jar xf "$NATIVES_PATH"
|
||||||
|
TARBALL=$(ls *.tar.gz 2>/dev/null | head -1)
|
||||||
|
if [ -n "$TARBALL" ]; then
|
||||||
|
tar xzf "$TARBALL" -C "$OLDPWD/$OUTDIR/lib/"
|
||||||
|
fi
|
||||||
|
cd "$OLDPWD"
|
||||||
|
|
||||||
|
# Copy API JARs from Maven repo
|
||||||
|
echo "Copying API JARs..."
|
||||||
|
for ARTIFACT in "jcef-api:${JCEF_HASH}" "jogl-all:v2.4.0" "gluegen-rt:v2.4.0"; do
|
||||||
|
GROUP="me.friwi"
|
||||||
|
ARTIFACT_ID="${ARTIFACT%%:*}"
|
||||||
|
VERSION="${ARTIFACT##*:}"
|
||||||
|
JAR_NAME="${ARTIFACT_ID}-${VERSION}.jar"
|
||||||
|
SRC="${M2_REPO}/me/friwi/${ARTIFACT_ID}/${VERSION}/${JAR_NAME}"
|
||||||
|
if [ -f "$SRC" ]; then
|
||||||
|
cp "$SRC" "$OUTDIR/"
|
||||||
|
echo " $JAR_NAME"
|
||||||
|
else
|
||||||
|
echo " WARNING: $JAR_NAME not found in Maven repo"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "JCEF bundle assembled at $OUTDIR"
|
||||||
|
ls -la "$OUTDIR/lib/" | head -10
|
||||||
Reference in New Issue
Block a user