- lib/print/pavo/:PavoApiW_x64.dll 的 dart:ffi 绑定(结构体布局对齐 C#,W 后缀导出名回退兼容) - pavo_printer.dart:枚举(UTF-8/UTF-16 自动解码)/状态/色带信息/单卡直打/忙碌轮询(3 分钟超时)/LayerHolder 非托管内存管理 - pavo_backend.dart:全部 ffi 调用与像素转换跑在 Isolate.run,主 isolate HTTP 服务零阻塞 - lib/image/card_image.dart:PNG data URL → 纵横比选卡面 → 手动 alpha 铺白底 → BGR24/Gray8 紧凑像素(image 包 compositeImage 对全透明像素非 src-over 语义,改为逐像素混合对齐 C#) - windows/ 目录:从 Flutter SDK windows.tmpl 手动实例化(mac 上 flutter create 拒绝生成的绕过),窗口标题"饭卡打印助手" - windows/vendor/:收录 SDK 的 PavoApiW_x64.dll/PavoCardSDK_x64.dll/HeatTB3.dll/heatthcd.bin,CMake POST_BUILD 自动拷到 exe 旁 - backend.dart 工厂接通 Windows 分支;analyze 零问题、单测 12 个全过
53 lines
2.3 KiB
CMake
53 lines
2.3 KiB
CMake
cmake_minimum_required(VERSION 3.14)
|
||
project(runner LANGUAGES CXX)
|
||
|
||
# Define the application target. To change its name, change BINARY_NAME in the
|
||
# top-level CMakeLists.txt, not the value here, or `flutter run` will no longer
|
||
# work.
|
||
#
|
||
# Any new source files that you add to the application should be added here.
|
||
add_executable(${BINARY_NAME} WIN32
|
||
"flutter_window.cpp"
|
||
"main.cpp"
|
||
"utils.cpp"
|
||
"win32_window.cpp"
|
||
"${FLUTTER_MANAGED_DIR}/generated_plugin_registrant.cc"
|
||
"Runner.rc"
|
||
"runner.exe.manifest"
|
||
)
|
||
|
||
# Apply the standard set of build settings. This can be removed for applications
|
||
# that need different build settings.
|
||
apply_standard_settings(${BINARY_NAME})
|
||
|
||
# Add preprocessor definitions for the build version.
|
||
target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION=\"${FLUTTER_VERSION}\"")
|
||
target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION_MAJOR=${FLUTTER_VERSION_MAJOR}")
|
||
target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION_MINOR=${FLUTTER_VERSION_MINOR}")
|
||
target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION_PATCH=${FLUTTER_VERSION_PATCH}")
|
||
target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION_BUILD=${FLUTTER_VERSION_BUILD}")
|
||
|
||
# Disable Windows macros that collide with C++ standard library functions.
|
||
target_compile_definitions(${BINARY_NAME} PRIVATE "NOMINMAX")
|
||
|
||
# Add dependency libraries and include directories. Add any application-specific
|
||
# dependencies here.
|
||
target_link_libraries(${BINARY_NAME} PRIVATE flutter flutter_wrapper_app)
|
||
target_link_libraries(${BINARY_NAME} PRIVATE "dwmapi.lib")
|
||
target_include_directories(${BINARY_NAME} PRIVATE "${CMAKE_SOURCE_DIR}")
|
||
|
||
# Run the Flutter tool portions of the build. This must not be removed.
|
||
add_dependencies(${BINARY_NAME} flutter_assemble)
|
||
|
||
# HiTi PavoApi SDK(windows/vendor/)拷到可执行文件旁:
|
||
# Dart 侧 DynamicLibrary.open('PavoApiW_x64.dll') 按可执行文件目录查找;
|
||
# heatthcd.bin 为 SDK 运行数据,与其余 DLL 一并部署
|
||
add_custom_command(TARGET ${BINARY_NAME} POST_BUILD
|
||
COMMAND ${CMAKE_COMMAND} -E copy_if_different
|
||
"${CMAKE_CURRENT_SOURCE_DIR}/../vendor/PavoApiW_x64.dll"
|
||
"${CMAKE_CURRENT_SOURCE_DIR}/../vendor/PavoCardSDK_x64.dll"
|
||
"${CMAKE_CURRENT_SOURCE_DIR}/../vendor/HeatTB3.dll"
|
||
"${CMAKE_CURRENT_SOURCE_DIR}/../vendor/heatthcd.bin"
|
||
$<TARGET_FILE_DIR:${BINARY_NAME}>
|
||
)
|