Qt qmake - 如何阻止它添加删除目标的规则

时间:2009-12-30 16:49:21

标签: qt qmake

我正在尝试将单元测试添加到一组其他测试中。所有测试都在他们自己的子目录中,每个子目录都有自己的.pro文件和包含测试本身的.cpp文件。在其中一个子目录中运行qmake会创建一个Makefile,然后运行make运行编译器来生成TARGET。测试实际上是由'检查'目标运行的 - 即'make check'。

我试图添加的测试是不同的,但它试图假装表现方式相同。

它是不同的,因为它是一个perl脚本,因此不需要编译。但是,它确实需要运行 - 所以'make check'需要运行。

我的.pro文件大部分都在工作 - 'qmake','make','make check'和'make clean'都可以,但'make distclean'删除了我的脚本(因为它假设它可以通过编译来重新生成。)

所以,问题是,如何阻止它删除我的脚本?

也许我应该采取其他一些方法。我曾尝试'subdirs'模板,但这不仅仅是删除Makefile中删除TARGET的行。

想法?

在Qt 4.6.0中使用Ubuntu Linux。

1 个答案:

答案 0 :(得分:0)

我会查看脚本的custom target功能。也许是这样的:

check.commands = <scriptname>
check.depends = <any dependencies>
QMAKE_EXTRA_TARGETS += check

以这种方式执行操作将在依赖项更改时运行check命令,但只要您未指定check.target,它就不应删除任何内容。 (如果你的脚本确实产生输出,那么也许应该在check.target。)此外,由于它被指定为“额外”命令,qmake不应该创建命令来删除distclean中的脚本。

这假设您的脚本位于其自己的子目录中(您声明),并且是唯一需要在该子目录中运行的“检查”命令(问题隐含的类型,但未直接说明)。