Skip to content

Commit c744b88

Browse files
committed
Added support for libjavascriptcoregtk-6.0.
Appears Apple might be using an older version of the JavaScriptCore API. Remove unused JSCore4GTK functions.
1 parent 6444b36 commit c744b88

File tree

6 files changed

+493
-151
lines changed

6 files changed

+493
-151
lines changed

.github/workflows/ubuntu.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ jobs:
2525
compiler: clang
2626
cxx-compiler: clang++
2727
cmake-args: -G Ninja -D PROXYRES_CODE_COVERAGE=ON
28-
packages: llvm-14 libjavascriptcoregtk-4.0-dev libgconf2-dev
28+
packages: llvm-14 libjavascriptcoregtk-4.1-dev libgconf2-dev
2929
gcov-exec: llvm-cov-14 gcov
3030
codecov: ubuntu
3131

@@ -34,7 +34,7 @@ jobs:
3434
compiler: clang
3535
cxx-compiler: clang++
3636
cmake-args: -G Ninja -D PROXYRES_CODE_COVERAGE=ON
37-
packages: llvm-15 libjavascriptcoregtk-4.1-dev gsettings-desktop-schemas
37+
packages: llvm-15 libjavascriptcoregtk-6.0-dev gsettings-desktop-schemas
3838
gcov-exec: llvm-cov-15 gcov
3939
codecov: ubuntu
4040

@@ -43,7 +43,7 @@ jobs:
4343
compiler: clang
4444
cxx-compiler: clang++
4545
cmake-args: -G Ninja -D PROXYRES_CODE_COVERAGE=ON -D PROXYRES_CURL=ON
46-
packages: llvm-15 libjavascriptcoregtk-4.1-dev gsettings-desktop-schemas
46+
packages: llvm-15 libjavascriptcoregtk-6.0-dev gsettings-desktop-schemas
4747
gcov-exec: llvm-cov-15 gcov
4848
codecov: ubuntu_curl
4949

CMakeLists.txt

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,7 @@ elseif(UNIX)
120120
if (GConf_FOUND)
121121
list(APPEND PROXYRES_SRCS config_gnome2.c config_gnome2.h)
122122
endif()
123+
123124
list(APPEND PROXYRES_SRCS
124125
config_env.c
125126
config_env.h
@@ -128,8 +129,8 @@ elseif(UNIX)
128129
config_kde.c
129130
config_kde.h
130131
event_pthread.c
131-
execute_jscore.c
132-
execute_jscore.h
132+
execute_jsc.c
133+
execute_jsc.h
133134
mutex_pthread.c
134135
net_adapter_linux.c
135136
resolver_gnome3.c
@@ -186,7 +187,7 @@ if(PROXYRES_CODE_COVERAGE AND NOT MSVC)
186187
endif()
187188

188189
add_library(proxyres ${PROXYRES_SRCS})
189-
set_property(TARGET proxyres PROPERTY C_STANDARD 99)
190+
set_property(TARGET proxyres PROPERTY C_STANDARD 11)
190191
target_include_directories(proxyres PRIVATE
191192
${CMAKE_CURRENT_SOURCE_DIR}
192193
${CMAKE_CURRENT_SOURCE_DIR}/include/proxyres)
@@ -284,6 +285,8 @@ elseif(APPLE)
284285
target_link_libraries(proxyres ${CMAKE_THREAD_LIBS_INIT})
285286

286287
set_target_properties(proxyres PROPERTIES LINK_FLAGS -Wl,-F/Library/Frameworks)
288+
289+
target_compile_definitions(proxyres PRIVATE HAVE_JSCORE)
287290
elseif(UNIX)
288291
pkg_check_modules(deps REQUIRED IMPORTED_TARGET glib-2.0)
289292
target_link_libraries(proxyres PkgConfig::deps)
@@ -294,9 +297,18 @@ elseif(UNIX)
294297
target_compile_definitions(proxyres PRIVATE HAVE_GCONF)
295298
endif()
296299

297-
pkg_search_module(JSCoreGTK REQUIRED javascriptcoregtk-4.1 javascriptcoregtk-4.0 javascriptcoregtk-3.0 javascriptcoregtk-1.0)
298-
# Don't link libraries at compile time since we dynamically load them at runtime
299-
target_include_directories(proxyres PRIVATE ${JSCoreGTK_INCLUDE_DIRS})
300+
pkg_search_module(JSCoreGTK REQUIRED javascriptcoregtk-6.0 javascriptcoregtk-4.1 javascriptcoregtk-4.0)
301+
if(JSCoreGTK_FOUND)
302+
# Don't link libraries at compile time since we dynamically load them at runtime
303+
target_include_directories(proxyres PRIVATE ${JSCoreGTK_INCLUDE_DIRS})
304+
target_compile_definitions(proxyres PRIVATE HAVE_JSC)
305+
306+
pkg_check_modules(GObject REQUIRED gobject-2.0)
307+
if(GObject_FOUND)
308+
target_include_directories(proxyres PRIVATE ${GObject_INCLUDE_DIRS})
309+
target_link_libraries(proxyres ${GObject_LIBRARIES})
310+
endif()
311+
endif()
300312

301313
find_package(Threads REQUIRED)
302314
target_compile_definitions(proxyres PRIVATE HAVE_PTHREADS)

execute.c

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,12 @@
1010
# include "execute_wsh.h"
1111
# endif
1212
#else
13-
# include "execute_jscore.h"
13+
# ifdef HAVE_JSC
14+
# include "execute_jsc.h"
15+
# endif
16+
# ifdef HAVE_JSCORE
17+
# include "execute_jscore.h"
18+
# endif
1419
#endif
1520

1621
typedef struct g_proxy_execute_s {
@@ -64,8 +69,14 @@ bool proxy_execute_global_init(void) {
6469
g_proxy_execute.proxy_execute_i = proxy_execute_wsh_get_interface();
6570
# endif
6671
#else
67-
if (proxy_execute_jscore_global_init())
72+
# ifdef HAVE_JSC
73+
if (proxy_execute_jsc_global_init())
74+
g_proxy_execute.proxy_execute_i = proxy_execute_jsc_get_interface();
75+
# endif
76+
# ifdef HAVE_JSCORE
77+
if (!g_proxy_execute.proxy_execute_i && proxy_execute_jscore_global_init())
6878
g_proxy_execute.proxy_execute_i = proxy_execute_jscore_get_interface();
79+
# endif
6980
#endif
7081
if (!g_proxy_execute.proxy_execute_i)
7182
return false;

0 commit comments

Comments
 (0)