qmake 参数
创始人
2024-03-14 02:23:22
0

E:\workspace\QtWork\qmake\option.cpp:Option::init()
-project  设置qmake生成工程相关文件,如果用qt creator开发的话这个命令参数基本用不到。
-prl 设置qmake生成prl文件。
-set 设置自定义属性,会存放到注册表中。具体参考属性
-unset  取消自定义属性
-query 查询自定义属性
-makefile  默认模式。设置qmake通过输入的.pro文件生成makefile

E:\workspace\QtWork\qmake\library\qmakeglobals.cpp:QMakeGlobals::addCommandLineArguments()
-- extraargs 设置内置变量QMAKE_EXTRA_ARGS的值,该内置变量默认是空,时态为before,必须设置为最后一个参数

下面的state,设置命令行参数的解析时机,默认为before,每一个state可以设置command和-config参数。command 必须含有"="符号,为了避免被误解析,需要用双引号将command引用起来,使用参考本文下面的案例。如果要在工程的pro文件中输出命令行输入的命令的变量值,需要使用-early或-before。具体原因参考:qmake与配置文件
-early
-before
-after
-late

-config  添加配置属性
-nocache  
-cache 
-qtconf  设置qt.conf qt读取conf文件


-platform/-spec 设置主机架构
-xplatform/-xspec 设置目标机架构
参数中没有设置回进入环境变量中查找QMAKESPEC和XQMAKESPEC变量,环境变量中没找到会到属性中查找QMAKE_SPEC和QMAKE_XSPEC变量。


-template/-t  ,设置模板,默认为app,等价于pro文件中的TEMPLATE变量,模板有以下选项

-template_prefix/-tp  为template 设置前缀。

-win32  设置路径间隔符号为 (dir_sep = QLatin1Char('\\');)
-unix    设置路径间隔符号为(dir_sep = QLatin1Char('/');)

E:\workspace\QtWork\qmake\option.cpp:Option::parseCommandLine()
-d debug-level   设置日志等级 -d表示1级  -d -d表示2级
-v/-version/--version  qmake版本
-h/-help/--help 

warn-level  设置警告类型
-Wall
-Wparser
-Wlogic
-Wdeprecated
-Wnone

-r/-recursive
-nr/-norecursive
-o/-output  指定输出的文件名,如果指定为"-"表示输出到 stdout 。

Option::qmake_mode == Option::QMAKE_GENERATE_MAKEFILE ||Option::qmake_mode == Option::QMAKE_GENERATE_PRL
-nodepend/-nodepends
-nomoc
-createstub
-nodependheuristics
-E  (do_preprocess)
project_files.append(filepath);

Option::qmake_mode == Option::QMAKE_GENERATE_PROJECT
-nopwd
project_dirs.append(dirpath);

案例:

qmake -set myproperty ok  //设置属性

-config与state结合使用,默认state是before(需要注意,qmake无法识别参数中的tab键,会将tab键当做一个字符,这是一个qmake的小小的bug):

E:/test/t1.pro -o E:/test/ -spec win32-msvc -config dddd "var1=1111" "CONFIG+=debug"  "CONFIG+=qml_debug" -d   -early -config aaaa "var2=2222" -after -config bbbb "var3=3333" -late -config cccc "var3=4444"  -- VVV1

该命令对应的组装出来的代码:

组装出来的不同state的command
对应断点堆栈
//E:\workspace\QtWork\qmake\library\qmakeglobals.cpp
void QMakeGlobals::commitCommandLineArguments(QMakeCmdLineParserState &state)
{if (!state.extraargs.isEmpty()) {QString extra = fL1S("QMAKE_EXTRA_ARGS =");for (const QString &ea : qAsConst(state.extraargs))extra += QLatin1Char(' ') + QMakeEvaluator::quoteValue(ProString(ea));state.cmds[QMakeEvalBefore] << extra;}for (int p = 0; p < 4; p++) {if (!state.configs[p].isEmpty())state.cmds[p] << (fL1S("CONFIG += ") + state.configs[p].join(QLatin1Char(' ')));extra_cmds[p] = state.cmds[p].join(QLatin1Char('\n'));}if (xqmakespec.isEmpty())xqmakespec = qmakespec;
}

相关内容

热门资讯

加强知识产权纠纷仲裁工作 本报讯(记者王金虎)为贯彻落实党中央、国务院关于强化知识产权保护的决策部署,加强知识产权纠纷仲裁工作...
锻造作风建设的制度利器 习近平总书记在2025年第23期《求是》杂志发表的重要文章《推进党的自我革命要做到“五个进一步到位”...
“法律尺度”背后有这样的“教育... 12月23日,民族团结进步促进法草案、国家通用语言文字法修订草案提请十四届全国人大常委会第十九次会议...
金华市修订完善知识产权强市建设... 近期,《金华市人民政府关于深入实施知识产权强市建设的若干意见》(以下简称《意见》)修订完成。12月2...
“地质瑰宝”披上法治“防护衣”... 华声在线12月25日讯(全媒体记者 杨元崇)今天,《湘西世界地质公园保护条例》正式公布。 湘西土家族...
120亿元!安徽真金白银推进学... 记者近日从安徽省财政厅获悉,2025年,省财政共统筹资金120亿元落实各项学生资助政策。财政资金的持...
国家出台首个支持西部陆海新通道... 12月25日,“金融支持加快西部陆海新通道建设有关情况”新闻发布会在北京举行。中国人民银行党委委员、...
广东华企通法律咨询有限公司成立... 天眼查显示,近日,广东华企通法律咨询有限公司成立,法定代表人为彭俊翔,注册资本500万人民币,由盈合...
低空经济持续获政策支持 业绩有... 人民财讯12月26日电,低空经济作为国家战略性新兴产业,持续受到政策支持。 作为万亿级产业,低空经济...
【深圳特区报】从“制度设计图”... 近日,深圳市财政局召开“数据资产全过程管理试点工作培训暨经验交流会”(以下简称“培训交流会”),围绕...