QMake SUBDIRS 项目:如何从顶层 Makefile 调用 release-clean?

6
我正在使用一个Qt .pro文件,使用SUBDIRS模板(主要遵循this answer)。
此外,我正在使用qmake -recursive MyProject.pronmake Release构建我的解决方案。
现在我想提供一个单独的批处理文件来清理发布输出和元文件(不包括调试文件)。
问题是,对于顶级Makefile,只有cleandistcleanqmake生成,而对于子目录,还有release-cleandebug-clean(文件夹中还包含额外的Makefile.DebugMakefile.Release)。
我想做的是调用:
nmake Makefile release-clean

从批处理脚本中调用。然而,顶层makefile不包含此配置。
现在,我可以手动为每个子项目调用相等的行,但这显然是我最不喜欢的选项。
是否有一种方法可以让qmake为顶层makefile生成一个release-clean目标,或者有另一种简单清除发布文件的方法?
附注:我正在使用nmake,因此是Windows(XP),并使用MSVC(2008)。
2个回答

2
以下批处理脚本可以完成此任务:
REM set up environment
SET VISUALDIR=C:\PROGRA~1\MICROS~1.0
PUSHD %VISUALDIR%\VC
CALL vcvarsall.bat x86
POPD

REM clean solution
msbuild yoursolution.sln /p:Configuration=Release /t:clean

REM and you may want to add a build command :
msbuild yoursolution.sln /p:Configuration=Release

如果您有一个VS解决方案,这是正确的。然而,我只是在.pro文件上使用qmake,然后使用nmake。我可以尝试添加qmake -tp vc -recursive xxxx.pro来生成sln文件,然后按照您建议的方式进行编译。 - Tim Meyer
@TimMeyer 哦,好的。确实我以为你在使用可视化解决方案。 - azf

0

你试过运行nmake Makefile.Release clean吗?这应该可以完成任务。


你可能没有意识到,但这篇文章已经有9年了。自那时以来发生了很多变化,我不再遇到这个问题,所以我无法确定这是否有效。 - Tim Meyer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接