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{}; - };