From 2ebd7f9182a27e602ce193cca4e9bdb64e781958 Mon Sep 17 00:00:00 2001 From: daiqingshuang Date: Mon, 7 Apr 2025 17:59:35 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=9D=80=E8=89=B2=E5=99=A8?= =?UTF-8?q?=E7=BC=96=E8=AF=91=E5=A4=B1=E8=B4=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CMakeLists.txt | 14 ++++++------- src/mirage_widget/src/style/mirage_style.h | 24 +++++++++++++++++++++- 2 files changed, 30 insertions(+), 8 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index ee4823c..01b07fb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -30,6 +30,13 @@ else () endif () add_definitions(-DMIRAGE_HDR_FORMAT=${MIRAGE_HDR_FORMAT} -DMIRAGE_PIXEL_FORMAT=${MIRAGE_PIXEL_FORMAT}) +# --- 设置项目根目录变量 --- +# **定义项目源代码根目录变量**: +# CMAKE_CURRENT_SOURCE_DIR 在根 CMakeLists.txt 中即为项目源代码的根目录 +# 使用 PARENT_SCOPE 使该变量在调用此函数的 CMakeLists.txt 文件中也可用 +set(MIRAGE_ROOT_DIR ${CMAKE_CURRENT_SOURCE_DIR}) +message(STATUS "mirage 项目根源目录 (MIRAGE_ROOT_DIR) 设置为: ${MIRAGE_ROOT_DIR}") + include(cmake/retrieve_files.cmake) include(cmake/detect_os.cmake) include(cmake/config_macos.cmake) @@ -40,13 +47,6 @@ include(cmake/mirage_utils.cmake) # 配置输出目录 configure_project_defaults() -# --- 设置项目根目录变量 --- -# **定义项目源代码根目录变量**: -# CMAKE_CURRENT_SOURCE_DIR 在根 CMakeLists.txt 中即为项目源代码的根目录 -# 使用 PARENT_SCOPE 使该变量在调用此函数的 CMakeLists.txt 文件中也可用 -set(MIRAGE_ROOT_DIR ${CMAKE_CURRENT_SOURCE_DIR}) -message(STATUS "mirage 项目根源目录 (MIRAGE_ROOT_DIR) 设置为: ${MIRAGE_ROOT_DIR}") - # 如果是Debug模式, 添加宏定义 if (CMAKE_BUILD_TYPE STREQUAL "Debug") add_definitions(-DDEBUG=1) diff --git a/src/mirage_widget/src/style/mirage_style.h b/src/mirage_widget/src/style/mirage_style.h index d4af4f2..b9dcba4 100644 --- a/src/mirage_widget/src/style/mirage_style.h +++ b/src/mirage_widget/src/style/mirage_style.h @@ -12,8 +12,30 @@ public: bool load_config(const std::filesystem::path& in_filename); + [[nodiscard]] const auto& get_config() const { + return tbl; + } + + [[nodiscard]] auto name() const { + return tbl["info"]["name"].value_or("unknown"); + } + [[nodiscard]] auto version() const { + return tbl["info"]["version"].value_or("unknown"); + } + [[nodiscard]] auto author() const { + return tbl["info"]["author"].value_or("unknown"); + } + [[nodiscard]] auto description() const { + return tbl["info"]["description"].value_or("unknown"); + } + [[nodiscard]] auto license() const { + return tbl["info"]["license"].value_or("unknown"); + } + + [[nodiscard]] auto get(const std::string& key) const { + return tbl[key]; + } private: mirage_style() = default; toml::table tbl{}; - };