0

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

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

它是不同的,因为它是一个 perl 脚本,因此不需要编译。然而,它确实需要运行——所以“make check”需要工作。

我有一个 .pro 文件大部分都在工作 - 'qmake'、'make'、'make check' 和 'make clean' 可以工作,但 'make distclean' 删除了我的脚本(因为它假设它可以通过编译一些东西)。

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

也许我应该采取其他一些方法。我曾尝试过“子目录”模板,但这不仅仅是删除 Makefile 中删除目标的行。

想法?

使用带有 Qt 4.6.0 的 Ubuntu Linux。

4

1 回答 1

0

我会研究您的脚本的自定义目标功能。也许是这样的:

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

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

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

于 2009-12-30T19:04:03.710 回答