Qt从顶层调用自定义子目标

时间:2017-06-20 09:29:26

标签: c++ qt qmake

我有一个使用SUBDIRS的Qt 5.8项目,其中一个子目标的custom target类似于此:

main.pro:

SUBDIRS = subtarget

subtarget.pro:

mytarget.target = .buildfile
mytarget.commands = touch $$mytarget.target
mytarget.depends = mytarget2

QMAKE_EXTRA_TARGETS += mytarget

使用qmake从此生成Makefile将在子目标Makefile中正确添加我的自定义目标。但是我想从顶级Makefile中调用它,这样我就可以从顶层调用“make mytarget”。请注意,默认情况下,不应该显式运行此自定义目标。

1 个答案:

答案 0 :(得分:1)

诀窍是在顶层项目中定义一个具有相同名称的目标,并告诉qmake该目标也应该调用子目标。这可以通过将以下行添加到main.pro来完成:

mytarget.target = .buildfile
mytarget.CONFIG += recursive
mytarget.recurse_target = .buildfile
QMAKE_EXTRA_TARGETS += mytarget

我的情况是你有多个子项目,这个目标必须存在于所有子项目中。您可以为没有此目标的项目创建虚拟目标,如下所示:

dummyTarget.target = .buildfile
QMAKE_EXTRA_TARGETS += dummyTarget