Skip to content

Commit 736adce

Browse files
committed
WebKitGTK 2.26.1
1. Update patches for WebKitGTK 2.26 2. cmake upgrades to 3.10 for WebKit upstream mininal requirements changes and remove some patches for original WebKit FindICU.
1 parent 6d2bed6 commit 736adce

File tree

10 files changed

+38
-150
lines changed

10 files changed

+38
-150
lines changed

.circleci/config.yml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,13 +45,14 @@ jobs:
4545
rm -rf /tmp/android-ndk-tmp
4646
sdkmanager \
4747
"lldb;3.0" \
48-
"cmake;3.6.4111459"
48+
"cmake;3.10.2.4988404"
4949
- run:
5050
name: install subversion
5151
command: |
5252
sudo apt-get update
53-
sudo apt-get install coreutils realpath curl git subversion python-dev ruby gperf -y
54-
pyenv global 3.5.2
53+
sudo apt-get install coreutils realpath curl git subversion python3.5 python3.5-dev ruby gperf -y
54+
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.5 1
55+
pyenv global system
5556
- run:
5657
name: upgrade node
5758
command: |

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "jsc-android",
3-
"version": "245459.0.0",
3+
"version": "250230.0.0",
44
"description": "Pre-build version of JavaScriptCore to be used by React Native apps",
55
"repository": {
66
"type": "git",
@@ -26,7 +26,7 @@
2626
"start": "./scripts/start.sh"
2727
},
2828
"config": {
29-
"webkitGTK": "2.24.2",
29+
"webkitGTK": "2.26.1",
3030
"chromiumICUCommit": "64e5d7d43a1ff205e3787ab6150bbc1a1837332b"
3131
}
3232
}

patches/icu.patch

Lines changed: 0 additions & 46 deletions
This file was deleted.

patches/jsc_icu_integrate.patch

Lines changed: 8 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -1,64 +1,12 @@
1-
diff -aur target-org/webkit/Source/cmake/FindICU.cmake target/webkit/Source/cmake/FindICU.cmake
2-
--- target-org/webkit/Source/cmake/FindICU.cmake 2019-03-26 11:25:17.000000000 +0800
3-
+++ target/webkit/Source/cmake/FindICU.cmake 2019-03-26 11:30:34.000000000 +0800
4-
@@ -16,19 +16,15 @@
5-
find_path(
6-
ICU_INCLUDE_DIR
7-
NAMES unicode/utypes.h
8-
- HINTS ${PC_ICU_INCLUDE_DIRS}
9-
- ${PC_ICU_INCLUDEDIR}
10-
- ${WEBKIT_LIBRARIES_INCLUDE_DIR}
11-
+ HINTS ${WEBKIT_LIBRARIES_INCLUDE_DIR}
12-
DOC "Include directory for the ICU library")
13-
mark_as_advanced(ICU_INCLUDE_DIR)
14-
15-
# Look for the library.
16-
find_library(
17-
ICU_LIBRARY
18-
- NAMES libicuuc cygicuuc cygicuuc32 icuuc
19-
- HINTS ${PC_ICU_LIBRARY_DIRS}
20-
- ${PC_ICU_LIBDIR}
21-
- ${WEBKIT_LIBRARIES_LINK_DIR}
22-
+ NAMES icuuc_jsc
23-
+ HINTS ${WEBKIT_LIBRARIES_LINK_DIR}
24-
DOC "Libraries to link against for the common parts of ICU")
25-
mark_as_advanced(ICU_LIBRARY)
26-
27-
@@ -51,10 +47,8 @@
28-
pkg_check_modules(PC_ICU_I18N icu-i18n)
29-
find_library(
30-
ICU_I18N_LIBRARY
31-
- NAMES icui18n libicui18n libicuin cygicuin cygicuin32 icuin
32-
- HINTS ${PC_ICU_I18N_LIBRARY_DIRS}
33-
- ${PC_ICU_I18N_LIBDIR}
34-
- ${WEBKIT_LIBRARIES_LINK_DIR}
35-
+ NAMES icui18n_jsc
36-
+ HINTS ${WEBKIT_LIBRARIES_LINK_DIR}
37-
DOC "Libraries to link against for ICU internationalization")
38-
mark_as_advanced(ICU_I18N_LIBRARY)
39-
if (ICU_I18N_LIBRARY)
40-
@@ -68,10 +62,8 @@
41-
# Look for the ICU data libraries
42-
find_library(
43-
ICU_DATA_LIBRARY
44-
- NAMES icudata libicudata cygicudata cygicudata32
45-
- HINTS ${PC_ICU_I18N_LIBRARY_DIRS}
46-
- ${PC_ICU_I18N_LIBDIR}
47-
- ${WEBKIT_LIBRARIES_LINK_DIR}
48-
+ NAMES icudata_jsc
49-
+ HINTS ${WEBKIT_LIBRARIES_LINK_DIR}
50-
DOC "Libraries to link against for ICU data")
51-
mark_as_advanced(ICU_DATA_LIBRARY)
52-
if (ICU_DATA_LIBRARY)
531
diff -aur target-org/webkit/Source/JavaScriptCore/CMakeLists.txt target/webkit/Source/JavaScriptCore/CMakeLists.txt
54-
--- target-org/webkit/Source/JavaScriptCore/CMakeLists.txt 2018-07-25 09:56:23.662494914 +0200
55-
+++ target/webkit/Source/JavaScriptCore/CMakeLists.txt 2018-07-18 12:55:24.726736260 +0200
56-
@@ -120,6 +120,8 @@
57-
set(JavaScriptCore_LIBRARIES
58-
WTF${DEBUG_SUFFIX}
59-
${ICU_I18N_LIBRARIES}
60-
+ ${ICU_LIBRARIES}
61-
+ ${ICU_DATA_LIBRARIES}
2+
--- target-org/webkit/Source/JavaScriptCore/CMakeLists.txt 2019-08-21 08:24:27.000000000 +0800
3+
+++ target/webkit/Source/JavaScriptCore/CMakeLists.txt 2019-09-17 13:54:19.000000000 +0800
4+
@@ -118,6 +118,8 @@
5+
WebKit::WTF
626
)
637

8+
+list(APPEND JavaScriptCore_LIBRARIES ${ICU_LIBRARIES} ${ICU_DATA_LIBRARIES})
9+
+
6410
if (USE_CAPSTONE)
11+
list(APPEND JavaScriptCore_LIBRARIES capstone)
12+
endif ()

patches/jsc_startup_log_version.patch

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,16 @@ diff -aur target-org/webkit/Source/JavaScriptCore/API/JSBase.cpp target/webkit/S
1111
+void printVersion() {
1212
+ __android_log_print(3, "JavaScriptCore.Version", "%s", JSC_VERSION);
1313
+}
14-
--- target-org/webkit/Source/JavaScriptCore/CMakeLists.txt 2019-03-26 13:04:34.000000000 +0800
15-
+++ target/webkit/Source/JavaScriptCore/CMakeLists.txt 2019-03-26 13:01:41.000000000 +0800
16-
@@ -122,7 +122,9 @@
17-
${ICU_I18N_LIBRARIES}
18-
${ICU_LIBRARIES}
19-
${ICU_DATA_LIBRARIES}
20-
+ log
21-
)
22-
+add_definitions(-DJSC_VERSION="${JSC_VERSION}")
14+
diff -aur target-org/webkit/Source/JavaScriptCore/CMakeLists.txt target/webkit/Source/JavaScriptCore/CMakeLists.txt
15+
--- target-org/webkit/Source/JavaScriptCore/CMakeLists.txt 2019-09-17 13:57:03.000000000 +0800
16+
+++ target/webkit/Source/JavaScriptCore/CMakeLists.txt 2019-09-17 13:57:08.000000000 +0800
17+
@@ -120,6 +120,9 @@
18+
19+
list(APPEND JavaScriptCore_LIBRARIES ${ICU_LIBRARIES} ${ICU_DATA_LIBRARIES})
2320

21+
+list(APPEND JavaScriptCore_LIBRARIES log)
22+
+add_definitions(-DJSC_VERSION="${JSC_VERSION}")
23+
+
2424
if (USE_CAPSTONE)
2525
list(APPEND JavaScriptCore_LIBRARIES capstone)
26+
endif ()

scripts/compile/all.sh

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,15 +19,13 @@ compile() {
1919
do
2020
export ANDROID_API=$ANDROID_API_FOR_ABI_32
2121
export JSC_ARCH=$arch
22-
export ENABLE_COMPAT=1
2322
compile_arch
2423
done
2524

2625
for arch in arm64 x86_64
2726
do
2827
export ANDROID_API=$ANDROID_API_FOR_ABI_64
2928
export JSC_ARCH=$arch
30-
export ENABLE_COMPAT=0
3129
compile_arch
3230
done
3331
}

scripts/compile/icu.sh

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ cd $BUILD_DIR
1717

1818
CROSS_BUILD_DIR=$(realpath $TARGETDIR/icu/host)
1919
PATH=$TOOLCHAIN_DIR/bin:$PATH
20+
INSTALL_DIR=${BUILD_DIR}/prebuilts
2021

2122
if [[ "$BUILD_TYPE" = "Release" ]]
2223
then
@@ -26,7 +27,7 @@ else
2627
fi
2728

2829
ICU_DATA_FILTER_FILE="${TARGETDIR}/icu/filters/android.json" \
29-
$TARGETDIR/icu/source/configure --prefix=$(pwd)/prebuilts \
30+
$TARGETDIR/icu/source/configure --prefix=${INSTALL_DIR} \
3031
$BUILD_TYPE_CONFIG \
3132
--host=$CROSS_COMPILE_PLATFORM \
3233
--enable-static=yes \
@@ -49,9 +50,8 @@ $TARGETDIR/icu/source/configure --prefix=$(pwd)/prebuilts \
4950
RINLIB=$CROSS_COMPILE_PLATFORM-ranlib \
5051
--with-data-packaging=static
5152

52-
make -j5
53+
make -j5 install
5354

5455
if ! [[ $ENABLE_INTL ]]; then
55-
rm lib/libicui18n_jsc.a
56-
cp stubdata/libicudata_jsc.a lib/
56+
cp stubdata/libicudata.a ${INSTALL_DIR}/lib/
5757
fi

scripts/compile/jsc.sh

Lines changed: 8 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ CMAKE_CXX_FLAGS=" \
1414
$SWITCH_JSC_CFLAGS_COMPAT \
1515
$JSC_CFLAGS \
1616
$PLATFORM_CFLAGS \
17-
-I$TARGETDIR/icu/source/i18n \
1817
"
1918

2019
CMAKE_LD_FLAGS=" \
@@ -25,14 +24,7 @@ $JSC_LDFLAGS \
2524
$PLATFORM_LDFLAGS \
2625
"
2726

28-
export AR=$CROSS_COMPILE_PLATFORM-ar
29-
export AS=$CROSS_COMPILE_PLATFORM-as
30-
export CC=$CROSS_COMPILE_PLATFORM_CC-clang
31-
export CXX=$CROSS_COMPILE_PLATFORM_CC-clang++
32-
export LD=$CROSS_COMPILE_PLATFORM-ld
33-
export STRIP=$CROSS_COMPILE_PLATFORM-strip
34-
35-
ARCH_NAME_PLATFORM_arm="arm"
27+
ARCH_NAME_PLATFORM_arm="armv7-a"
3628
ARCH_NAME_PLATFORM_arm64="aarch64"
3729
ARCH_NAME_PLATFORM_x86="i686"
3830
ARCH_NAME_PLATFORM_x86_64="x86_64"
@@ -71,18 +63,12 @@ $TARGETDIR/webkit/Tools/Scripts/build-webkit \
7163
--no-xslt \
7264
--no-netscape-plugin-api \
7365
--no-tools \
74-
--cmakeargs="-DCMAKE_SYSTEM_NAME=Android \
75-
$SWITCH_BUILD_WEBKIT_CMAKE_ARGS_COMPAT \
76-
-DCMAKE_SYSTEM_VERSION=$ANDROID_API \
77-
-DCMAKE_SYSTEM_PROCESSOR=$ARCH_NAME \
78-
-DCMAKE_ANDROID_STANDALONE_TOOLCHAIN=$TOOLCHAIN_DIR \
79-
-DWEBKIT_LIBRARIES_INCLUDE_DIR=$TARGETDIR/icu/source/common \
80-
-DWEBKIT_LIBRARIES_LINK_DIR=$TARGETDIR/icu/${CROSS_COMPILE_PLATFORM}-${FLAVOR}/lib \
81-
-DCMAKE_C_COMPILER=$CROSS_COMPILE_PLATFORM_CC-clang \
82-
-DCMAKE_CXX_COMPILER=$CROSS_COMPILE_PLATFORM_CC-clang++ \
83-
-DCMAKE_AR=$TOOLCHAIN_DIR/bin/$CROSS_COMPILE_PLATFORM-ar \
84-
-DCMAKE_SYSROOT=$TOOLCHAIN_DIR/sysroot \
85-
-DCMAKE_SYSROOT_COMPILE=$TOOLCHAIN_DIR/sysroot \
66+
--cmakeargs="-DCMAKE_TOOLCHAIN_FILE=${ANDROID_NDK}/build/cmake/android.toolchain.cmake \
67+
-DANDROID_ABI=${JNI_ARCH} \
68+
-DANDROID_NATIVE_API_LEVEL=${ANDROID_API} \
69+
-DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=BOTH \
70+
-DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=BOTH \
71+
-DICU_ROOT=${TARGETDIR}/icu/${CROSS_COMPILE_PLATFORM}-${FLAVOR}/prebuilts \
8672
-DCMAKE_CXX_FLAGS='${CMAKE_CXX_FLAGS} $COMMON_CXXFLAGS $CMAKE_CXX_FLAGS' \
8773
-DCMAKE_C_FLAGS='${CMAKE_C_FLAGS} $CMAKE_CXX_FLAGS' \
8874
-DCMAKE_C_FLAGS_DEBUG='${DEBUG_SYMBOL_LEVEL}' \
@@ -104,7 +90,7 @@ mkdir -p $INSTALL_UNSTRIPPED_DIR_I18N/$JNI_ARCH
10490
mkdir -p $INSTALL_DIR_I18N/$JNI_ARCH
10591
cp $TARGETDIR/webkit/WebKitBuild/$BUILD_TYPE/lib/libjsc.so $INSTALL_UNSTRIPPED_DIR_I18N/$JNI_ARCH
10692
cp $TARGETDIR/webkit/WebKitBuild/$BUILD_TYPE/lib/libjsc.so $INSTALL_DIR_I18N/$JNI_ARCH
107-
$TOOLCHAIN_BIN_STRIP $INSTALL_DIR_I18N/$JNI_ARCH/libjsc.so
93+
$TOOLCHAIN_DIR/$CROSS_COMPILE_PLATFORM/bin/strip $INSTALL_DIR_I18N/$JNI_ARCH/libjsc.so
10894
mv $TARGETDIR/webkit/WebKitBuild $TARGETDIR/webkit/${CROSS_COMPILE_PLATFORM}-${FLAVOR}
10995

11096
cp $TOOLCHAIN_DIR/sysroot/usr/lib/$CROSS_COMPILE_PLATFORM/libc++_shared.so $INSTALL_CPPRUNTIME_DIR

scripts/patch.sh

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,7 @@ PATCHES_DIR=$ROOTDIR/patches
55
# Patchset management that manage files by commented purpose
66
######################################################################################
77
ICU_PATCHSET=(
8-
# Basic build setup for JSC on Android
9-
"icu.patch"
8+
# Add ICU patchset if needed
109
)
1110

1211
JSC_PATCHSET=(

test/android/gradle.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
# The setting is particularly useful for tweaking memory settings.
1212
# Default value: -Xmx10248m -XX:MaxPermSize=256m
1313
# org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
14+
org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m
1415

1516
# When configured, Gradle will run in incubating parallel mode.
1617
# This option should only be used with decoupled projects. More details, visit

0 commit comments

Comments
 (0)