Skip to content

Commit 78b91d3

Browse files
committed
fixes for qjs
1 parent e6f0e07 commit 78b91d3

File tree

5 files changed

+60
-56
lines changed

5 files changed

+60
-56
lines changed

NativeScript/CMakeLists.txt

Lines changed: 50 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ elseif(TARGET_PLATFORM STREQUAL "macos")
5151
set(SDK_NAME "macosx")
5252
set(CMAKE_OSX_ARCHITECTURES "arm64;x86_64")
5353
set(TARGET_PLATFORM_SPEC "macos-arm64_x86_64")
54+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DTARGET_PLATFORM_MACOS")
5455

5556
else()
5657
message(FATAL_ERROR "Unknown target platform: ${TARGET_PLATFORM}")
@@ -71,10 +72,10 @@ elseif(TARGET_ENGINE STREQUAL "v8")
7172
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-rtti -stdlib=libc++ -std=c++20 -DV8_COMPRESS_POINTERS -DV8_ENABLE_SANDBOX -DTARGET_ENGINE_V8")
7273
elseif(TARGET_ENGINE STREQUAL "quickjs")
7374
set(TARGET_ENGINE_QUICKJS TRUE)
74-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DTARGET_ENGINE_QUICKJS")
75+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++ -std=c++20 -DTARGET_ENGINE_QUICKJS")
7576
elseif(TARGET_ENGINE STREQUAL "jsc")
7677
set(TARGET_ENGINE_JSC TRUE)
77-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DTARGET_ENGINE_JSC")
78+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++ -std=c++20 -DTARGET_ENGINE_JSC")
7879
else()
7980
message(FATAL_ERROR "Unknown target engine: ${TARGET_ENGINE}")
8081
return()
@@ -92,32 +93,6 @@ message(STATUS "TARGET_PLATFORM = ${TARGET_PLATFORM}")
9293
message(STATUS "TARGET_ENGINE = ${TARGET_ENGINE}")
9394
message(STATUS "ENABLE_JS_RUNTIME = ${ENABLE_JS_RUNTIME}")
9495

95-
# Find SDK
96-
97-
find_program(XCODEBUILD_EXECUTABLE xcodebuild)
98-
99-
if(METADATA_SIZE EQUAL 0)
100-
unset(METADATA_SIZE)
101-
else()
102-
message(STATUS "EMBED_METADATA_SIZE = ${METADATA_SIZE}"
103-
" (metadata will be embedded in the library)")
104-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DEMBED_METADATA_SIZE=${METADATA_SIZE}")
105-
endif()
106-
107-
message(STATUS "TARGET_PLATFORM = ${TARGET_PLATFORM}")
108-
109-
execute_process(
110-
COMMAND ${XCODEBUILD_EXECUTABLE} -version -sdk ${SDK_NAME} Path
111-
OUTPUT_VARIABLE CMAKE_OSX_SYSROOT_INT
112-
ERROR_QUIET
113-
OUTPUT_STRIP_TRAILING_WHITESPACE
114-
)
115-
116-
set(CMAKE_OSX_SYSROOT_INT "${CMAKE_OSX_SYSROOT_INT}" CACHE INTERNAL "")
117-
set(CMAKE_OSX_SYSROOT "${CMAKE_OSX_SYSROOT_INT}" CACHE INTERNAL "")
118-
119-
message(STATUS "SDK = ${CMAKE_OSX_SYSROOT}")
120-
12196
# Set up sources
12297

12398
include_directories(
@@ -126,10 +101,9 @@ include_directories(
126101
ada
127102
napi/common
128103
libffi/${LIBFFI_BUILD}/include
129-
/Library/Developer/CommandLineTools/usr/include
130104
)
131105

132-
set(LIB_SOURCE_FILES
106+
set(SOURCE_FILES
133107
ffi/AutoreleasePool.mm
134108
ffi/Protocol.mm
135109
ffi/ObjCBridge.mm
@@ -153,8 +127,8 @@ set(LIB_SOURCE_FILES
153127
)
154128

155129
if(ENABLE_JS_RUNTIME)
156-
set(LIB_SOURCE_FILES
157-
${LIB_SOURCE_FILES}
130+
set(SOURCE_FILES
131+
${SOURCE_FILES}
158132
runtime/Console.cpp
159133
runtime/Runtime.cpp
160134
runtime/Require.cpp
@@ -173,8 +147,8 @@ if(ENABLE_JS_RUNTIME)
173147
napi/v8/v8_inspector
174148
)
175149

176-
set(LIB_SOURCE_FILES
177-
${LIB_SOURCE_FILES}
150+
set(SOURCE_FILES
151+
${SOURCE_FILES}
178152
napi/v8/v8-api.cpp
179153
napi/v8/jsr.cpp
180154
napi/v8/SimpleAllocator.cpp
@@ -187,15 +161,24 @@ if(ENABLE_JS_RUNTIME)
187161
napi/hermes/jsi
188162
)
189163

190-
set(LIB_SOURCE_FILES
191-
${LIB_SOURCE_FILES}
164+
set(SOURCE_FILES
165+
${SOURCE_FILES}
192166
napi/hermes/jsr.cpp
193167
)
194168

195169
elseif(TARGET_ENGINE_QUICKJS)
196-
add_subdirectory(${PROJECT_SOURCE_DIR}/napi/quickjs/mimalloc-dev mimalloc)
170+
set(MI_BUILD_OBJECT OFF)
171+
add_subdirectory(napi/quickjs/mimalloc-dev mimalloc)
197172

198-
set(LIB_SOURCE_FILES ${LIB_SOURCE_FILES}
173+
include_directories(
174+
napi/quickjs
175+
napi/quickjs/source
176+
napi/common
177+
mimalloc
178+
napi/quickjs/mimalloc-dev/include
179+
)
180+
181+
set(SOURCE_FILES ${SOURCE_FILES}
199182
# quickjs
200183
napi/quickjs/source/cutils.c
201184
napi/quickjs/source/libregexp.c
@@ -207,22 +190,14 @@ if(ENABLE_JS_RUNTIME)
207190
napi/quickjs/jsr.cpp
208191
)
209192

210-
include_directories(
211-
napi/quickjs
212-
napi/quickjs/source
213-
napi/common
214-
# mimalloc
215-
napi/quickjs/mimalloc-dev/include
216-
)
217-
218193
elseif(TARGET_ENGINE_JSC)
219194
include_directories(
220195
napi/jsc
221196
napi/jsc/include
222197
napi/common
223198
)
224199

225-
set(LIB_SOURCE_FILES ${LIB_SOURCE_FILES}
200+
set(SOURCE_FILES ${SOURCE_FILES}
226201
napi/jsc/jsc-api.cpp
227202
napi/jsc/jsr.cpp
228203
)
@@ -234,12 +209,38 @@ else()
234209
)
235210
endif()
236211

212+
# Find SDK
213+
214+
find_program(XCODEBUILD_EXECUTABLE xcodebuild)
215+
216+
if(METADATA_SIZE EQUAL 0)
217+
unset(METADATA_SIZE)
218+
else()
219+
message(STATUS "EMBED_METADATA_SIZE = ${METADATA_SIZE}"
220+
" (metadata will be embedded in the library)")
221+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DEMBED_METADATA_SIZE=${METADATA_SIZE}")
222+
endif()
223+
224+
message(STATUS "TARGET_PLATFORM = ${TARGET_PLATFORM}")
225+
226+
execute_process(
227+
COMMAND ${XCODEBUILD_EXECUTABLE} -version -sdk ${SDK_NAME} Path
228+
OUTPUT_VARIABLE CMAKE_OSX_SYSROOT_INT
229+
ERROR_QUIET
230+
OUTPUT_STRIP_TRAILING_WHITESPACE
231+
)
232+
233+
set(CMAKE_OSX_SYSROOT_INT "${CMAKE_OSX_SYSROOT_INT}" CACHE INTERNAL "")
234+
set(CMAKE_OSX_SYSROOT "${CMAKE_OSX_SYSROOT_INT}" CACHE INTERNAL "")
235+
236+
message(STATUS "SDK = ${CMAKE_OSX_SYSROOT}")
237+
237238
# Build targets
238239

239240
add_library(
240241
${NAME}
241242
SHARED
242-
${LIB_SOURCE_FILES}
243+
${SOURCE_FILES}
243244
)
244245

245246
target_sources(
@@ -254,7 +255,7 @@ set_target_properties(${NAME} PROPERTIES
254255
FRAMEWORK_VERSION ${VERSION}
255256
MACOSX_FRAMEWORK_SHORT_VERSION_STRING ${VERSION}
256257
MACOSX_FRAMEWORK_BUNDLE_VERSION ${VERSION}
257-
MACOSX_FRAMEWORK_IDENTIFIER org.nativescript.runtime
258+
MACOSX_FRAMEWORK_IDENTIFIER ${BUNDLE_IDENTIFIER}
258259
PUBLIC_HEADER "NativeScript.h"
259260
)
260261

@@ -266,8 +267,6 @@ if(BUILD_FRAMEWORK)
266267
endif()
267268

268269
if(TARGET_PLATFORM_MACOS)
269-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DTARGET_PLATFORM_MACOS")
270-
271270
# add_custom_command(TARGET ${NAME} POST_BUILD
272271
# COMMAND /usr/libexec/PlistBuddy -c "Add :LSMinimumSystemVersion string ${CMAKE_OSX_DEPLOYMENT_TARGET}" $<TARGET_FILE_DIR:${NAME}>/Resources/Info.plist
273272
# )

NativeScript/napi/quickjs/js_native_api.h

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,10 @@
22
#define SRC_JS_NATIVE_API_H_
33

44
#include "js_native_api_types.h"
5-
#include <uchar.h>
5+
6+
#if !defined __cplusplus || (defined(_MSC_VER) && _MSC_VER < 1900)
7+
typedef uint16_t char16_t;
8+
#endif
69

710
EXTERN_C_START
811

NativeScript/napi/quickjs/jsr.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
#include "js_native_api.h"
88
#include "jsr_common.h"
99
#include "mutex"
10+
#include "unordered_map"
1011

1112
class JSR {
1213
public:

NativeScript/napi/quickjs/quickjs-api.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3699,7 +3699,7 @@ napi_check_object_type_tag(napi_env env, napi_value object, const napi_type_tag
36993699
napi_status napi_run_script(napi_env env,
37003700
napi_value script,
37013701
napi_value *result) {
3702-
return qjs_execute_script(env, script, NULL, result);
3702+
return qjs_execute_script(env, script, "<anonymous>", result);
37033703
}
37043704

37053705
/**

build_nativescript.sh

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ fi
115115

116116
cmake -S=./NativeScript -B=$DIST/intermediates/ios-sim -GXcode -DTARGET_PLATFORM=ios-sim -DTARGET_ENGINE=$TARGET_ENGINE -DMETADATA_SIZE=$METADATA_SIZE
117117

118-
cmake --build $DIST/intermediates/ios-sim --config Release
118+
cmake --build $DIST/intermediates/ios-sim --config Debug
119119

120120
fi
121121

@@ -232,7 +232,8 @@ if $BUILD_CATALYST; then
232232
fi
233233

234234
if $BUILD_SIMULATOR; then
235-
XCFRAMEWORKS+=( -framework "$DIST/intermediates/ios-sim/Release-iphonesimulator/NativeScript.framework" )
235+
XCFRAMEWORKS+=( -framework "$DIST/intermediates/ios-sim/Debug-iphonesimulator/NativeScript.framework"
236+
-debug-symbols "$DIST/intermediates/ios-sim/Debug-iphonesimulator/NativeScript.framework.dSYM" )
236237
fi
237238

238239
if $BUILD_IPHONE; then
@@ -265,7 +266,7 @@ cp -r "$DIST/intermediates/macos/Release/libNativeScript.dylib" "$DIST/NativeScr
265266

266267
fi
267268

268-
rm -rf "$DIST/intermediates"
269+
# rm -rf "$DIST/intermediates"
269270

270271

271272
# DSYM_OUTPUT_DIR="$DIST/NativeScript.framework.dSYM"

0 commit comments

Comments
 (0)