Refactor to support dynamic repositories

This commit is contained in:
FriwiDev 2021-11-16 18:43:50 +01:00
parent 88fea496ce
commit d6e4e569a5
6 changed files with 37 additions and 15 deletions

View File

@ -3,7 +3,7 @@ FROM friwidev/jcefdocker:linux-latest AS stage
#Declare build type argument (Release or Debug) #Declare build type argument (Release or Debug)
ARG BUILD_TYPE ARG BUILD_TYPE
#Declare architecture argument (386 or amd64) #Declare architecture argument (arm64, arm/v7, 386 or amd64)
ARG TARGETARCH ARG TARGETARCH
#Declare git args #Declare git args

View File

@ -4,7 +4,7 @@ if [ $# -lt 2 ] || [ $# -eq 3 ]
then then
echo "Usage: ./compile_linux.sh <architecture> <buildType> [<gitrepo> <gitref>]" echo "Usage: ./compile_linux.sh <architecture> <buildType> [<gitrepo> <gitref>]"
echo "" echo ""
echo "architecture: the target architecture to build for. Architectures are either 386 or amd64." echo "architecture: the target architecture to build for. Architectures are either arm64, arm/v7, 386 or amd64."
echo "buildType: either Release or Debug" echo "buildType: either Release or Debug"
echo "gitrepo: git repository url to clone" echo "gitrepo: git repository url to clone"
echo "gitref: the git commit id to pull" echo "gitref: the git commit id to pull"

View File

@ -1,17 +1,27 @@
#!/bin/bash #!/bin/bash
set -e set -e
if [ ! $# -eq 2 ] if [ $# -lt 2 ] || [ $# -eq 3 ]
then then
echo "Usage: ./compile_macosx.sh <architecture> <buildType>" echo "Usage: ./compile_macosx.sh <architecture> <buildType> [<gitrepo> <gitref>]"
echo "" echo ""
echo "architecture: the target architecture to build for. Architectures are either amd64 or arm64." echo "architecture: the target architecture to build for. Architectures are either amd64 or arm64."
echo "buildType: either Release or Debug" echo "buildType: either Release or Debug"
echo "gitrepo: git repository url to clone"
echo "gitref: the git commit id to pull"
exit 1 exit 1
fi fi
TARGETARCH=$1 TARGETARCH=$1
BUILD_TYPE=$2 BUILD_TYPE=$2
if [ $# -lt 4 ]
then
REPO=https://bitbucket.org/chromiumembedded/java-cef.git
REF=master
else
REPO=$3
REF=$4
fi
# Determine architecture # Determine architecture
echo "Building for architecture $TARGETARCH" echo "Building for architecture $TARGETARCH"
@ -19,14 +29,15 @@ echo "Building for architecture $TARGETARCH"
if [ ! -f "jcef/README.md" ]; then if [ ! -f "jcef/README.md" ]; then
echo "Did not find existing files to build - cloning..." echo "Did not find existing files to build - cloning..."
rm -rf jcef rm -rf jcef
git clone https://bitbucket.org/chromiumembedded/java-cef.git jcef git clone ${REPO} jcef
cd jcef
git checkout ${REF}
#No CMakeLists patching required on macos, as we do not add any new platforms
else else
echo "Found existing files to build" echo "Found existing files to build"
cd jcef
fi fi
# Enter the JCEF source code directory.
cd jcef
# Create and enter the `jcef_build` directory. # Create and enter the `jcef_build` directory.
# The `jcef_build` directory name is required by other JCEF tooling # The `jcef_build` directory name is required by other JCEF tooling
# and should not be changed. # and should not be changed.

View File

@ -1,13 +1,21 @@
@echo off @echo off
if ("%2"=="") ( ^ if ("%2"=="") ( ^
echo "Usage: compile_windows.bat <architecture> <buildType>" && ^ echo "Usage: compile_windows.bat <architecture> <buildType> [<gitrepo> <gitref>]" && ^
echo "" && ^ echo "" && ^
echo "architecture: the target architecture to build for. Architectures are either 386 or amd64." && ^ echo "architecture: the target architecture to build for. Architectures are either arm64, 386 or amd64." && ^
echo "buildType: either Release or Debug" && ^ echo "buildType: either Release or Debug" && ^
echo "gitrepo: git repository url to clone" && ^
echo "gitref: the git commit id to pull" && ^
exit 1 ^ exit 1 ^
) )
::Determine repository and ref to pull from
if ("%3"=="") (set "REPO=https://bitbucket.org/chromiumembedded/java-cef.git") ^
else (set "REPO=%3")
if ("%4"=="") (set "REF=master") ^
else (set "REF=%4")
:: Execute build with windows Dockerfile :: Execute build with windows Dockerfile
docker build -t jcefbuild --file DockerfileWindows . docker build -t jcefbuild --file DockerfileWindows .
@ -15,5 +23,5 @@ docker build -t jcefbuild --file DockerfileWindows .
if not exist "jcef" mkdir "jcef" if not exist "jcef" mkdir "jcef"
rmdir /S /Q out rmdir /S /Q out
mkdir "out" mkdir "out"
docker run --name jcefbuild -v jcef:"C:\jcef" -e TARGETARCH=%1 -e BUILD_TYPE=%2 jcefbuild docker run --name jcefbuild -v jcef:"C:\jcef" -e TARGETARCH=%1 -e BUILD_TYPE=%2 -e REPO=%REPO% -e REF=%REF% jcefbuild
docker cp jcefbuild:/out/binary_distrib.tar.gz out/binary_distrib.tar.gz docker cp jcefbuild:/out/binary_distrib.tar.gz out/binary_distrib.tar.gz

View File

@ -15,6 +15,7 @@ if [ ! -f "/jcef/README.md" ]; then
git clone ${REPO} /jcef git clone ${REPO} /jcef
cd /jcef cd /jcef
git checkout ${REF} git checkout ${REF}
#Temporary CMakeLists patching - beautify in the future
rm CMakeLists.txt rm CMakeLists.txt
curl -o CMakeLists.txt https://raw.githubusercontent.com/jcefmaven/jcefbuild/master/CMakeLists.txt curl -o CMakeLists.txt https://raw.githubusercontent.com/jcefmaven/jcefbuild/master/CMakeLists.txt
else else

View File

@ -8,12 +8,12 @@ certutil -generateSSTFromWU roots.sst && certutil -addstore -f root roots.sst &&
:: Check residency of workdir :: Check residency of workdir
cd .. cd ..
if exist "jcef\README.md" (echo "Found existing files to build") ^ if exist "jcef\README.md" (echo "Found existing files to build" && cd jcef) ^
else (echo "Did not find files to build - cloning..." && GOTO :CLONE) else (echo "Did not find files to build - cloning..." && GOTO :CLONE)
:BUILD :BUILD
cd jcef :: Temporary CMakeLists patching - beautify in the future
rm CMakeLists.txt del /f CMakeLists.txt
curl -o CMakeLists.txt https://raw.githubusercontent.com/jcefmaven/jcefbuild/master/CMakeLists.txt curl -o CMakeLists.txt https://raw.githubusercontent.com/jcefmaven/jcefbuild/master/CMakeLists.txt
:: Prepare build dir :: Prepare build dir
@ -51,5 +51,7 @@ GOTO :EOF
:CLONE :CLONE
if exist jcef rmdir /S /Q jcef if exist jcef rmdir /S /Q jcef
git clone https://bitbucket.org/chromiumembedded/java-cef jcef git clone %REPO% jcef
cd jcef
git checkout %REF%
GOTO :BUILD GOTO :BUILD