Skip to content

Commit 6a38c35

Browse files
committed
update the overlay port
1 parent c95e0f2 commit 6a38c35

11 files changed

+96
-142
lines changed

.github/workflows/build-javascriptcore.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,4 @@ jobs:
1212
ls vcpkg\scripts\buildsystems\vcpkg.cmake
1313
- name: Build JavaScriptCore
1414
run: |
15-
cmake -B build -S . -DCMAKE_TOOLCHAIN_FILE="vcpkg\scripts\buildsystems\vcpkg.cmake"
15+
cmake --preset release -DCMAKE_TOOLCHAIN_FILE="vcpkg\scripts\buildsystems\vcpkg.cmake"

CMakeLists.txt

+23-1
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,26 @@ cmake_minimum_required(VERSION 3.18)
22

33
project(PublishJavaScriptCore)
44

5-
find_package(JavaScriptCore REQUIRED)
5+
add_library(JavaScriptCore SHARED IMPORTED)
6+
set_property(TARGET JavaScriptCore PROPERTY
7+
IMPORTED_LOCATION_RELEASE
8+
${CMAKE_CURRENT_BINARY_DIR}/vcpkg_installed/x64-windows/bin/JavaScriptCore.dll)
9+
set_property(TARGET JavaScriptCore PROPERTY
10+
IMPORTED_IMPLIB
11+
${CMAKE_CURRENT_BINARY_DIR}/vcpkg_installed/x64-windows/lib/JavaScriptCore.lib)
12+
set_property(TARGET JavaScriptCore PROPERTY
13+
IMPORTED_LOCATION_DEBUG
14+
${CMAKE_CURRENT_BINARY_DIR}/vcpkg_installed/x64-windows/debug/bin/JavaScriptCore.dll)
15+
set_property(TARGET JavaScriptCore PROPERTY
16+
IMPORTED_IMPLIB_DEBUG
17+
${CMAKE_CURRENT_BINARY_DIR}/vcpkg_installed/x64-windows/debug/lib/JavaScriptCore.lib)
18+
set_property(TARGET JavaScriptCore PROPERTY
19+
INTERFACE_INCLUDE_DIRECTORIES
20+
${CMAKE_CURRENT_BINARY_DIR}/vcpkg_installed/x64-windows/include)
21+
22+
add_executable(TestJavaScriptCore main.cpp)
23+
target_link_libraries(TestJavaScriptCore JavaScriptCore)
24+
25+
include(GNUInstallDirs)
26+
install(TARGETS TestJavaScriptCore
27+
RUNTIME_DEPENDENCIES)

CMakePresets.json

+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
{
2+
"version": 3,
3+
"configurePresets": [
4+
{
5+
"name": "release",
6+
"binaryDir": "build/release",
7+
"cacheVariables": {
8+
"CMAKE_BUILD_TYPE": {
9+
"type": "STRING",
10+
"value": "Release"
11+
}
12+
}
13+
}
14+
],
15+
"buildPresets": [
16+
{
17+
"name": "release",
18+
"configurePreset": "release"
19+
}
20+
]
21+
}
22+

main.cpp

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
#include <iostream>
2+
#include <JavaScriptCore/JavaScript.h>
3+
4+
int main() {
5+
JSStringRef string = JSStringCreateWithUTF8CString("Hello JSCore!");
6+
int length = JSStringGetLength(string);
7+
std::cout << "Length of the String: " << length << std::endl;
8+
char buffer[20];
9+
JSStringGetUTF8CString(string, buffer, JSStringGetLength(string) + 1);
10+
std::cout << "String: " << buffer << std::endl;
11+
JSStringRelease(string);
12+
return 0;
13+
}
14+

overlay-ports/javascriptcore/disable_api_tests.patch

-17
This file was deleted.

overlay-ports/javascriptcore/modify_install_rules.patch

+15-28
Original file line numberDiff line numberDiff line change
@@ -12,43 +12,30 @@ index aa99898dc4f1..17db4640001e 100644
1212

1313
# Remove this cmake_policy() after upgrading cmake_minimum_required() to 3.20.
1414
diff --git a/Source/JavaScriptCore/CMakeLists.txt b/Source/JavaScriptCore/CMakeLists.txt
15-
index a64c09b5d470..80c45bd91c17 100644
15+
index 5fbb9a3bc110..cab1c6927b41 100644
1616
--- a/Source/JavaScriptCore/CMakeLists.txt
1717
+++ b/Source/JavaScriptCore/CMakeLists.txt
18-
@@ -1490,6 +1490,13 @@ WEBKIT_COPY_FILES(JavaScriptCore_CopyHeaders
19-
FLATTENED
20-
)
18+
@@ -1569,10 +1569,22 @@ if (NOT "${PORT}" STREQUAL "Mac")
19+
if (${JavaScriptCore_LIBRARY_TYPE} STREQUAL "SHARED")
20+
WEBKIT_POPULATE_LIBRARY_VERSION(JAVASCRIPTCORE)
21+
set_target_properties(JavaScriptCore PROPERTIES VERSION ${JAVASCRIPTCORE_VERSION} SOVERSION ${JAVASCRIPTCORE_VERSION_MAJOR})
22+
- install(TARGETS JavaScriptCore DESTINATION "${LIB_INSTALL_DIR}")
23+
endif ()
24+
endif ()
2125

2226
+target_sources(JavaScriptCore PUBLIC
2327
+ FILE_SET install_headers
2428
+ TYPE HEADERS
2529
+ BASE_DIRS API
2630
+ FILES ${JavaScriptCore_PUBLIC_FRAMEWORK_HEADERS}
2731
+)
28-
+
29-
WEBKIT_COPY_FILES(JavaScriptCore_CopyPrivateHeaders
30-
DESTINATION ${JavaScriptCore_PRIVATE_FRAMEWORK_HEADERS_DIR}/JavaScriptCore
31-
FILES ${JavaScriptCore_PRIVATE_FRAMEWORK_HEADERS}
32-
@@ -1548,9 +1555,15 @@ if (NOT "${PORT}" STREQUAL "Mac")
33-
if (${JavaScriptCore_LIBRARY_TYPE} STREQUAL "SHARED")
34-
WEBKIT_POPULATE_LIBRARY_VERSION(JAVASCRIPTCORE)
35-
set_target_properties(JavaScriptCore PROPERTIES VERSION ${JAVASCRIPTCORE_VERSION} SOVERSION ${JAVASCRIPTCORE_VERSION_MAJOR})
36-
- install(TARGETS JavaScriptCore DESTINATION "${LIB_INSTALL_DIR}")
37-
endif ()
38-
endif ()
39-
+install(
40-
+ TARGETS JavaScriptCore
41-
+ ARCHIVE DESTINATION "${LIB_INSTALL_DIR}"
42-
+ LIBRARY DESTINATION "${LIB_INSTALL_DIR}"
43-
+ RUNTIME DESTINATION "${LIBEXEC_INSTALL_DIR}"
44-
+ FILE_SET install_headers DESTINATION "${CMAKE_INSTALL_PREFIX}/include/JavaScriptCore"
32+
+install(TARGETS JavaScriptCore
33+
+ ARCHIVE DESTINATION "${LIB_INSTALL_DIR}"
34+
+ LIBRARY DESTINATION "${LIB_INSTALL_DIR}"
35+
+ RUNTIME DESTINATION "${LIBEXEC_INSTALL_DIR}"
36+
+ FILE_SET install_headers DESTINATION "${CMAKE_INSTALL_PREFIX}/include/JavaScriptCore"
4537
+)
46-
38+
+
4739
# Force staging of shared scripts, even if they aren't directly used to build JavaScriptCore.
4840

49-
@@ -1565,4 +1578,4 @@ if (CMAKE_GENERATOR MATCHES "Visual Studio")
50-
add_dependencies(JavaScriptCoreSharedScripts JSCBuiltins)
51-
endif ()
52-
53-
-add_subdirectory(shell)
54-
+# add_subdirectory(shell)
41+
add_custom_target(JavaScriptCoreSharedScripts DEPENDS ${JavaScriptCore_SCRIPTS})

overlay-ports/javascriptcore/portfile.cmake

+3-5
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,13 @@
11
vcpkg_from_github(
22
OUT_SOURCE_PATH SOURCE_PATH
33
REPO webkit/webkit
4-
REF WebKit-7616.1.27.211.1
5-
SHA512 aea5feb085f9adaa6efbbb840b2bdbc677c69c82c53c611ef9b527ae4ea2490a983dfdc55eb8aa471ab9975b748ea51d2cf9f2c853454904018ab8bb0ec77ad0
4+
REF a07d3e4e2067578a818215d89f5742b5e9707389
5+
SHA512 f7cfe2e1489e4151311811b9d8f5ee1a9850099d5035e646260fd313816d8d3407517d81b8cb851323d08dcb0915b6cfa783636b91130516e5c4942527d10821
66
HEAD_REF main
77
PATCHES
88
remove_webkit_find_package.patch
99
tune_jsconly_port_for_windows.patch
10-
tune_wtf.patch
1110
modify_install_rules.patch
12-
disable_api_tests.patch
1311
)
1412

1513
vcpkg_find_acquire_program(RUBY)
@@ -27,7 +25,7 @@ vcpkg_add_to_path("${PERL_DIR}")
2725
if (VCPKG_LIBRARY_LINKAGE STREQUAL "static")
2826
set(ENABLE_STATIC_JSC ON)
2927
else()
30-
set(ENABLE_STATIC_JSC ON)
28+
set(ENABLE_STATIC_JSC OFF)
3129
endif()
3230

3331
vcpkg_cmake_configure(

overlay-ports/javascriptcore/remove_webkit_find_package.patch

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
diff --git a/Source/cmake/WebKitCommon.cmake b/Source/cmake/WebKitCommon.cmake
2-
index d85ee1813b4b..1670ea855ebf 100644
2+
index f20a8d06d914..16c7846511ef 100644
33
--- a/Source/cmake/WebKitCommon.cmake
44
+++ b/Source/cmake/WebKitCommon.cmake
5-
@@ -222,7 +222,7 @@ if (NOT HAS_RUN_WEBKIT_COMMON)
5+
@@ -231,7 +231,7 @@ if (NOT HAS_RUN_WEBKIT_COMMON)
66
include(WebKitCompilerFlags)
77
include(WebKitStaticAnalysis)
88
include(WebKitFeatures)
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,22 @@
11
diff --git a/Source/cmake/OptionsJSCOnly.cmake b/Source/cmake/OptionsJSCOnly.cmake
2-
index ff391d7e0849..e05f2a3adeef 100644
2+
index 31e353ded188..218c34c24338 100644
33
--- a/Source/cmake/OptionsJSCOnly.cmake
44
+++ b/Source/cmake/OptionsJSCOnly.cmake
5-
@@ -1,4 +1,6 @@
6-
-find_package(Threads REQUIRED)
7-
+if (NOT WIN32)
8-
+ find_package(Threads REQUIRED)
9-
+endif ()
5+
@@ -41,12 +41,7 @@ set(ENABLE_WEBKIT_LEGACY OFF)
6+
set(ENABLE_WEBKIT OFF)
7+
set(ENABLE_WEBINSPECTORUI OFF)
8+
set(ENABLE_WEBGL OFF)
9+
-
10+
-if (WIN32)
11+
- set(ENABLE_API_TESTS OFF)
12+
-else ()
13+
- set(ENABLE_API_TESTS ON)
14+
-endif ()
15+
+set(ENABLE_API_TESTS OFF)
1016

11-
if (MSVC)
12-
include(OptionsMSVC)
13-
@@ -55,10 +57,15 @@ endif ()
14-
15-
# FIXME: JSCOnly on WIN32 seems to only work with fully static build
16-
# https://bugs.webkit.org/show_bug.cgi?id=172862
17-
-if (NOT ENABLE_STATIC_JSC AND NOT WIN32)
18-
- set(JavaScriptCore_LIBRARY_TYPE SHARED)
19-
- set(bmalloc_LIBRARY_TYPE OBJECT)
20-
- set(WTF_LIBRARY_TYPE OBJECT)
21-
+if (NOT ENABLE_STATIC_JSC)
22-
+ if (NOT WIN32)
23-
+ set(JavaScriptCore_LIBRARY_TYPE SHARED)
24-
+ set(bmalloc_LIBRARY_TYPE OBJECT)
25-
+ set(WTF_LIBRARY_TYPE OBJECT)
26-
+ else ()
27-
+ set(JavaScriptCore_LIBRARY_TYPE SHARED)
28-
+ set(WTF_LIBRARY_TYPE SHARED)
29-
+ endif ()
30-
endif ()
31-
32-
if (WIN32)
33-
@@ -74,7 +81,7 @@ if (WIN32)
17+
if (WTF_CPU_ARM OR WTF_CPU_MIPS)
18+
SET_AND_EXPOSE_TO_BUILD(USE_CAPSTONE TRUE)
19+
@@ -71,7 +66,7 @@ if (WIN32)
3420
endif ()
3521
endif ()
3622

@@ -39,15 +25,3 @@ index ff391d7e0849..e05f2a3adeef 100644
3925

4026
if (WTF_CPU_X86_64)
4127
set_property(GLOBAL PROPERTY FIND_LIBRARY_USE_LIB32_PATHS OFF)
42-
@@ -94,7 +101,10 @@ if (WIN32)
43-
endif ()
44-
45-
string(TOLOWER ${EVENT_LOOP_TYPE} LOWERCASE_EVENT_LOOP_TYPE)
46-
-if (LOWERCASE_EVENT_LOOP_TYPE STREQUAL "glib")
47-
+if (WIN32)
48-
+ SET_AND_EXPOSE_TO_BUILD(USE_GENERIC_EVENT_LOOP 0)
49-
+ SET_AND_EXPOSE_TO_BUILD(WTF_DEFAULT_EVENT_LOOP 1)
50-
+elseif (LOWERCASE_EVENT_LOOP_TYPE STREQUAL "glib")
51-
find_package(GLIB 2.36 REQUIRED COMPONENTS gio gio-unix gobject)
52-
SET_AND_EXPOSE_TO_BUILD(USE_GLIB 1)
53-
SET_AND_EXPOSE_TO_BUILD(USE_GLIB_EVENT_LOOP 1)

overlay-ports/javascriptcore/tune_wtf.patch

-46
This file was deleted.

overlay-ports/javascriptcore/vcpkg.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "javascriptcore",
3-
"version": "2023-09-15",
3+
"version": "2024-02-01",
44
"description": "JavaScriptCore is the built-in JavaScript engine for WebKit, which implements ECMAScript as in ECMA-262 specification.",
55
"homepage": "https://webkit.org/",
66
"license": null,

0 commit comments

Comments
 (0)