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
|
||||
|
||||
SPEC CHECKSUMS:
|
||||
flutter_qjs: df517bcb1e7a68d630e4fe9454db7ab15bfdf425
|
||||
flutter_qjs: 5a33cf20dbbab6bc82bc454ec2db2dd8c2e50665
|
||||
FlutterMacOS: 15bea8a44d2fa024068daa0140371c020b4b6ff9
|
||||
|
||||
PODFILE CHECKSUM: d8ba9b3e9e93c62c74a660b46c6fcb09f03991a7
|
||||
|
@@ -1,24 +1,7 @@
|
||||
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")
|
||||
|
||||
add_library(flutter_qjs SHARED ${CXX_LIB_DIR}/ffi.cpp)
|
||||
|
||||
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}"
|
||||
)
|
||||
add_library(ffiquickjs SHARED ${CXX_LIB_DIR}/ffi.cpp)
|
||||
target_link_libraries(ffiquickjs PRIVATE quickjs)
|
@@ -19,7 +19,6 @@ A new flutter plugin project.
|
||||
|
||||
# Flutter.framework does not contain a i386 slice.
|
||||
s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES', 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'i386' }
|
||||
s.vendored_frameworks = 'build/release-iphoneos/flutter_qjs.framework'
|
||||
s.static_framework = false
|
||||
s.vendored_libraries = 'build/Debug/libffiquickjs.dylib'
|
||||
s.swift_version = '5.0'
|
||||
end
|
||||
|
@@ -8,4 +8,4 @@
|
||||
mkdir build
|
||||
cd build
|
||||
cmake .. -G Xcode -DCMAKE_TOOLCHAIN_FILE=../ios.toolchain.cmake -DPLATFORM=OS64COMBINED
|
||||
cmake --build . --config Release
|
||||
cmake --build . --config Debug
|
||||
|
@@ -53,14 +53,12 @@ final DynamicLibrary qjsLib = Platform.environment['FLUTTER_TEST'] == 'true'
|
||||
? (Platform.isWindows
|
||||
? DynamicLibrary.open("test/build/Debug/ffiquickjs.dll")
|
||||
: Platform.isMacOS
|
||||
? DynamicLibrary.open("macos/flutterqjs.framework/flutterqjs")
|
||||
? DynamicLibrary.open("test/build/Debug/libffiquickjs.dylib")
|
||||
: DynamicLibrary.process())
|
||||
: (Platform.isWindows
|
||||
? DynamicLibrary.open("flutter_qjs_plugin.dll")
|
||||
: Platform.isAndroid
|
||||
? DynamicLibrary.open("libqjs.so")
|
||||
: Platform.isIOS || Platform.isMacOS
|
||||
? DynamicLibrary.open("flutterqjs.framework/flutterqjs")
|
||||
: DynamicLibrary.process());
|
||||
|
||||
/// JSValue *jsThrowInternalError(JSContext *ctx, char *message)
|
||||
|
@@ -1,25 +1,7 @@
|
||||
cmake_minimum_required(VERSION 3.7 FATAL_ERROR)
|
||||
project(flutterqjs LANGUAGES CXX)
|
||||
project(ffiquickjs LANGUAGES CXX)
|
||||
|
||||
include("${CMAKE_CURRENT_SOURCE_DIR}/../cxx/quickjs.cmake")
|
||||
|
||||
add_library(flutterqjs SHARED ${CXX_LIB_DIR}/ffi.cpp)
|
||||
|
||||
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}"
|
||||
)
|
||||
add_library(ffiquickjs SHARED ${CXX_LIB_DIR}/ffi.cpp)
|
||||
target_link_libraries(ffiquickjs PRIVATE quickjs)
|
@@ -18,7 +18,6 @@ A new flutter plugin project.
|
||||
|
||||
s.platform = :osx, '10.11'
|
||||
s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES' }
|
||||
s.vendored_frameworks = 'build/Release/flutterqjs.framework'
|
||||
s.static_framework = false
|
||||
s.vendored_libraries = 'build/Debug/libffiquickjs.dylib'
|
||||
s.swift_version = '5.0'
|
||||
end
|
||||
|
@@ -8,4 +8,4 @@
|
||||
mkdir build
|
||||
cd build
|
||||
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:io';
|
||||
|
||||
import 'package:flutter_qjs/ffi.dart';
|
||||
import 'package:flutter_qjs/flutter_qjs.dart';
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
|
||||
@@ -39,6 +40,16 @@ void main() async {
|
||||
stderr.write(result.stderr);
|
||||
expect(result.exitCode, 0);
|
||||
}, 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 {
|
||||
final qjs = FlutterQjs();
|
||||
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