Skip to content

Commit d8298be

Browse files
committed
changed to use static compiled libraries of quickjs bridge on windows and linux
1 parent 31a8672 commit d8298be

File tree

5 files changed

+26
-4
lines changed

5 files changed

+26
-4
lines changed

lib/quickjs/ffi.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ final DynamicLibrary _qjsLib = Platform.environment['FLUTTER_TEST'] == 'true'
120120
? DynamicLibrary.open('test/build/libffiquickjs.dylib')
121121
: DynamicLibrary.open('test/build/libffiquickjs.so'))
122122
: (Platform.isWindows
123-
? DynamicLibrary.open('flutter_js_plugin.dll')
123+
? DynamicLibrary.open('quickjs_c_bridge.dll')
124124
: Platform.isAndroid
125125
? DynamicLibrary.open('libfastdev_quickjs_runtime.so')
126126
: DynamicLibrary.process());

linux/CMakeLists.txt

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,3 +39,13 @@ set(flutter_qjs_bundled_libraries
3939
""
4040
PARENT_SCOPE
4141
)
42+
43+
set(BUILD_BUNDLE_DIR "${PROJECT_BINARY_DIR}/bundle")
44+
if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
45+
set(CMAKE_INSTALL_PREFIX "${BUILD_BUNDLE_DIR}" CACHE PATH "..." FORCE)
46+
endif()
47+
set(INSTALL_BUNDLE_LIB_DIR "${CMAKE_INSTALL_PREFIX}/lib")
48+
set(QUICKJSC_BRIDGE "libquickjs_c_bridge_plugin.so")
49+
set(QUICKJSC_BRIDGE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/shared/${QUICKJSC_BRIDGE}")
50+
install(CODE "file(REMOVE_RECURSE \"${INSTALL_BUNDLE_LIB_DIR}/${QUICKJSC_BRIDGE}\")" COMPONENT Runtime)
51+
install(FILES "${QUICKJSC_BRIDGE_PATH}" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" COMPONENT Runtime)
42.2 KB
Binary file not shown.

windows/CMakeLists.txt

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
cmake_minimum_required(VERSION 3.15)
2-
include("${CMAKE_CURRENT_SOURCE_DIR}/../cxx/quickjs.cmake")
32

43
set(PROJECT_NAME "flutter_js")
54
project(${PROJECT_NAME} LANGUAGES CXX)
@@ -11,18 +10,31 @@ set(PLUGIN_NAME "flutter_js_plugin")
1110

1211
add_library(${PLUGIN_NAME} SHARED
1312
"flutter_js_plugin.cpp"
14-
"${CXX_LIB_DIR}/libfastdev_quickjs_runtime.cpp"
1513
)
1614
apply_standard_settings(${PLUGIN_NAME})
1715
set_target_properties(${PLUGIN_NAME} PROPERTIES
1816
CXX_VISIBILITY_PRESET hidden)
1917
target_compile_definitions(${PLUGIN_NAME} PRIVATE FLUTTER_PLUGIN_IMPL)
2018
target_include_directories(${PLUGIN_NAME} INTERFACE
2119
"${CMAKE_CURRENT_SOURCE_DIR}/include")
22-
target_link_libraries(${PLUGIN_NAME} PRIVATE flutter flutter_wrapper_plugin quickjs)
20+
target_link_libraries(${PLUGIN_NAME} PRIVATE flutter flutter_wrapper_plugin)
2321

2422
# List of absolute paths to libraries that should be bundled with the plugin
2523
set(flutter_js_bundled_libraries
2624
""
2725
PARENT_SCOPE
2826
)
27+
28+
29+
set(BUILD_BUNDLE_DIR "$<TARGET_FILE_DIR:${BINARY_NAME}>")
30+
# Make the "install" step default, as it's required to run.
31+
set(CMAKE_VS_INCLUDE_INSTALL_TO_DEFAULT_BUILD 1)
32+
if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
33+
set(CMAKE_INSTALL_PREFIX "${BUILD_BUNDLE_DIR}" CACHE PATH "..." FORCE)
34+
endif()
35+
36+
set(INSTALL_BUNDLE_LIB_DIR "${CMAKE_INSTALL_PREFIX}")
37+
set(QUICKJSC_BRIDGE "quickjs_c_bridge.dll")
38+
set(QUICKJSC_BRIDGE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/shared/${QUICKJSC_BRIDGE}")
39+
install(CODE "file(REMOVE_RECURSE \"${INSTALL_BUNDLE_LIB_DIR}/${QUICKJSC_BRIDGE}\")" COMPONENT Runtime)
40+
install(FILES "${QUICKJSC_BRIDGE_PATH}" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" COMPONENT Runtime)

windows/shared/quickjs_c_bridge.dll

662 KB
Binary file not shown.

0 commit comments

Comments
 (0)