mirror of
https://gitlab.com/veilid/veilid.git
synced 2025-08-03 20:24:16 -04:00
fix windows build
This commit is contained in:
parent
172730a132
commit
32908dd719
7 changed files with 263 additions and 152 deletions
|
@ -17,8 +17,9 @@ target_include_directories(${PLUGIN_NAME} INTERFACE
|
|||
"${CMAKE_CURRENT_SOURCE_DIR}/include")
|
||||
target_link_libraries(${PLUGIN_NAME} PRIVATE flutter flutter_wrapper_plugin)
|
||||
|
||||
include(./rust.cmake)
|
||||
# List of absolute paths to libraries that should be bundled with the plugin
|
||||
set(veilid_bundled_libraries
|
||||
""
|
||||
"$<TARGET_FILE:${CRATE_NAME}-shared>"
|
||||
PARENT_SCOPE
|
||||
)
|
||||
)
|
23
veilid-flutter/windows/rust.cmake
Normal file
23
veilid-flutter/windows/rust.cmake
Normal file
|
@ -0,0 +1,23 @@
|
|||
# We include Corrosion inline here, but ideally in a project with
|
||||
# many dependencies we would need to install Corrosion on the system.
|
||||
# See instructions on https://github.com/AndrewGaspar/corrosion#cmake-install
|
||||
# Once done, uncomment this line:
|
||||
# find_package(Corrosion REQUIRED)
|
||||
|
||||
include(FetchContent)
|
||||
|
||||
FetchContent_Declare(
|
||||
Corrosion
|
||||
GIT_REPOSITORY https://github.com/AndrewGaspar/corrosion.git
|
||||
GIT_TAG origin/master # Optionally specify a version tag or branch here
|
||||
)
|
||||
|
||||
FetchContent_MakeAvailable(Corrosion)
|
||||
|
||||
corrosion_import_crate(MANIFEST_PATH ${CMAKE_SOURCE_DIR}/../../rust/Cargo.toml)
|
||||
|
||||
# Flutter-specific
|
||||
|
||||
set(CRATE_NAME "veilid-flutter")
|
||||
target_link_libraries(${PLUGIN_NAME} PUBLIC ${CRATE_NAME})
|
||||
# list(APPEND PLUGIN_BUNDLED_LIBRARIES $<TARGET_FILE:${CRATE_NAME}-shared>)
|
|
@ -28,54 +28,54 @@ namespace
|
|||
|
||||
private:
|
||||
// Called when a method is called on this plugin's channel from Dart.
|
||||
void HandleMethodCall(
|
||||
const flutter::MethodCall<flutter::EncodableValue> &method_call,
|
||||
std::unique_ptr<flutter::MethodResult<flutter::EncodableValue>> result);
|
||||
// void HandleMethodCall(
|
||||
// const flutter::MethodCall<flutter::EncodableValue> &method_call,
|
||||
// std::unique_ptr<flutter::MethodResult<flutter::EncodableValue>> result);
|
||||
};
|
||||
|
||||
// static
|
||||
void VeilidPlugin::RegisterWithRegistrar(
|
||||
flutter::PluginRegistrarWindows *registrar)
|
||||
{
|
||||
auto channel =
|
||||
std::make_unique<flutter::MethodChannel<flutter::EncodableValue>>(
|
||||
registrar->messenger(), "veilid",
|
||||
&flutter::StandardMethodCodec::GetInstance());
|
||||
// auto channel =
|
||||
// std::make_unique<flutter::MethodChannel<flutter::EncodableValue>>(
|
||||
// registrar->messenger(), "veilid",
|
||||
// &flutter::StandardMethodCodec::GetInstance());
|
||||
|
||||
auto plugin = std::make_unique<VeilidPlugin>();
|
||||
// auto plugin = std::make_unique<VeilidPlugin>();
|
||||
|
||||
channel->SetMethodCallHandler(
|
||||
[plugin_pointer = plugin.get()](const auto &call, auto result)
|
||||
{
|
||||
plugin_pointer->HandleMethodCall(call, std::move(result));
|
||||
});
|
||||
// channel->SetMethodCallHandler(
|
||||
// [plugin_pointer = plugin.get()](const auto &call, auto result)
|
||||
// {
|
||||
// plugin_pointer->HandleMethodCall(call, std::move(result));
|
||||
// });
|
||||
|
||||
registrar->AddPlugin(std::move(plugin));
|
||||
// registrar->AddPlugin(std::move(plugin));
|
||||
}
|
||||
|
||||
VeilidPlugin::VeilidPlugin() {}
|
||||
|
||||
VeilidPlugin::~VeilidPlugin() {}
|
||||
|
||||
void VeilidPlugin::HandleMethodCall(
|
||||
const flutter::MethodCall<flutter::EncodableValue> &method_call,
|
||||
std::unique_ptr<flutter::MethodResult<flutter::EncodableValue>> result)
|
||||
{
|
||||
// if (method_call.method_name().compare("getPlatformVersion") == 0) {
|
||||
// std::ostringstream version_stream;
|
||||
// version_stream << "Windows ";
|
||||
// if (IsWindows10OrGreater()) {
|
||||
// version_stream << "10+";
|
||||
// } else if (IsWindows8OrGreater()) {
|
||||
// version_stream << "8";
|
||||
// } else if (IsWindows7OrGreater()) {
|
||||
// version_stream << "7";
|
||||
// }
|
||||
// result->Success(flutter::EncodableValue(version_stream.str()));
|
||||
// } else {
|
||||
result->NotImplemented();
|
||||
// }
|
||||
}
|
||||
// void VeilidPlugin::HandleMethodCall(
|
||||
// const flutter::MethodCall<flutter::EncodableValue> &method_call,
|
||||
// std::unique_ptr<flutter::MethodResult<flutter::EncodableValue>> result)
|
||||
// {
|
||||
// // if (method_call.method_name().compare("getPlatformVersion") == 0) {
|
||||
// // std::ostringstream version_stream;
|
||||
// // version_stream << "Windows ";
|
||||
// // if (IsWindows10OrGreater()) {
|
||||
// // version_stream << "10+";
|
||||
// // } else if (IsWindows8OrGreater()) {
|
||||
// // version_stream << "8";
|
||||
// // } else if (IsWindows7OrGreater()) {
|
||||
// // version_stream << "7";
|
||||
// // }
|
||||
// // result->Success(flutter::EncodableValue(version_stream.str()));
|
||||
// // } else {
|
||||
// result->NotImplemented();
|
||||
// // }
|
||||
// }
|
||||
|
||||
} // namespace
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue