我有一个使用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”。请注意,默认情况下,不应该显式运行此自定义目标。
答案 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