mirror of
https://github.com/jcefmaven/jcefbuild.git
synced 2025-09-23 23:56:37 +08:00
Attempt prebuilding for ARM/v6
This commit is contained in:
parent
672c81ad28
commit
b07f47aeb4
@ -13,6 +13,8 @@ ARG REF
|
|||||||
WORKDIR /builder
|
WORKDIR /builder
|
||||||
#Copy existing sources, if any
|
#Copy existing sources, if any
|
||||||
COPY jcef /jcef
|
COPY jcef /jcef
|
||||||
|
#Copy prebuild classes, if any
|
||||||
|
COPY out/linux* /prebuild
|
||||||
|
|
||||||
#Copy and launch run script
|
#Copy and launch run script
|
||||||
COPY scripts/run_linux.sh .
|
COPY scripts/run_linux.sh .
|
||||||
|
29
DockerfileLinuxARMPrebuild
Normal file
29
DockerfileLinuxARMPrebuild
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
#This file is used to build java classes for ARMv6 distributions before actually running on ARMv6
|
||||||
|
#This is needed as compilation fails on ARMv6 for some yet unknown reasons (libraries do not get detected there)
|
||||||
|
|
||||||
|
FROM friwidev/jcefdocker:linux-latest AS stage
|
||||||
|
|
||||||
|
#Declare build type argument (Release or Debug)
|
||||||
|
ARG BUILD_TYPE
|
||||||
|
|
||||||
|
#Declare architecture argument (arm64, 386 or amd64)
|
||||||
|
ARG TARGETARCH
|
||||||
|
|
||||||
|
#Declare git args
|
||||||
|
ARG REPO
|
||||||
|
ARG REF
|
||||||
|
|
||||||
|
WORKDIR /builder
|
||||||
|
#Copy existing sources, if any
|
||||||
|
COPY jcef /jcef
|
||||||
|
|
||||||
|
#Copy and launch run script
|
||||||
|
COPY scripts/run_linux_prebuild.sh .
|
||||||
|
RUN chmod +x run_linux_prebuild.sh
|
||||||
|
RUN ./run_linux_prebuild.sh
|
||||||
|
|
||||||
|
#Export built files
|
||||||
|
FROM scratch AS export-stage
|
||||||
|
COPY --from=stage /jcef/out/linux32 linux32
|
||||||
|
|
||||||
|
|
@ -14,7 +14,15 @@ fi
|
|||||||
#Execute buildx with linux dockerfile and output to current directory
|
#Execute buildx with linux dockerfile and output to current directory
|
||||||
if [ $# -eq 2 ]
|
if [ $# -eq 2 ]
|
||||||
then
|
then
|
||||||
|
if [ $1 == "arm/v6" ]
|
||||||
|
then
|
||||||
|
docker buildx build --platform=linux/386 --build-arg TARGETARCH=386 --build-arg BUILD_TYPE=$2 --build-arg REPO=https://bitbucket.org/chromiumembedded/java-cef.git --build-arg REF=master --file DockerfileLinuxARMPrebuild --output out .
|
||||||
|
fi
|
||||||
docker buildx build --platform=linux/$1 --build-arg TARGETARCH=$1 --build-arg BUILD_TYPE=$2 --build-arg REPO=https://bitbucket.org/chromiumembedded/java-cef.git --build-arg REF=master --file DockerfileLinux --output out .
|
docker buildx build --platform=linux/$1 --build-arg TARGETARCH=$1 --build-arg BUILD_TYPE=$2 --build-arg REPO=https://bitbucket.org/chromiumembedded/java-cef.git --build-arg REF=master --file DockerfileLinux --output out .
|
||||||
else
|
else
|
||||||
|
if [ $1 == "arm/v6" ]
|
||||||
|
then
|
||||||
|
docker buildx build --platform=linux/386 --build-arg TARGETARCH=386 --build-arg BUILD_TYPE=$2 --build-arg REPO=$3 --build-arg REF=$4 --file DockerfileLinuxARMPrebuild --output out .
|
||||||
|
fi
|
||||||
docker buildx build --platform=linux/$1 --build-arg TARGETARCH=$1 --build-arg BUILD_TYPE=$2 --build-arg REPO=$3 --build-arg REF=$4 --file DockerfileLinux --output out .
|
docker buildx build --platform=linux/$1 --build-arg TARGETARCH=$1 --build-arg BUILD_TYPE=$2 --build-arg REPO=$3 --build-arg REF=$4 --file DockerfileLinux --output out .
|
||||||
fi
|
fi
|
||||||
|
@ -49,7 +49,8 @@ if [ ${TARGETARCH} == 'amd64' ] || [ ${TARGETARCH} == 'arm64' ]; then
|
|||||||
elif [ ${TARGETARCH} == '386' ]; then
|
elif [ ${TARGETARCH} == '386' ]; then
|
||||||
./compile.sh linux32
|
./compile.sh linux32
|
||||||
else
|
else
|
||||||
echo "Can not compile java classes under arm/v6 currently. WIP"
|
echo "Can not compile java classes under arm/v6 currently. So we copy from prebuild directory."
|
||||||
|
cp -r /prebuild/linux32 /jcef/out
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#Generate distribution
|
#Generate distribution
|
||||||
|
39
scripts/run_linux_prebuild.sh
Normal file
39
scripts/run_linux_prebuild.sh
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# This file prebuilds the java classes for arm/v6 under another architecture, as compilation of those fails
|
||||||
|
# on arm/v6. They can be used on the platform nontheless.
|
||||||
|
|
||||||
|
# Determine architecture
|
||||||
|
echo "Prebuilding java classes with $TARGETARCH"
|
||||||
|
|
||||||
|
# Print some debug info
|
||||||
|
echo "-------------------------------------"
|
||||||
|
echo "JAVA_HOME: $JAVA_HOME"
|
||||||
|
echo "PATH: $PATH"
|
||||||
|
java -version
|
||||||
|
echo "-------------------------------------"
|
||||||
|
|
||||||
|
# Fetch sources
|
||||||
|
if [ ! -f "/jcef/README.md" ]; then
|
||||||
|
echo "Did not find existing files to build - cloning..."
|
||||||
|
rm -rf /jcef
|
||||||
|
git clone ${REPO} /jcef
|
||||||
|
cd /jcef
|
||||||
|
git checkout ${REF}
|
||||||
|
#Temporary CMakeLists patching - beautify in the future
|
||||||
|
rm CMakeLists.txt
|
||||||
|
curl -o CMakeLists.txt https://raw.githubusercontent.com/jcefmaven/jcefbuild/master/CMakeLists.txt
|
||||||
|
else
|
||||||
|
echo "Found existing files to build"
|
||||||
|
cd /jcef
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Create and enter the `jcef_build` directory.
|
||||||
|
# The `jcef_build` directory name is required by other JCEF tooling
|
||||||
|
# and should not be changed.
|
||||||
|
mkdir jcef_build && cd jcef_build
|
||||||
|
|
||||||
|
#Compile JCEF java classes
|
||||||
|
cd ../tools
|
||||||
|
chmod +x compile.sh
|
||||||
|
./compile.sh linux32
|
Loading…
Reference in New Issue
Block a user