Compare commits

..

12 Commits

Author SHA1 Message Date
Fritz Windisch
d9f079450b Set osx architectures 2023-08-07 18:16:05 +02:00
Fritz Windisch
40bc4315bc Manually set java home 2023-08-07 17:59:42 +02:00
Fritz Windisch
c2da6c8474 Manually set java home 2023-08-07 17:55:20 +02:00
Fritz Windisch
bfe55d1f9d Manually set java home 2023-08-07 17:49:41 +02:00
Fritz Windisch
465645a1dd Manually set java home 2023-08-07 17:33:10 +02:00
Fritz Windisch
286fcff999 Manually set java home 2023-08-07 17:21:12 +02:00
Fritz Windisch
70817e5648 Manually set java home 2023-08-07 17:16:34 +02:00
Fritz Windisch
422d2577d0 Manually set java home 2023-08-07 17:11:40 +02:00
Fritz Windisch
70be54d496 Patch further jetbrains changes 2023-08-07 17:04:03 +02:00
Fritz Windisch
fc7b23686b Patch further jetbrains changes 2023-08-07 16:54:01 +02:00
Fritz Windisch
625ddf50da Patch jetbrains download url 2023-08-07 16:42:31 +02:00
Fritz Windisch
fc16a1d087 Begin build scripts for jetbrains cef 2023-08-07 15:59:20 +02:00
16 changed files with 44 additions and 109 deletions

View File

@@ -207,9 +207,6 @@ jobs:
with:
java-version: '8'
distribution: 'adopt'
- uses: actions/setup-python@v5
with:
python-version: '3.10.11'
- name: Install Apple certificate
env:
BUILD_CERTIFICATE_BASE64: ${{ secrets.APPLE_BUILD_CERTIFICATE_BASE64 }}
@@ -277,9 +274,6 @@ jobs:
with:
java-version: '8'
distribution: 'adopt'
- uses: actions/setup-python@v5
with:
python-version: '3.10.11'
- name: Install Apple certificate
env:
BUILD_CERTIFICATE_BASE64: ${{ secrets.APPLE_BUILD_CERTIFICATE_BASE64 }}

View File

@@ -27,9 +27,6 @@ jobs:
with:
java-version: '8'
distribution: 'adopt'
- uses: actions/setup-python@v5
with:
python-version: '3.10.11'
- name: Install Apple certificate
env:
BUILD_CERTIFICATE_BASE64: ${{ secrets.APPLE_BUILD_CERTIFICATE_BASE64 }}

View File

@@ -27,9 +27,6 @@ jobs:
with:
java-version: '8'
distribution: 'adopt'
- uses: actions/setup-python@v5
with:
python-version: '3.10.11'
- name: Install Apple certificate
env:
BUILD_CERTIFICATE_BASE64: ${{ secrets.APPLE_BUILD_CERTIFICATE_BASE64 }}

View File

@@ -22,7 +22,6 @@ COPY natives /natives
#Copy cmake patching script
COPY scripts/patch_cmake.py .
COPY patch/CMakeLists.txt.patch .
#Copy and launch run script
COPY scripts/run_linux.sh .
@@ -32,7 +31,7 @@ RUN ./run_linux.sh
#Export built files
FROM scratch AS export-stage
COPY --from=stage /jcef/binary_distrib.tar.gz .
#COPY --from=stage /jcef/target target
#COPY --from=stage /jcef/third_party third_party
#COPY --from=stage /jcef/buildtools buildtools
#COPY --from=stage /jcef/jcef_build jcef_build
COPY --from=stage /jcef/target target
COPY --from=stage /jcef/third_party third_party
COPY --from=stage /jcef/buildtools buildtools
COPY --from=stage /jcef/jcef_build jcef_build

View File

@@ -19,6 +19,9 @@ WORKDIR /builder
#Copy existing sources, if any
COPY jcef /jcef
#Copy cmake patching script
COPY scripts/patch_cmake.py .
#Copy and launch run script
COPY scripts/run_linux_prebuild.sh .
RUN chmod +x run_linux_prebuild.sh

View File

@@ -4,7 +4,6 @@ WORKDIR C:/
#Copy cmake patching script
COPY scripts/patch_cmake.py .
COPY patch/CMakeLists.txt.patch .
#Copy and launch run script
COPY scripts/run_windows.bat .

View File

@@ -19,7 +19,7 @@
</tr>
<tr>
<td><b>Java</b></td>
<td>OpenJDK 11</td>
<td>OpenJDK 17</td>
<td>Oracle JDK 8</td>
<td>Microsoft JDK 11</td>
<td>Temurin JDK 8</td>
@@ -27,8 +27,8 @@
<tr>
<td><b>Compiler</b></td>
<td>GCC 10</td>
<td>VS 2019</td>
<td>VS 2019</td>
<td>VS 2022</td>
<td>VS 2022</td>
<td>Xcode 13</td>
</tr>
<tr>

View File

@@ -70,13 +70,9 @@ if [ -f "out/buildtools/clang-format" ]; then
fi
#Move jcef_build
if [ -f "out/jcef_build" ]; then
rm -rf jcef/jcef_build
mv out/jcef_build jcef/jcef_build
fi
rm -rf jcef/jcef_build
mv out/jcef_build jcef/jcef_build
#Move target to binary_distrib
if [ -f "out/target" ]; then
rm -rf jcef/binary_distrib
mv out/target jcef/binary_distrib
fi
rm -rf jcef/binary_distrib
mv out/target jcef/binary_distrib

View File

@@ -45,6 +45,10 @@ else
cd jcef
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.
# The `jcef_build` directory name is required by other JCEF tooling
# and should not be changed.
@@ -55,9 +59,9 @@ cd jcef_build
# MacOS: Generate amd64/arm64 Makefiles.
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
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
# Build native part using ninja.
ninja -j4

View File

@@ -28,7 +28,6 @@ chmod +x macosx_codesign_zip.sh
#Sign helpers
echo "Signing helpers..."
cd "$( dirname "$0" )"
codesign --force --options runtime --entitlements "$ENTITLEMENTS_HELPER" --sign "$2" --timestamp --verbose "$APP_DIR/$APP_NAME/$FRAMEWORKS_DIR/jcef Helper.app"
bash macosx_notarize.sh "$APP_DIR/$APP_NAME/$FRAMEWORKS_DIR/jcef Helper.app" "$2" $3 org.jcef.jcef.helper $4 $5 $6
codesign --force --options runtime --entitlements "$ENTITLEMENTS_HELPER" --sign "$2" --timestamp --verbose "$APP_DIR/$APP_NAME/$FRAMEWORKS_DIR/jcef Helper (GPU).app"
@@ -45,8 +44,9 @@ echo "Signing libraries and framework..."
codesign --force --options runtime --entitlements "$ENTITLEMENTS_BROWSER" --sign "$2" --timestamp --verbose "$APP_DIR/$APP_NAME/$FRAMEWORKS_DIR/$FRAMEWORK_NAME/Libraries/libEGL.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/Chromium Embedded Framework"
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
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/jogl-all-natives-macosx-universal.jar" "natives/macosx-universal/libnativewindow_awt.dylib" "$2"

View File

@@ -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()

View File

@@ -1,9 +1,3 @@
#!/bin/bash
PYTHON=python3
brew install ninja
"$PYTHON" -m pip install --ignore-installed six
"$PYTHON" -m pip list
echo "from six.moves import configparser" | "$PYTHON" && echo "Success importing stuff from six moves python module"

View File

@@ -1,35 +1,23 @@
#Small script to patch CMakeLists.txt files with custom build options
#Will replace file contents between two markers ("Determine the platform"
#and "Add this project's cmake")
#Usage: python patch_cmake.py <input> <patch>
#Small script to patch our cmake download locations
#Usage: python patch_cmake.py <file>
import sys
input = sys.argv[1]
patch = sys.argv[2]
print("Patching "+input+" to accept further build architectures...")
print("Patching "+input+"...")
f = open(input, "r")
p = open(patch, "r")
result = ""
inpatch = False
for x in f:
if x.startswith("# Determine the platform"):
inpatch = True
for y in p:
result += y
elif x.startswith("# Add this project's cmake"):
inpatch = False
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
result += x.replace("https://cache-redirector.jetbrains.com/intellij-jbr/", "https://cef-builds.spotifycdn.com/") \
.replace("_minimal", "") \
.replace(".zip", ".tar.bz2") \
.replace(".checksum", ".sha1") \
.replace("SHA256", "SHA1") \
.replace("x86_64", "amd64")
f.close()
p.close()
f = open(input, "w")
f.write(result)

View File

@@ -9,6 +9,9 @@ if [ ${TARGETARCH} == 'arm/v6' ]; then
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-armel
fi
export PATH=$PATH:/usr/lib/jvm/openjdk-17/bin
export JAVA_HOME=/usr/lib/jvm/openjdk-17
# Print some debug info
echo "-------------------------------------"
echo "JAVA_HOME: $JAVA_HOME"
@@ -26,10 +29,11 @@ if [ ! -f "/jcef/README.md" ]; then
else
echo "Found existing files to build"
cd /jcef
fi
fi
#CMakeLists patching
python3 /builder/patch_cmake.py CMakeLists.txt /builder/CMakeLists.txt.patch
#CMake patching
python3 /builder/patch_cmake.py cmake/DownloadCEF.cmake
python3 /builder/patch_cmake.py CMakeLists.txt
# Create and enter the `jcef_build` directory.
# The `jcef_build` directory name is required by other JCEF tooling

View File

@@ -25,6 +25,10 @@ else
cd /jcef
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.
# The `jcef_build` directory name is required by other JCEF tooling
# and should not be changed.

View File

@@ -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)
:BUILD
:: CMakeLists patching
python C:/patch_cmake.py CMakeLists.txt C:/CMakeLists.txt.patch
:: CMakeLists patching
python C:/patch_cmake.py cmake/DownloadCEF.cmake
:: Prepare build dir
mkdir jcef_build && cd jcef_build