首页 > 解决方案 > 在构建主目标之前,Qmake 在阻塞主目标的同时构建另一个源

问题描述

在 qmake 执行自己的执行以构建主要目标之前,我想清理编译另一个不同的源并安装它的库。以下链接很好地解释了它,但我遇到的问题是我想生成多个头文件和库,并且我希望该构建阻止 qmake 操作。在我看来,使用这两种方法都不会阻止主要的 qmake 执行。

使用并行构建时 PRE_TARGETDEPS 失败

方法1(main-app.pro):

...
extralib.target = extra
extralib.commands = cd $$ANOTHER_PROJECT_DIR; \   
                    make clean && make && make install; \

extralib.depends = FORCE
QMAKE_EXTRA_TARGETS += extralib
PRE_TARGETDEPS = extra

方法2(main-app.pro):

...
TO_GENERATE = $$HOME/myapi/include/a.h $$HOME/myapi/include/b.h

custom_generator.output  = $$HOME/myapi/include/a.h $$HOME/myapi/include/b.h
custom_generator.commands = cd $$ANOTHER_PROJECT_DIR; \
                            make clean && make && make install;
custom_generator.depends = FORCE
custom_generator.input = TO_GENERATE
custom_generator.variable_out = SOURCES
QMAKE_EXTRA_COMPILERS += custom_generator

在其他一切之前,我希望 qmake 进入我的主要构建所需的$$ANOTHER_PROJECT_DIR、do make clean && make && make install、create$$HOME/myapi/lib和。$$HOME/myapi/include请记住,我不能使用 SUBDIRS,因为库使用 GNU Make,而我的主要构建使用 QMake。

目前发生的是库构建命令启动,QMake 立即决定继续主构建,而不是等待库完全完成构建和安装。

任何建议都非常感谢。

标签: qtqmake

解决方案


推荐阅读