English 中文(简体)
Qt qmake - how to stop it adding rules to delete the target
原标题:
  • 时间:2009-12-30 16:49:20
  •  标签:
  • qt
  • qmake

I am trying to add a unit test to a group of other tests. All the tests are in their own subdirectories, each with it s own .pro file and the .cpp file which contains the tests themselves. Running qmake in one of the subdirectories creates a Makefile, and then running make runs the compiler to make the TARGET. The tests are actually run by the check target - ie with make check .

The test I m trying to add is different, but it is trying to pretend to behave the same way.

It is different because it is a perl script and so doesn t need to be compiled. It does, however, need to be run - so make check needs to work.

I had a .pro file working for the most part - qmake , make , make check , and make clean would work, but make distclean removed my script (since it assumes it can be regenerated by compiling something).

So, the question is, how do I stop it from removing my script?

Perhaps there s some other approach I should be taking. I had tried the subdirs TEMPLATE, but that does more than just remove the line in Makefile that deletes the TARGET.

Ideas?

Using Ubuntu Linux with Qt 4.6.0.

问题回答

I would look into the custom target capabilities for your script. Maybe something like this:

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

Doing things this way will run the check command when the dependencies change, but as long as you don t specify check.target then it shouldn t remove anything. (If your script does produce output, then perhaps that should be in check.target.) Also, since it is specified as an "extra" command, qmake shouldn t create commands to delete your script in a distclean.

This is assuming that your script is in its own subdirectory (which you state), and is the only "check" command that needs run in that subdirectory (kind of implied by the question, but not directly stated).





相关问题
Qt: Do events get processed in order?

If I had a class A, where one of its functions does: void A::func() { emit first_signal(); emit second_signal(); } Assuming that a class B has 2 slots, one connected to first_signal, and the ...

How to determine how much free space on a drive in Qt?

I m using Qt and want a platform-independent way of getting the available free disk space. I know in Linux I can use statfs and in Windows I can use GetDiskFreeSpaceEx(). I know boost has a way, ...

Drag & drop with .ui files

I m having big troubles with drag & drop. I ve created a new Qt Designer Form Class in which I have one QListWidget and one QWidget. Now I want to enable dragging & dropping between these two ...

Link errors on Snow Leopard

I creating a small desktop application using Qt and Poco on Mac OS X Snow Leopard. Qt works fine, but once I started linking with Poco I get the following warning: ld: warning: in /Developer/SDKs/...

Showing two windows in Qt4

My friend and I have each created parts of a GUI using Qt 4. They both work independently and I am trying to integrate his form with the my main window. As of now this is the code I am using to try ...

Qt equivalent of .NET data binding?

Is there an equivalent of .NET s data binding in Qt? I want to populate some combo boxes and other widgets with QStrings that refer to specific entities in my database. However, it would be cleaner ...

热门标签