@@ -117,27 +117,35 @@ if(DEFINED NODE_DIR)
117
117
list (APPEND importLibraries
118
118
ada base64 brotli cares histogram llhttp nghttp2 nghttp3 ngtcp2 openssl simdutf torque_base uvwasi
119
119
v8_base_without_compiler v8_compiler v8_init v8_initializers
120
- v8_libbase v8_libplatform v8_snapshot v8_turboshaft v8_zlib zlib zlib_adler32_simd zlib_inflate_chunk_simd)
121
- if (CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "(arm64|aarch64)" )
120
+ v8_libbase v8_libplatform v8_snapshot v8_turboshaft v8_zlib zlib)
121
+ # base64
122
+ if (CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "(arm64|aarch64)" OR CMAKE_ANDROID_ARCH STREQUAL "arm64" )
122
123
list (APPEND importLibraries base64_neon64)
123
- else ( )
124
+ elseif ( NOT CMAKE_ANDROID_ARCH STREQUAL "arm" )
124
125
list (APPEND importLibraries base64_avx base64_avx2 base64_avx512 base64_sse41 base64_sse42 base64_ssse3)
125
126
endif ()
127
+ # node, uv
126
128
if (CMAKE_SYSTEM_NAME STREQUAL "Windows" )
127
129
list (APPEND importLibraries libnode libuv)
128
- elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "(arm64|aarch64)" )
129
- list (APPEND importLibraries node uv)
130
- elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" OR CMAKE_SYSTEM_NAME STREQUAL "Android" )
131
- list (APPEND importLibraries node node_text_start uv)
132
- elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" )
130
+ else ()
133
131
list (APPEND importLibraries node uv)
134
132
endif ()
135
- if (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL "arm64" )
136
- list (APPEND importLibraries zlib_arm_crc32)
137
- elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "(arm64|aarch64)" )
138
- list (APPEND importLibraries zlib_arm_crc32)
139
- # else()
140
- # list(APPEND importLibraries zlib_crc32_simd)
133
+ # node_text_start
134
+ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" )
135
+ list (APPEND importLibraries node_text_start)
136
+ endif ()
137
+ # zlib
138
+ if (CMAKE_SYSTEM_NAME STREQUAL "Android" )
139
+ if (CMAKE_ANDROID_ARCH STREQUAL "arm64" )
140
+ list (APPEND importLibraries zlib_adler32_simd zlib_arm_crc32)
141
+ elseif (CMAKE_ANDROID_ARCH MATCHES "(x86|x86_64)" )
142
+ list (APPEND importLibraries zlib_adler32_simd zlib_inflate_chunk_simd)
143
+ endif ()
144
+ else ()
145
+ list (APPEND importLibraries zlib_adler32_simd zlib_inflate_chunk_simd)
146
+ if (CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "(arm64|aarch64)" )
147
+ list (APPEND importLibraries zlib_arm_crc32)
148
+ endif ()
141
149
endif ()
142
150
add_definitions (-DENABLE_NODE)
143
151
set (JAVET_LIB_TYPE "node" )
@@ -247,6 +255,20 @@ elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux" OR CMAKE_SYSTEM_NAME STREQUAL "Android
247
255
target_link_libraries (JavetStatic PUBLIC -Wl,--whole-archive ${importLibraries} -Wl,--no -whole-archive
248
256
-llog -static -libgcc -static -libstdc++ "${libgcc} " )
249
257
endif ()
258
+ if (DEFINED NODE_DIR)
259
+ list (APPEND includeDirs
260
+ ${NODE_DIR} /out.${CMAKE_ANDROID_ARCH} /Release/obj/gen/generate-bytecode-output -root
261
+ ${NODE_DIR} /out.${CMAKE_ANDROID_ARCH} /Release/obj/gen/inspector-generated -output -root
262
+ ${NODE_DIR} /out.${CMAKE_ANDROID_ARCH} /Release/obj/gen)
263
+ foreach (importLibrary ${importLibraries} )
264
+ set_target_properties (${importLibrary} PROPERTIES IMPORTED_LOCATION ${NODE_DIR} /out.${CMAKE_ANDROID_ARCH} /Release/lib${importLibrary} .a)
265
+ endforeach (importLibrary)
266
+ list (REMOVE_ITEM importLibraries v8_init)
267
+ target_link_libraries (Javet PUBLIC -Wl,--whole-archive ${importLibraries} -Wl,--no -whole-archive
268
+ v8_init -llog -static -libgcc -static -libstdc++ "${libgcc} " )
269
+ target_link_libraries (JavetStatic PUBLIC -Wl,--whole-archive ${importLibraries} -Wl,--no -whole-archive
270
+ v8_init -llog -static -libgcc -static -libstdc++ "${libgcc} " )
271
+ endif ()
250
272
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "(arm64|x86_64)" )
251
273
set (JAVET_LIB_SYSTEM "macos" )
252
274
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-ambiguous-reversed-operator " )
0 commit comments