@@ -16,10 +16,23 @@ if (CCACHE_FOUND AND (USE_CCACHE))
1616 MESSAGE (STATUS "## Using CCache when building!" )
1717 set_property (GLOBAL PROPERTY RULE_LAUNCH_COMPILE ccache )
1818 set_property (GLOBAL PROPERTY RULE_LAUNCH_LINK ccache )
19- endif (CCACHE_FOUND AND ( USE_CCACHE ) )
19+ endif ()
2020
21- set (COMMON_CMAKE_ARGUMENTS "-std=c++20 - Wno-error -Wno-deprecated-declarations -Wno-unused-result -mstackrealign -fexceptions -fno-builtin-stpcpy -frtti " )
21+ set (COMMON_CMAKE_ARGUMENTS "-Wno-error -Wno-deprecated-declarations -Wno-unused-result -mstackrealign -fexceptions -fno-builtin-stpcpy" )
2222set (MI_OVERRIDE OFF )
23+
24+ if (V8_13)
25+ set (COMMON_CMAKE_ARGUMENTS "${COMMON_CMAKE_ARGUMENTS} -std=c++20" )
26+ elseif ()
27+ set (COMMON_CMAKE_ARGUMENTS "${COMMON_CMAKE_ARGUMENTS} -std=c++17" )
28+ endif ()
29+
30+ if (SHERMES)
31+ set (COMMON_CMAKE_ARGUMENTS "${COMMON_CMAKE_ARGUMENTS} -frtti" )
32+ else ()
33+ set (COMMON_CMAKE_ARGUMENTS "${COMMON_CMAKE_ARGUMENTS} -fno-rtti" )
34+ endif ()
35+
2336# AOSP has switched to using LLD by default and the NDK will use it by default in the next release.
2437# BFD and Gold will be removed once LLD has been through a release cycle with no major unresolved issues (estimated r21)
2538# Note: lld does not currently work on Windows: https://github.com/android-ndk/ndk/issues/888
@@ -78,7 +91,7 @@ file(GLOB_RECURSE RUNTIME_FILES
7891 "${PROJECT_SOURCE_DIR} /src/main/cpp/runtime/**/*.cpp"
7992)
8093
81- file (GLOB_RECURSE MODULE_FILES
94+ file (GLOB_RECURSE MODULE_FILES
8295 "${PROJECT_SOURCE_DIR} /src/main/cpp/modules/*.cpp"
8396 "${PROJECT_SOURCE_DIR} /src/main/cpp/modules/**/*.cpp"
8497)
@@ -129,24 +142,24 @@ endif ()
129142
130143if (HERMES)
131144 include_directories (
132- src/main/cpp/napi/hermes
133- src/main/cpp/napi/hermes/include
134- src/main/cpp/napi/common
145+ src/main/cpp/napi/hermes
146+ src/main/cpp/napi/hermes/include
147+ src/main/cpp/napi/common
135148 )
136149 set (SOURCES ${SOURCES}
137- src/main/cpp/napi/hermes/jsr.cpp
138- )
150+ src/main/cpp/napi/hermes/jsr.cpp
151+ )
139152endif ()
140153
141154if (SHERMES)
142155 include_directories (
143- src/main/cpp/napi/hermes
144- src/main/cpp/napi/hermes/include_shermes
145- src/main/cpp/napi/common
156+ src/main/cpp/napi/hermes
157+ src/main/cpp/napi/hermes/include_shermes
158+ src/main/cpp/napi/common
146159 )
147160 set (SOURCES ${SOURCES}
148- src/main/cpp/napi/hermes/jsr.cpp
149- )
161+ src/main/cpp/napi/hermes/jsr.cpp
162+ )
150163endif ()
151164
152165if (JSC)
@@ -162,16 +175,37 @@ if (JSC)
162175endif ()
163176
164177if (V8)
165- include_directories (
166- src/main/cpp/napi/v8
167- src/main/cpp/napi/v8/include
168- src/main/cpp/napi/common
169- src/main/cpp/napi/v8/v8_inspector
170- )
178+ if (V8_10)
179+ include_directories (
180+ src/main/cpp/napi/v8
181+ src/main/cpp/napi/v8-10
182+ src/main/cpp/napi/v8-10/include
183+ src/main/cpp/napi/common
184+ src/main/cpp/napi/v8/v8_inspector
185+ src/main/cpp/napi/v8-10/v8_inspector
186+ )
187+ elseif (V8_11)
188+ include_directories (
189+ src/main/cpp/napi/v8
190+ src/main/cpp/napi/v8-11
191+ src/main/cpp/napi/v8-11/include
192+ src/main/cpp/napi/common
193+ src/main/cpp/napi/v8/v8_inspector
194+ src/main/cpp/napi/v8-11/v8_inspector
195+ )
196+ else ()
197+ include_directories (
198+ src/main/cpp/napi/v8
199+ src/main/cpp/napi/v8-13
200+ src/main/cpp/napi/v8-13/include
201+ src/main/cpp/napi/common
202+ src/main/cpp/napi/v8/v8_inspector
203+ src/main/cpp/napi/v8-13/v8_inspector
204+ )
205+ endif ()
171206
172207 if (NOT OPTIMIZED_BUILD OR OPTIMIZED_WITH_INSPECTOR_BUILD)
173208 add_definitions (-DAPPLICATION_IN_DEBUG )
174- # Debug builds will include the V8 inspector sources
175209 set (
176210 SOURCES
177211 ${SOURCES}
@@ -186,15 +220,18 @@ if (V8)
186220 src/main/cpp/napi/v8/SimpleAllocator.cpp
187221 )
188222
189- set (COMMON_CMAKE_ARGUMENTS "${COMMON_CMAKE_ARGUMENTS} -DV8_ENABLE_REGEXP_INTERPRETER_THREADED_DISPATCH -DV8_EMBEDDED_BUILTINS" )
190- # -DV8_31BIT_SMIS_ON_64BIT_ARCH
191- # if("${ANDROID_ABI}" MATCHES "arm64-v8a$" OR "${ANDROID_ABI}" MATCHES "x86_64$")
192- # # Enable pointer compression on 64 bit platforms
193- # set(COMMON_CMAKE_ARGUMENTS "${COMMON_CMAKE_ARGUMENTS} -DV8_COMPRESS_POINTERS -DV8_ENABLE_SANDBOX")
194- # message(STATUS "V8 pointer compression enabled for ${ANDROID_ABI}")
195- # else()
196- # message(STATUS "V8 pointer compression not enabled for ${ANDROID_ABI}")
197- # endif()
223+
224+ if (V8_10)
225+ set (COMMON_CMAKE_ARGUMENTS "${COMMON_CMAKE_ARGUMENTS} -DV8_31BIT_SMIS_ON_64BIT_ARCH -DV8_31BIT_SMIS_ON_64BIT_ARCH -DV8_ENABLE_REGEXP_INTERPRETER_THREADED_DISPATCH -DV8_EMBEDDED_BUILTINS" )
226+ # Enable pointer compression on 64 bit platforms
227+ if ("${ANDROID_ABI} " MATCHES "arm64-v8a$" OR "${ANDROID_ABI} " MATCHES "x86_64$" )
228+ set (COMMON_CMAKE_ARGUMENTS "${COMMON_CMAKE_ARGUMENTS} -DV8_COMPRESS_POINTERS" )
229+ endif ()
230+ else ()
231+ set (COMMON_CMAKE_ARGUMENTS "${COMMON_CMAKE_ARGUMENTS} -DV8_ENABLE_REGEXP_INTERPRETER_THREADED_DISPATCH -DV8_EMBEDDED_BUILTINS" )
232+ endif ()
233+
234+
198235endif ()
199236
200237
@@ -228,8 +265,8 @@ else ()
228265 NativeScript
229266 PROPERTIES LINK_FLAGS -Wl,--allow-multiple-definition
230267 )
231- # target_compile_options(NativeScript PUBLIC -fsanitize=hwaddress -fno-omit-frame-pointer)
232- # target_link_options(NativeScript PUBLIC -fsanitize=hwaddress)
268+ # target_compile_options(NativeScript PUBLIC -fsanitize=hwaddress -fno-omit-frame-pointer)
269+ # target_link_options(NativeScript PUBLIC -fsanitize=hwaddress)
233270endif ()
234271
235272MESSAGE (STATUS "# General cmake Info" )
@@ -264,10 +301,24 @@ if (JSC)
264301endif ()
265302
266303if (V8)
267- target_link_libraries (NativeScript ${PROJECT_SOURCE_DIR} /src/main/libs/v8/${ANDROID_ABI}/libv8_monolith.a )
268304 add_compile_definitions (NativeScript, PRIVATE __V8__ )
269305endif ()
270306
307+ if (V8_10)
308+ target_link_libraries (NativeScript ${PROJECT_SOURCE_DIR} /src/main/libs/v8-10/${ANDROID_ABI}/libv8_monolith.a )
309+ add_compile_definitions (NativeScript, PRIVATE __V8_10__ )
310+ endif ()
311+
312+ if (V8_11)
313+ target_link_libraries (NativeScript ${PROJECT_SOURCE_DIR} /src/main/libs/v8-11/${ANDROID_ABI}/libv8_monolith.a )
314+ add_compile_definitions (NativeScript, PRIVATE __V8_11__ )
315+ endif ()
316+
317+ if (V8_13)
318+ target_link_libraries (NativeScript ${PROJECT_SOURCE_DIR} /src/main/libs/v8-13/${ANDROID_ABI}/libv8_monolith.a )
319+ add_compile_definitions (NativeScript, PRIVATE __V8_13__ )
320+ endif ()
321+
271322if (PRIMJS)
272323 # target_link_libraries(NativeScript ${PROJECT_SOURCE_DIR}/src/main/libs/primjs/${ANDROID_ABI}/libnapi.so)
273324 target_link_libraries (NativeScript ${PROJECT_SOURCE_DIR} /src/main/libs/primjs/${ANDROID_ABI}/libquick.so )
@@ -283,11 +334,11 @@ endif ()
283334
284335if (USE_HOST_OBJECTS)
285336 add_compile_definitions (NativeScript, PRIVATE USE_HOST_OBJECT )
286- endif ()
337+ endif ()
287338
288339if (IS_NAPI_MODULE)
289340 add_compile_definitions (NativeScript, PRIVATE IS_NAPI_MODULE )
290- endif ()
341+ endif ()
291342
292343# if("${ANDROID_ABI}" MATCHES "armeabi-v7a$" OR "${ANDROID_ABI}" MATCHES "x86$")
293344# # On API Level 19 and lower we need to link with android_support
0 commit comments