本次提交包含多项核心更新: 1. 全量替换项目内所有xianyan.app域名变更为s2ss.com,包含配置文件、路由、隐私政策等 2. 重构图表库从fl_chart迁移至syncfusion_flutter_charts,优化图表渲染效果 3. 新增宽屏分屏布局支持,包含右侧面板注册表与可拖拽分割线 4. 完善触觉反馈服务与认证感知Mixin,修复多处内存泄漏问题 5. 合并勋章墙与金币记录入口至成就中心,简化个人中心导航 6. 新增收藏与时间线数据合并导入功能 7. 修复多处UI样式问题,统一主题颜色使用规范 8. 新增日历同步与跨平台触觉反馈依赖库 9. 修复BotToast初始化流程,避免路由切换时的弹窗崩溃
142 lines
4.6 KiB
CMake
142 lines
4.6 KiB
CMake
# ============================================================
|
|
# 闲言APP (WordsLeisure) — Linux CMakeLists.txt
|
|
# 创建时间: 2026-04-20
|
|
# 更新时间: 2026-05-18
|
|
# 作用: Linux平台构建配置
|
|
# 上次更新: 完善Linux平台构建依赖和桌面集成
|
|
# ============================================================
|
|
|
|
cmake_minimum_required(VERSION 3.13)
|
|
project(runner LANGUAGES CXX)
|
|
|
|
set(BINARY_NAME "xianyan")
|
|
set(APPLICATION_ID "apps.xy.xianyan")
|
|
set(APPLICATION_NAME "闲言")
|
|
set(APPLICATION_VERSION "5.2.0")
|
|
|
|
cmake_policy(SET CMP0063 NEW)
|
|
|
|
set(CMAKE_INSTALL_RPATH "$ORIGIN/lib")
|
|
|
|
if(FLUTTER_TARGET_PLATFORM_SYSROOT)
|
|
set(CMAKE_SYSROOT ${FLUTTER_TARGET_PLATFORM_SYSROOT})
|
|
set(CMAKE_FIND_ROOT_PATH ${CMAKE_SYSROOT})
|
|
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
|
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
|
|
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
|
|
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
|
|
endif()
|
|
|
|
if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
|
|
set(CMAKE_BUILD_TYPE "Debug" CACHE
|
|
STRING "Flutter build mode" FORCE)
|
|
set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS
|
|
"Debug" "Profile" "Release")
|
|
endif()
|
|
|
|
function(APPLY_STANDARD_SETTINGS TARGET)
|
|
target_compile_features(${TARGET} PUBLIC cxx_std_14)
|
|
target_compile_options(${TARGET} PRIVATE -Wall -Werror)
|
|
target_compile_options(${TARGET} PRIVATE "$<$<NOT:$<CONFIG:Debug>>:-O3>")
|
|
target_compile_definitions(${TARGET} PRIVATE "$<$<NOT:$<CONFIG:Debug>>:NDEBUG>")
|
|
endfunction()
|
|
|
|
set(FLUTTER_MANAGED_DIR "${CMAKE_CURRENT_SOURCE_DIR}/flutter")
|
|
add_subdirectory(${FLUTTER_MANAGED_DIR})
|
|
|
|
# === System-level dependencies ===
|
|
find_package(PkgConfig REQUIRED)
|
|
|
|
# GTK3 — Flutter Linux核心GUI框架
|
|
pkg_check_modules(GTK REQUIRED IMPORTED_TARGET gtk+-3.0)
|
|
|
|
# GStreamer — audioplayers_linux / record_linux 音频录制播放
|
|
pkg_check_modules(GSTREAMER IMPORTED_TARGET gstreamer-1.0)
|
|
pkg_check_modules(GSTREAMER_BASE IMPORTED_TARGET gstreamer-base-1.0)
|
|
|
|
# libmpv — 视频播放后备(如需media_kit)
|
|
pkg_check_modules(MPV IMPORTED_TARGET mpv)
|
|
|
|
# Bluetooth — flutter_blue_plus Linux BLE支持
|
|
pkg_check_modules(BLUEZ IMPORTED_TARGET bluez)
|
|
|
|
# ALSA — 音频底层驱动
|
|
pkg_check_modules(ALSA IMPORTED_TARGET alsa)
|
|
|
|
# libnotify — 系统通知(flutter_local_notifications)
|
|
pkg_check_modules(LIBNOTIFY IMPORTED_TARGET libnotify)
|
|
|
|
# libsecret — flutter_secure_storage Linux密钥存储
|
|
pkg_check_modules(LIBSECRET IMPORTED_TARGET libsecret)
|
|
|
|
# X11 — 屏幕信息/窗口管理辅助
|
|
pkg_check_modules(X11 IMPORTED_TARGET x11)
|
|
|
|
# DBus — 网络信息/电池/设备信息等系统服务
|
|
pkg_check_modules(DBUS_GLIB IMPORTED_TARGET dbus-glib-1)
|
|
|
|
add_subdirectory("runner")
|
|
|
|
add_dependencies(${BINARY_NAME} flutter_assemble)
|
|
|
|
set_target_properties(${BINARY_NAME}
|
|
PROPERTIES
|
|
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/intermediates_do_not_run"
|
|
)
|
|
|
|
include(flutter/generated_plugins.cmake)
|
|
|
|
# === Installation ===
|
|
set(BUILD_BUNDLE_DIR "${PROJECT_BINARY_DIR}/bundle")
|
|
if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
|
|
set(CMAKE_INSTALL_PREFIX "${BUILD_BUNDLE_DIR}" CACHE PATH "..." FORCE)
|
|
endif()
|
|
|
|
install(CODE "
|
|
file(REMOVE_RECURSE \"${BUILD_BUNDLE_DIR}/\")
|
|
" COMPONENT Runtime)
|
|
|
|
set(INSTALL_BUNDLE_DATA_DIR "${CMAKE_INSTALL_PREFIX}/data")
|
|
set(INSTALL_BUNDLE_LIB_DIR "${CMAKE_INSTALL_PREFIX}/lib")
|
|
|
|
install(TARGETS ${BINARY_NAME} RUNTIME DESTINATION "${CMAKE_INSTALL_PREFIX}"
|
|
COMPONENT Runtime)
|
|
|
|
install(FILES "${FLUTTER_ICU_DATA_FILE}" DESTINATION "${INSTALL_BUNDLE_DATA_DIR}"
|
|
COMPONENT Runtime)
|
|
|
|
install(FILES "${FLUTTER_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}"
|
|
COMPONENT Runtime)
|
|
|
|
foreach(bundled_library ${PLUGIN_BUNDLED_LIBRARIES})
|
|
install(FILES "${bundled_library}"
|
|
DESTINATION "${INSTALL_BUNDLE_LIB_DIR}"
|
|
COMPONENT Runtime)
|
|
endforeach(bundled_library)
|
|
|
|
set(NATIVE_ASSETS_DIR "${PROJECT_BUILD_DIR}native_assets/linux/")
|
|
install(DIRECTORY "${NATIVE_ASSETS_DIR}"
|
|
DESTINATION "${INSTALL_BUNDLE_LIB_DIR}"
|
|
COMPONENT Runtime)
|
|
|
|
set(FLUTTER_ASSET_DIR_NAME "flutter_assets")
|
|
install(CODE "
|
|
file(REMOVE_RECURSE \"${INSTALL_BUNDLE_DATA_DIR}/${FLUTTER_ASSET_DIR_NAME}\")
|
|
" COMPONENT Runtime)
|
|
install(DIRECTORY "${PROJECT_BUILD_DIR}/${FLUTTER_ASSET_DIR_NAME}"
|
|
DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" COMPONENT Runtime)
|
|
|
|
if(NOT CMAKE_BUILD_TYPE MATCHES "Debug")
|
|
install(FILES "${AOT_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}"
|
|
COMPONENT Runtime)
|
|
endif()
|
|
|
|
# === Desktop Integration ===
|
|
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/apps.xy.xianyan.desktop"
|
|
DESTINATION "${CMAKE_INSTALL_PREFIX}/"
|
|
COMPONENT Runtime)
|
|
|
|
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/apps.xy.s2ss.comdata.xml"
|
|
DESTINATION "${CMAKE_INSTALL_PREFIX}/"
|
|
COMPONENT Runtime)
|