Cmake 自动添加一个文件夹里面的所有C++ QML文件
# 自动寻找include_directories的目标
macro(GET_DIRECTORIES RESULT TARGET_DIR)
    file(GLOB_RECURSE FILES "${TARGET_DIR}/*.hpp" "${TARGET_DIR}/*.h")
    set(TEMP_RESULT "")
    foreach(THE_FILE ${FILES})
        string(REGEX REPLACE "(.*)/.*" "\\1" TEMP_DIR ${THE_FILE})
        if(IS_DIRECTORY ${TEMP_DIR})
            list(APPEND TEMP_RESULT ${TEMP_DIR})
        endif()
    endforeach(THE_FILE ${FILES})
    list(REMOVE_DUPLICATES TEMP_RESULT)
    set(${RESULT} ${TEMP_RESULT})
endmacro()

# 获取qml文件的名称
macro(GET_QML_FILE_NAME RESULT TARGET_DIR)
    file(GLOB_RECURSE QML_FILE_NAMES_WITH_PATH "${TARGET_DIR}/*.qml")
    set(TEMP_RESULT "")
    foreach(QML_FILE_NAME ${QML_FILE_NAMES_WITH_PATH})
        string(REGEX REPLACE "${CMAKE_CURRENT_SOURCE_DIR}/" "" QML_FILE ${QML_FILE_NAME})
        list(APPEND TEMP_RESULT ${QML_FILE})
    endforeach(QML_FILE_NAME ${QML_FILE_NAMES_WITH_PATH})
    list(REMOVE_DUPLICATES TEMP_RESULT)
    set(${RESULT} ${TEMP_RESULT})
endmacro()


上面的两个函数的使用示例
GET_QML_FILE_NAME(QML_SRC_FILES "./qml/")                # 获取所有qml文件
qt_add_qml_module(appXxxxx
    URI AppXxxxx
    VERSION 1.0
    QML_FILES Main.qml ${QML_SRC_FILES}
)

知识共享许可协议


本文由 CharSaMa's blog 创作,采用

知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议(CC BY-NC-SA 4.0)
授权。




  • 允许行为:标注作者及原文出处,衍生内容需沿用相同协议

  • 禁止行为:商业用途(包括广告、付费内容、商品推广等)



© 2025 CharSaMa's blog。协议全文:法律文本

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇