mirror of
https://github.com/jcefmaven/jcefbuild.git
synced 2025-11-28 10:59:20 +08:00
Compare commits
12 Commits
test-flyci
...
version/je
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d9f079450b | ||
|
|
40bc4315bc | ||
|
|
c2da6c8474 | ||
|
|
bfe55d1f9d | ||
|
|
465645a1dd | ||
|
|
286fcff999 | ||
|
|
70817e5648 | ||
|
|
422d2577d0 | ||
|
|
70be54d496 | ||
|
|
fc7b23686b | ||
|
|
625ddf50da | ||
|
|
fc16a1d087 |
@@ -22,7 +22,6 @@ COPY natives /natives
|
|||||||
|
|
||||||
#Copy cmake patching script
|
#Copy cmake patching script
|
||||||
COPY scripts/patch_cmake.py .
|
COPY scripts/patch_cmake.py .
|
||||||
COPY patch/CMakeLists.txt.patch .
|
|
||||||
|
|
||||||
#Copy and launch run script
|
#Copy and launch run script
|
||||||
COPY scripts/run_linux.sh .
|
COPY scripts/run_linux.sh .
|
||||||
|
|||||||
@@ -19,6 +19,9 @@ WORKDIR /builder
|
|||||||
#Copy existing sources, if any
|
#Copy existing sources, if any
|
||||||
COPY jcef /jcef
|
COPY jcef /jcef
|
||||||
|
|
||||||
|
#Copy cmake patching script
|
||||||
|
COPY scripts/patch_cmake.py .
|
||||||
|
|
||||||
#Copy and launch run script
|
#Copy and launch run script
|
||||||
COPY scripts/run_linux_prebuild.sh .
|
COPY scripts/run_linux_prebuild.sh .
|
||||||
RUN chmod +x run_linux_prebuild.sh
|
RUN chmod +x run_linux_prebuild.sh
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ WORKDIR C:/
|
|||||||
|
|
||||||
#Copy cmake patching script
|
#Copy cmake patching script
|
||||||
COPY scripts/patch_cmake.py .
|
COPY scripts/patch_cmake.py .
|
||||||
COPY patch/CMakeLists.txt.patch .
|
|
||||||
|
|
||||||
#Copy and launch run script
|
#Copy and launch run script
|
||||||
COPY scripts/run_windows.bat .
|
COPY scripts/run_windows.bat .
|
||||||
|
|||||||
@@ -19,7 +19,7 @@
|
|||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><b>Java</b></td>
|
<td><b>Java</b></td>
|
||||||
<td>OpenJDK 11</td>
|
<td>OpenJDK 17</td>
|
||||||
<td>Oracle JDK 8</td>
|
<td>Oracle JDK 8</td>
|
||||||
<td>Microsoft JDK 11</td>
|
<td>Microsoft JDK 11</td>
|
||||||
<td>Temurin JDK 8</td>
|
<td>Temurin JDK 8</td>
|
||||||
@@ -27,8 +27,8 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<td><b>Compiler</b></td>
|
<td><b>Compiler</b></td>
|
||||||
<td>GCC 10</td>
|
<td>GCC 10</td>
|
||||||
<td>VS 2019</td>
|
<td>VS 2022</td>
|
||||||
<td>VS 2019</td>
|
<td>VS 2022</td>
|
||||||
<td>Xcode 13</td>
|
<td>Xcode 13</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
|||||||
@@ -45,6 +45,10 @@ else
|
|||||||
cd jcef
|
cd jcef
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
#CMake patching
|
||||||
|
python3 ../scripts/patch_cmake.py cmake/DownloadCEF.cmake
|
||||||
|
python3 ../scripts/patch_cmake.py CMakeLists.txt
|
||||||
|
|
||||||
# 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.
|
||||||
@@ -55,9 +59,9 @@ cd jcef_build
|
|||||||
|
|
||||||
# MacOS: Generate amd64/arm64 Makefiles.
|
# MacOS: Generate amd64/arm64 Makefiles.
|
||||||
if [ ${TARGETARCH} == 'amd64' ]; then
|
if [ ${TARGETARCH} == 'amd64' ]; then
|
||||||
cmake -G "Ninja" -DPROJECT_ARCH="x86_64" -DCMAKE_BUILD_TYPE=${BUILD_TYPE} ..
|
cmake -G "Ninja" -DPROJECT_ARCH="x86_64" -DCMAKE_OSX_ARCHITECTURES="x86_64" -DCMAKE_BUILD_TYPE=${BUILD_TYPE} ..
|
||||||
else
|
else
|
||||||
cmake -G "Ninja" -DPROJECT_ARCH="arm64" -DCMAKE_BUILD_TYPE=${BUILD_TYPE} ..
|
cmake -G "Ninja" -DPROJECT_ARCH="arm64" -DCMAKE_OSX_ARCHITECTURES="arm64" -DCMAKE_BUILD_TYPE=${BUILD_TYPE} ..
|
||||||
fi
|
fi
|
||||||
# Build native part using ninja.
|
# Build native part using ninja.
|
||||||
ninja -j4
|
ninja -j4
|
||||||
|
|||||||
@@ -45,6 +45,7 @@ codesign --force --options runtime --entitlements "$ENTITLEMENTS_BROWSER" --sign
|
|||||||
codesign --force --options runtime --entitlements "$ENTITLEMENTS_BROWSER" --sign "$2" --timestamp --verbose "$APP_DIR/$APP_NAME/$FRAMEWORKS_DIR/$FRAMEWORK_NAME/Libraries/libGLESv2.dylib"
|
codesign --force --options runtime --entitlements "$ENTITLEMENTS_BROWSER" --sign "$2" --timestamp --verbose "$APP_DIR/$APP_NAME/$FRAMEWORKS_DIR/$FRAMEWORK_NAME/Libraries/libGLESv2.dylib"
|
||||||
codesign --force --options runtime --entitlements "$ENTITLEMENTS_BROWSER" --sign "$2" --timestamp --verbose "$APP_DIR/$APP_NAME/$FRAMEWORKS_DIR/$FRAMEWORK_NAME/Libraries/libvk_swiftshader.dylib"
|
codesign --force --options runtime --entitlements "$ENTITLEMENTS_BROWSER" --sign "$2" --timestamp --verbose "$APP_DIR/$APP_NAME/$FRAMEWORKS_DIR/$FRAMEWORK_NAME/Libraries/libvk_swiftshader.dylib"
|
||||||
codesign --force --options runtime --entitlements "$ENTITLEMENTS_BROWSER" --sign "$2" --timestamp --verbose "$APP_DIR/$APP_NAME/$FRAMEWORKS_DIR/$FRAMEWORK_NAME"
|
codesign --force --options runtime --entitlements "$ENTITLEMENTS_BROWSER" --sign "$2" --timestamp --verbose "$APP_DIR/$APP_NAME/$FRAMEWORKS_DIR/$FRAMEWORK_NAME"
|
||||||
|
touch "$APP_DIR/$APP_NAME/$FRAMEWORKS_DIR/$FRAMEWORK_NAME/Contents/CodeResources" # Small trick to not let the validate action fail
|
||||||
bash macosx_notarize.sh "$APP_DIR/$APP_NAME/$FRAMEWORKS_DIR/$FRAMEWORK_NAME" "$2" $3 org.cef.framework $4 $5 $6
|
bash macosx_notarize.sh "$APP_DIR/$APP_NAME/$FRAMEWORKS_DIR/$FRAMEWORK_NAME" "$2" $3 org.cef.framework $4 $5 $6
|
||||||
codesign --force --options runtime --entitlements "$ENTITLEMENTS_BROWSER" --sign "$2" --timestamp --verbose "$APP_DIR/$APP_NAME/Contents/Java/libjcef.dylib"
|
codesign --force --options runtime --entitlements "$ENTITLEMENTS_BROWSER" --sign "$2" --timestamp --verbose "$APP_DIR/$APP_NAME/Contents/Java/libjcef.dylib"
|
||||||
bash macosx_codesign_zip.sh "$APP_DIR/$APP_NAME/Contents/Java/gluegen-rt-natives-macosx-universal.jar" "natives/macosx-universal/libgluegen_rt.dylib" "$2"
|
bash macosx_codesign_zip.sh "$APP_DIR/$APP_NAME/Contents/Java/gluegen-rt-natives-macosx-universal.jar" "natives/macosx-universal/libgluegen_rt.dylib" "$2"
|
||||||
|
|||||||
@@ -1,44 +0,0 @@
|
|||||||
# Determine the platform.
|
|
||||||
if("${CMAKE_SYSTEM_NAME}" STREQUAL "Darwin")
|
|
||||||
if("${PROJECT_ARCH}" STREQUAL "arm64")
|
|
||||||
set(CEF_PLATFORM "macosarm64")
|
|
||||||
else()
|
|
||||||
set(CEF_PLATFORM "macosx64")
|
|
||||||
endif()
|
|
||||||
elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux")
|
|
||||||
if("${PROJECT_ARCH}" STREQUAL "amd64")
|
|
||||||
set(CEF_PLATFORM "linux64")
|
|
||||||
elseif("${PROJECT_ARCH}" STREQUAL "arm64")
|
|
||||||
set(CEF_PLATFORM "linuxarm64")
|
|
||||||
elseif("${PROJECT_ARCH}" STREQUAL "arm/v6")
|
|
||||||
set(CEF_PLATFORM "linuxarm")
|
|
||||||
else()
|
|
||||||
set(CEF_PLATFORM "linux32")
|
|
||||||
endif()
|
|
||||||
elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "Windows")
|
|
||||||
#Stolen from Jetbrains jcef repository for the arm64 windows build
|
|
||||||
if(MSVC)
|
|
||||||
include(CheckSymbolExists)
|
|
||||||
|
|
||||||
# MSVC predefines _M_ARM64 for compilations that target ARM64
|
|
||||||
# and _M_AMD64 for compilations that target x86_64.
|
|
||||||
check_symbol_exists("_M_ARM64" "" CEF_PLATFORM_WINARM64)
|
|
||||||
check_symbol_exists("_M_AMD64" "" CEF_PLATFORM_WIN64)
|
|
||||||
|
|
||||||
# We also should set PROJECT_ARCH explicitly because FindCEF.cmake deduces it incorrectly for
|
|
||||||
# cross-compilation cases.
|
|
||||||
if(CEF_PLATFORM_WINARM64)
|
|
||||||
set(CEF_PLATFORM "windowsarm64")
|
|
||||||
set(PROJECT_ARCH "arm64")
|
|
||||||
elseif(CEF_PLATFORM_WIN64)
|
|
||||||
set(CEF_PLATFORM "windows64")
|
|
||||||
set(PROJECT_ARCH "x86_64")
|
|
||||||
else()
|
|
||||||
set(CEF_PLATFORM "windows32")
|
|
||||||
set(PROJECT_ARCH "x86")
|
|
||||||
endif()
|
|
||||||
else()
|
|
||||||
message(FATAL_ERROR "Building JCEF for Windows using non-MSVC compiler is not supported.")
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
@@ -1,35 +1,23 @@
|
|||||||
#Small script to patch CMakeLists.txt files with custom build options
|
#Small script to patch our cmake download locations
|
||||||
#Will replace file contents between two markers ("Determine the platform"
|
#Usage: python patch_cmake.py <file>
|
||||||
#and "Add this project's cmake")
|
|
||||||
#Usage: python patch_cmake.py <input> <patch>
|
|
||||||
|
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
input = sys.argv[1]
|
input = sys.argv[1]
|
||||||
patch = sys.argv[2]
|
|
||||||
|
|
||||||
print("Patching "+input+" to accept further build architectures...")
|
print("Patching "+input+"...")
|
||||||
|
|
||||||
f = open(input, "r")
|
f = open(input, "r")
|
||||||
p = open(patch, "r")
|
|
||||||
result = ""
|
result = ""
|
||||||
inpatch = False
|
|
||||||
for x in f:
|
for x in f:
|
||||||
if x.startswith("# Determine the platform"):
|
result += x.replace("https://cache-redirector.jetbrains.com/intellij-jbr/", "https://cef-builds.spotifycdn.com/") \
|
||||||
inpatch = True
|
.replace("_minimal", "") \
|
||||||
for y in p:
|
.replace(".zip", ".tar.bz2") \
|
||||||
result += y
|
.replace(".checksum", ".sha1") \
|
||||||
elif x.startswith("# Add this project's cmake"):
|
.replace("SHA256", "SHA1") \
|
||||||
inpatch = False
|
.replace("x86_64", "amd64")
|
||||||
if inpatch == False:
|
|
||||||
#Patch minimum cmake version to not break our builds on linux
|
|
||||||
if x.startswith("cmake_minimum_required"):
|
|
||||||
result += "cmake_minimum_required(VERSION 3.13)\n"
|
|
||||||
else:
|
|
||||||
result += x
|
|
||||||
|
|
||||||
f.close()
|
f.close()
|
||||||
p.close()
|
|
||||||
|
|
||||||
f = open(input, "w")
|
f = open(input, "w")
|
||||||
f.write(result)
|
f.write(result)
|
||||||
|
|||||||
@@ -9,6 +9,9 @@ if [ ${TARGETARCH} == 'arm/v6' ]; then
|
|||||||
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-armel
|
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-armel
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
export PATH=$PATH:/usr/lib/jvm/openjdk-17/bin
|
||||||
|
export JAVA_HOME=/usr/lib/jvm/openjdk-17
|
||||||
|
|
||||||
# Print some debug info
|
# Print some debug info
|
||||||
echo "-------------------------------------"
|
echo "-------------------------------------"
|
||||||
echo "JAVA_HOME: $JAVA_HOME"
|
echo "JAVA_HOME: $JAVA_HOME"
|
||||||
@@ -26,10 +29,11 @@ if [ ! -f "/jcef/README.md" ]; then
|
|||||||
else
|
else
|
||||||
echo "Found existing files to build"
|
echo "Found existing files to build"
|
||||||
cd /jcef
|
cd /jcef
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#CMakeLists patching
|
#CMake patching
|
||||||
python3 /builder/patch_cmake.py CMakeLists.txt /builder/CMakeLists.txt.patch
|
python3 /builder/patch_cmake.py cmake/DownloadCEF.cmake
|
||||||
|
python3 /builder/patch_cmake.py CMakeLists.txt
|
||||||
|
|
||||||
# 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
|
||||||
|
|||||||
@@ -25,6 +25,10 @@ else
|
|||||||
cd /jcef
|
cd /jcef
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
#CMake patching
|
||||||
|
python3 /builder/patch_cmake.py cmake/DownloadCEF.cmake
|
||||||
|
python3 /builder/patch_cmake.py CMakeLists.txt
|
||||||
|
|
||||||
# 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.
|
||||||
|
|||||||
@@ -12,8 +12,8 @@ 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
|
||||||
:: CMakeLists patching
|
:: CMakeLists patching
|
||||||
python C:/patch_cmake.py CMakeLists.txt C:/CMakeLists.txt.patch
|
python C:/patch_cmake.py cmake/DownloadCEF.cmake
|
||||||
|
|
||||||
:: Prepare build dir
|
:: Prepare build dir
|
||||||
mkdir jcef_build && cd jcef_build
|
mkdir jcef_build && cd jcef_build
|
||||||
|
|||||||
Reference in New Issue
Block a user