目錄小節
此pri檔案用於部署在構建qt creator時未編譯的檔案。如果使用影子構建,它將檔案複製到構建目錄中,同時新增相應的安裝目標。
用法:首先定義變數(詳細資訊如下),然後包含此pri檔案。
static_base:static_files中列出的檔案的基礎目錄
static_files:要部署的檔案列表
static_output_base:編譯輸出的基礎目錄
static_install_base:安裝輸出的基礎目錄
函式如下:
# used in custom compilers which just copy files
definereplace(stripstaticbase)
函式很簡單,返回函式引數相對於static_base的相對路徑。注釋也很明白,在僅複製檔案的自定義編譯器中使用。
接下來是
# handle conditional copying based on static_base compared to static_output_base
!isempty(static_files)
isempty(vcproj):copy2build.variable_out = pre_targetdeps
win32:copy2build.commands = $$qmake_copy \"$\" \"$\"
unix:copy2build.commands = $$qmake_copy $ $
copy2build.name = copy $
copy2build.config += no_link
qmake_extra_compilers += copy2build
}static.files = $$static_files
static.base = $$static_base
static.path = $$static_install_base
installs += static
}
指定額外編譯器或預處理器的列表。另請參閱adding compilers。
可以自定義qmake以支援新的編譯器和預處理器:注釋說的很明確,基於static_output_base與static_base的不同,處理條件拷貝。根據上述定義,您可以使用moc的直接替代品(如果有)。 該命令執行時,附加在new_headers變數中定義的所有引數(來自input成員),並將結果寫入output成員定義的檔案中。 該檔案被新增到專案的其他原始檔中。 另外,qmake將執行depend_command來生成依賴資訊,並將該資訊也放置在專案中。new_moc.output = moc_$.cpp
new_moc.commands = moc $ -o $
new_moc.depend_command = g++ -e -m $ | sed "s,^.*: ,,"
new_moc.input = new_headers
qmake_extra_compilers += new_moc
自定義編譯器規範支援以下成員:
不常用,略。
首先我們來看乙個示例,源目錄\src\share\qtcreator\data.pro
template = aux
include(../../../qtcreator.pri)
static_base = $$pwd
static_output_base = $$ide_data_path
static_install_base = $$install_data_path
static_files = \
$$pwd/externaltools/lrelease.xml \
$$pwd/externaltools/lupdate.xml \
$$pwd/externaltools/qmlviewer.xml \
$$pwd/externaltools/qmlscene.xml
unix else
include(../../../qtcreatordata.pri)
data.pro首先定義了用法中描述的四個變數,然後呼叫qtcreatordata.pri。
要部署的檔案static_files,源目錄src/share/qtcreator/externaltools/*
待部署檔案的基礎目錄static_base,源目錄/src/share/qtcreator
編譯輸出目錄static_output_base,構建目錄/share/qtcreator
安裝輸出目錄static_install_base,安裝目錄/share/qtcreator
下面分析接著分析qtcreatordata.pri。
如果四個變數有乙個值為空,則退出。
如果static_base與static_output_base不一樣,則自定義編譯物件copy2build,指定輸入input,輸出output,拷貝命令commands,描述name,配置config。
設定安裝集static。
我們再來看乙個示例,源目錄\src\share\3rdparty\data.pro
template = aux
include(../../../qtcreator.pri)
static_base = $$pwd
static_output_base = $$ide_data_path
static_install_base = $$install_data_path
data_dirs = \
generic-highlighter \
fonts
for(data_dir, data_dirs)
include(../../../qtcreatordata.pri)
和上乙個類似。
這裡大家注意下第一行template = aux
,我們在qt creator原始碼全方面分析(3-1)介紹過,aux的含義是:
建立乙個不生成任何內容的makefile。 如果不需要呼叫任何編譯器來建立目標,請使用此選項;想必大家也明白了,這個pri的功能,其實就是開頭說的,把這些資料/配置檔案等複製到構建目錄中。
原創造福大家,共享改變世界
獻出一片愛心,溫暖作者心靈
qt creator原始碼全方面分析 2 0
目錄 支援其他檔案型別 執行外部工具 所有主題 qt creator是為qt開發人員的需求量身定製的跨平台整合開發環境 ide qt creator可以通過多種方式擴充套件。例如,qt creator架構基於外掛程式載入器,這意味著外掛程式載入器以外的所有功能都在外掛程式中實現。但是,您可以擴充套件...
qt creator原始碼全方面分析 2 6
目錄 編寫訊息 ui文字大寫 使用句子樣式大寫 準備本地化 qt creator通用條款 請遵循本節中的準則,以確保擴充套件與qt creator ui保持一致,並且可以輕鬆地將其本地化為其他語言。編寫ui文字時,請確保它 使用者介面文字應簡潔明瞭且經濟實惠。避免使用不必要的內容詞和短語。但是,更重...
qt creator原始碼全方面分析 4 2
目錄外掛程式的本質就是動態鏈結庫,對於庫,需要匯出符號,供使用者匯入使用。在qt creator的原始碼中,存在固定的匯入匯出模式。對於每個庫和外掛程式,都有乙個xx global.h標頭檔案,其中xx為庫或外掛程式名。示例如下 pragma once include if defined xx l...