mirror of
https://github.com/wgh136/flutter_qjs.git
synced 2025-09-27 05:27:23 +00:00
macos ffi
This commit is contained in:
@@ -14,7 +14,7 @@ EXTERNAL SOURCES:
|
|||||||
:path: Flutter/ephemeral/.symlinks/flutter/darwin-x64
|
:path: Flutter/ephemeral/.symlinks/flutter/darwin-x64
|
||||||
|
|
||||||
SPEC CHECKSUMS:
|
SPEC CHECKSUMS:
|
||||||
flutter_qjs: df517bcb1e7a68d630e4fe9454db7ab15bfdf425
|
flutter_qjs: 5a33cf20dbbab6bc82bc454ec2db2dd8c2e50665
|
||||||
FlutterMacOS: 15bea8a44d2fa024068daa0140371c020b4b6ff9
|
FlutterMacOS: 15bea8a44d2fa024068daa0140371c020b4b6ff9
|
||||||
|
|
||||||
PODFILE CHECKSUM: d8ba9b3e9e93c62c74a660b46c6fcb09f03991a7
|
PODFILE CHECKSUM: d8ba9b3e9e93c62c74a660b46c6fcb09f03991a7
|
||||||
|
@@ -1,24 +1,7 @@
|
|||||||
cmake_minimum_required(VERSION 3.7 FATAL_ERROR)
|
cmake_minimum_required(VERSION 3.7 FATAL_ERROR)
|
||||||
project(flutter_qjs LANGUAGES CXX)
|
project(ffiquickjs LANGUAGES CXX)
|
||||||
|
|
||||||
include("${CMAKE_CURRENT_SOURCE_DIR}/../cxx/quickjs.cmake")
|
include("${CMAKE_CURRENT_SOURCE_DIR}/../cxx/quickjs.cmake")
|
||||||
|
|
||||||
add_library(flutter_qjs SHARED ${CXX_LIB_DIR}/ffi.cpp)
|
add_library(ffiquickjs SHARED ${CXX_LIB_DIR}/ffi.cpp)
|
||||||
|
target_link_libraries(ffiquickjs PRIVATE quickjs)
|
||||||
set(CMAKE_CXX_STANDARD 17)
|
|
||||||
set(CMAKE_XCODE_ATTRIBUTE_DEVELOPMENT_TEAM "6SA4A2R2GU" CACHE INTERNAL "")
|
|
||||||
|
|
||||||
target_link_libraries(flutter_qjs PRIVATE quickjs)
|
|
||||||
|
|
||||||
set_target_properties(flutter_qjs PROPERTIES
|
|
||||||
FRAMEWORK TRUE
|
|
||||||
FRAMEWORK_VERSION A
|
|
||||||
MACOSX_FRAMEWORK_IDENTIFIER soko.ekibun.flutter_qjs
|
|
||||||
# MACOSX_FRAMEWORK_INFO_PLIST Info.plist
|
|
||||||
# "current version" in semantic format in Mach-O binary file
|
|
||||||
VERSION 1.0.0
|
|
||||||
# "compatibility version" in semantic format in Mach-O binary file
|
|
||||||
SOVERSION 1.0.0
|
|
||||||
PUBLIC_HEADER ffi.h
|
|
||||||
XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "Apple Development"
|
|
||||||
# RESOURCE "${RESOURCE_FILES}"
|
|
||||||
)
|
|
@@ -19,7 +19,6 @@ A new flutter plugin project.
|
|||||||
|
|
||||||
# Flutter.framework does not contain a i386 slice.
|
# Flutter.framework does not contain a i386 slice.
|
||||||
s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES', 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'i386' }
|
s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES', 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'i386' }
|
||||||
s.vendored_frameworks = 'build/release-iphoneos/flutter_qjs.framework'
|
s.vendored_libraries = 'build/Debug/libffiquickjs.dylib'
|
||||||
s.static_framework = false
|
|
||||||
s.swift_version = '5.0'
|
s.swift_version = '5.0'
|
||||||
end
|
end
|
||||||
|
@@ -8,4 +8,4 @@
|
|||||||
mkdir build
|
mkdir build
|
||||||
cd build
|
cd build
|
||||||
cmake .. -G Xcode -DCMAKE_TOOLCHAIN_FILE=../ios.toolchain.cmake -DPLATFORM=OS64COMBINED
|
cmake .. -G Xcode -DCMAKE_TOOLCHAIN_FILE=../ios.toolchain.cmake -DPLATFORM=OS64COMBINED
|
||||||
cmake --build . --config Release
|
cmake --build . --config Debug
|
||||||
|
@@ -53,15 +53,13 @@ final DynamicLibrary qjsLib = Platform.environment['FLUTTER_TEST'] == 'true'
|
|||||||
? (Platform.isWindows
|
? (Platform.isWindows
|
||||||
? DynamicLibrary.open("test/build/Debug/ffiquickjs.dll")
|
? DynamicLibrary.open("test/build/Debug/ffiquickjs.dll")
|
||||||
: Platform.isMacOS
|
: Platform.isMacOS
|
||||||
? DynamicLibrary.open("macos/flutterqjs.framework/flutterqjs")
|
? DynamicLibrary.open("test/build/Debug/libffiquickjs.dylib")
|
||||||
: DynamicLibrary.process())
|
: DynamicLibrary.process())
|
||||||
: (Platform.isWindows
|
: (Platform.isWindows
|
||||||
? DynamicLibrary.open("flutter_qjs_plugin.dll")
|
? DynamicLibrary.open("flutter_qjs_plugin.dll")
|
||||||
: Platform.isAndroid
|
: Platform.isAndroid
|
||||||
? DynamicLibrary.open("libqjs.so")
|
? DynamicLibrary.open("libqjs.so")
|
||||||
: Platform.isIOS || Platform.isMacOS
|
: DynamicLibrary.process());
|
||||||
? DynamicLibrary.open("flutterqjs.framework/flutterqjs")
|
|
||||||
: DynamicLibrary.process());
|
|
||||||
|
|
||||||
/// JSValue *jsThrowInternalError(JSContext *ctx, char *message)
|
/// JSValue *jsThrowInternalError(JSContext *ctx, char *message)
|
||||||
final Pointer Function(
|
final Pointer Function(
|
||||||
|
@@ -1,25 +1,7 @@
|
|||||||
cmake_minimum_required(VERSION 3.7 FATAL_ERROR)
|
cmake_minimum_required(VERSION 3.7 FATAL_ERROR)
|
||||||
project(flutterqjs LANGUAGES CXX)
|
project(ffiquickjs LANGUAGES CXX)
|
||||||
|
|
||||||
include("${CMAKE_CURRENT_SOURCE_DIR}/../cxx/quickjs.cmake")
|
include("${CMAKE_CURRENT_SOURCE_DIR}/../cxx/quickjs.cmake")
|
||||||
|
|
||||||
add_library(flutterqjs SHARED ${CXX_LIB_DIR}/ffi.cpp)
|
add_library(ffiquickjs SHARED ${CXX_LIB_DIR}/ffi.cpp)
|
||||||
|
target_link_libraries(ffiquickjs PRIVATE quickjs)
|
||||||
set(CMAKE_CXX_STANDARD 17)
|
|
||||||
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/output/$ENV{ABI})
|
|
||||||
set(CMAKE_XCODE_ATTRIBUTE_DEVELOPMENT_TEAM "6SA4A2R2GU" CACHE INTERNAL "")
|
|
||||||
|
|
||||||
target_link_libraries(flutterqjs PRIVATE quickjs)
|
|
||||||
|
|
||||||
set_target_properties(flutterqjs PROPERTIES
|
|
||||||
FRAMEWORK TRUE
|
|
||||||
FRAMEWORK_VERSION A
|
|
||||||
MACOSX_FRAMEWORK_IDENTIFIER soko.ekibun.flutterqjs
|
|
||||||
# MACOSX_FRAMEWORK_INFO_PLIST Info.plist
|
|
||||||
# "current version" in semantic format in Mach-O binary file
|
|
||||||
VERSION 1.0.0
|
|
||||||
# "compatibility version" in semantic format in Mach-O binary file
|
|
||||||
SOVERSION 1.0.0
|
|
||||||
PUBLIC_HEADER ffi.h
|
|
||||||
XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "Apple Development"
|
|
||||||
# RESOURCE "${RESOURCE_FILES}"
|
|
||||||
)
|
|
@@ -18,7 +18,6 @@ A new flutter plugin project.
|
|||||||
|
|
||||||
s.platform = :osx, '10.11'
|
s.platform = :osx, '10.11'
|
||||||
s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES' }
|
s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES' }
|
||||||
s.vendored_frameworks = 'build/Release/flutterqjs.framework'
|
s.vendored_libraries = 'build/Debug/libffiquickjs.dylib'
|
||||||
s.static_framework = false
|
|
||||||
s.swift_version = '5.0'
|
s.swift_version = '5.0'
|
||||||
end
|
end
|
||||||
|
@@ -8,4 +8,4 @@
|
|||||||
mkdir build
|
mkdir build
|
||||||
cd build
|
cd build
|
||||||
cmake .. -G Xcode -DCMAKE_OSX_ARCHITECTURES=x86_64
|
cmake .. -G Xcode -DCMAKE_OSX_ARCHITECTURES=x86_64
|
||||||
cmake --build . --config Release
|
cmake --build . --config Debug
|
||||||
|
@@ -8,6 +8,7 @@
|
|||||||
import 'dart:convert';
|
import 'dart:convert';
|
||||||
import 'dart:io';
|
import 'dart:io';
|
||||||
|
|
||||||
|
import 'package:flutter_qjs/ffi.dart';
|
||||||
import 'package:flutter_qjs/flutter_qjs.dart';
|
import 'package:flutter_qjs/flutter_qjs.dart';
|
||||||
import 'package:flutter_test/flutter_test.dart';
|
import 'package:flutter_test/flutter_test.dart';
|
||||||
|
|
||||||
@@ -39,6 +40,16 @@ void main() async {
|
|||||||
stderr.write(result.stderr);
|
stderr.write(result.stderr);
|
||||||
expect(result.exitCode, 0);
|
expect(result.exitCode, 0);
|
||||||
}, testOn: 'windows');
|
}, testOn: 'windows');
|
||||||
|
test('make.macos', () async {
|
||||||
|
var result = Process.runSync(
|
||||||
|
"sh",
|
||||||
|
['./make.sh'],
|
||||||
|
workingDirectory: 'macos',
|
||||||
|
);
|
||||||
|
stdout.write(result.stdout);
|
||||||
|
stderr.write(result.stderr);
|
||||||
|
expect(result.exitCode, 0);
|
||||||
|
}, testOn: 'mac-os');
|
||||||
test('jsToDart', () async {
|
test('jsToDart', () async {
|
||||||
final qjs = FlutterQjs();
|
final qjs = FlutterQjs();
|
||||||
qjs.setMethodHandler((method, args) {
|
qjs.setMethodHandler((method, args) {
|
||||||
|
11
test/make.sh
Normal file
11
test/make.sh
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
###
|
||||||
|
# @Description:
|
||||||
|
# @Author: ekibun
|
||||||
|
# @Date: 2020-09-24 00:50:13
|
||||||
|
# @LastEditors: ekibun
|
||||||
|
# @LastEditTime: 2020-09-24 00:51:43
|
||||||
|
###
|
||||||
|
mkdir build
|
||||||
|
cd build
|
||||||
|
cmake .. -G Xcode -DCMAKE_OSX_ARCHITECTURES=x86_64
|
||||||
|
cmake --build . --config Debug
|
Reference in New Issue
Block a user