Skip to content

Commit 83ffdba

Browse files
committed
Rework build definition
1 parent 6c06e9b commit 83ffdba

File tree

3 files changed

+34
-32
lines changed

3 files changed

+34
-32
lines changed

CMakeLists.txt

+23-20
Original file line numberDiff line numberDiff line change
@@ -2,76 +2,79 @@ cmake_minimum_required(VERSION 3.25)
22

33
find_package(cmake-fetch REQUIRED PATHS node_modules/cmake-fetch)
44

5-
project(qjs C)
5+
project(js C)
66

77
add_library(v8 INTERFACE)
88
add_library(c++ INTERFACE)
9+
add_library(js OBJECT)
910

1011
fetch_package("github:holepunchto/libjs" SOURCE_DIR js)
1112
fetch_package("github:holepunchto/quickjs#master")
1213

13-
add_library(qjs OBJECT)
14-
1514
set_target_properties(
16-
qjs
15+
js
1716
PROPERTIES
1817
C_STANDARD 99
1918
POSITION_INDEPENDENT_CODE ON
2019
)
2120

2221
target_sources(
23-
qjs
22+
js
2423
PRIVATE
25-
src/qjs.c
24+
src/js.c
2625
)
2726

2827
target_include_directories(
29-
qjs
28+
js
3029
PUBLIC
3130
include
32-
$<TARGET_PROPERTY:js,INTERFACE_INCLUDE_DIRECTORIES>
33-
$<TARGET_PROPERTY:quickjs,INTERFACE_INCLUDE_DIRECTORIES>
31+
PUBLIC
32+
${js}/include
3433
PRIVATE
34+
$<TARGET_PROPERTY:quickjs,INTERFACE_INCLUDE_DIRECTORIES>
35+
$<TARGET_PROPERTY:uv,INTERFACE_INCLUDE_DIRECTORIES>
3536
$<TARGET_PROPERTY:utf,INTERFACE_INCLUDE_DIRECTORIES>
3637
)
3738

38-
add_library(qjs_shared SHARED)
39+
add_library(js_shared SHARED)
3940

4041
set_target_properties(
41-
qjs_shared
42+
js_shared
4243
PROPERTIES
43-
OUTPUT_NAME qjs
44+
OUTPUT_NAME js
4445
WINDOWS_EXPORT_ALL_SYMBOLS ON
4546
)
4647

4748
target_link_libraries(
48-
qjs_shared
49+
js_shared
4950
PUBLIC
50-
qjs
5151
uv
5252
utf_shared
5353
quickjs_shared
54+
PRIVATE
55+
js
5456
)
5557

56-
add_library(qjs_static STATIC)
58+
add_library(js_static STATIC)
5759

5860
set_target_properties(
59-
qjs_static
61+
js_static
6062
PROPERTIES
61-
OUTPUT_NAME qjs
63+
OUTPUT_NAME js
6264
PREFIX lib
6365
)
6466

6567
target_link_libraries(
66-
qjs_static
68+
js_static
6769
PUBLIC
68-
qjs
6970
uv_a
7071
utf_static
7172
quickjs_static
73+
PRIVATE
74+
js
7275
)
7376

74-
install(TARGETS qjs_shared qjs_static)
77+
install(TARGETS js_shared js_static)
7578

7679
if(PROJECT_IS_TOP_LEVEL)
7780
enable_testing()

src/qjs.c src/js.c

+10-11
Original file line numberDiff line numberDiff line change
@@ -1309,12 +1309,13 @@ int
13091309
js_delete_reference(js_env_t *env, js_ref_t *reference) {
13101310
// Allow continuing even with a pending exception
13111311

1312-
if (JS_IsObject(reference->value) || JS_IsFunction(env->context, reference->value)) {
1313-
if (reference->count == 0) js__clear_weak_reference(env, reference);
1312+
if (reference->count == 0) {
1313+
if (JS_IsObject(reference->value) || JS_IsFunction(env->context, reference->value)) {
1314+
js__clear_weak_reference(env, reference);
1315+
}
13141316
}
13151317

13161318
JS_FreeValue(env->context, reference->value);
1317-
13181319
JS_FreeValue(env->context, reference->symbol);
13191320

13201321
free(reference);
@@ -1328,8 +1329,10 @@ js_reference_ref(js_env_t *env, js_ref_t *reference, uint32_t *result) {
13281329

13291330
reference->count++;
13301331

1331-
if (JS_IsObject(reference->value) || JS_IsFunction(env->context, reference->value)) {
1332-
if (reference->count == 1) js__clear_weak_reference(env, reference);
1332+
if (reference->count == 1) {
1333+
if (JS_IsObject(reference->value) || JS_IsFunction(env->context, reference->value)) {
1334+
js__clear_weak_reference(env, reference);
1335+
}
13331336
}
13341337

13351338
if (result) *result = reference->count;
@@ -1344,7 +1347,7 @@ js_reference_unref(js_env_t *env, js_ref_t *reference, uint32_t *result) {
13441347
if (reference->count > 0) {
13451348
reference->count--;
13461349

1347-
if (reference->count == 1) {
1350+
if (reference->count == 0) {
13481351
if (JS_IsObject(reference->value) || JS_IsFunction(env->context, reference->value)) {
13491352
js__set_weak_reference(env, reference);
13501353
}
@@ -2986,11 +2989,6 @@ js_release_arraybuffer_backing_store(js_env_t *env, js_arraybuffer_backing_store
29862989
return 0;
29872990
}
29882991

2989-
int
2990-
js_set_arraybuffer_zero_fill_enabled(bool enabled) {
2991-
return 0;
2992-
}
2993-
29942992
int
29952993
js_create_typedarray(js_env_t *env, js_typedarray_type_t type, size_t len, js_value_t *arraybuffer, size_t offset, js_value_t **result) {
29962994
if (JS_HasException(env->context)) return js__error(env);
@@ -4977,6 +4975,7 @@ int
49774975
js_finish_deferred_teardown_callback(js_deferred_teardown_t *handle) {
49784976
return -1;
49794977
}
4978+
49804979
int
49814980
js_throw(js_env_t *env, js_value_t *error) {
49824981
if (JS_HasException(env->context)) return js__error(env);

test/CMakeLists.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -221,7 +221,7 @@ foreach(test IN LISTS tests)
221221
target_link_libraries(
222222
${test}
223223
PRIVATE
224-
qjs_shared
224+
js_shared
225225
)
226226

227227
add_test(

0 commit comments

Comments
 (0)