views:

2715

answers:

5

Have a SomeLib.pro file that contains:

CONFIG  += debug
TEMPLATE = lib
TARGET = SomeLib
..

Then in a dependent SomeApp.pro:

..
debug:LIBS += -lSomeLib_debug
..

How can I force SomeApp to build if I touched SomeLib in qmake?

A: 

surely that can't be possible, you are talking about using qmake to do a reverse dependency lookup? so what u want is for it to build app B (and any other app dependent on library A) after you've made a change to library A?

that's a bit like saying recompile all visual basic apps if vbrun300.dll is updated?

Zahir
+1  A: 

qmake does not provide this ability.

Instead, put your app and lib in subdirectories, then create a Makefile in their parent directory that looks something like this:

all: FRC
    cd Somelib && qmake && $(MAKE) 
    cd SomeApp && qmake && $(MAKE)

FRC:

Then always run make from this directory.

Mark Beckwith
I'm making use of qtcreator. Thus I was hoping for a solution in a .pro file.
Derick
+5  A: 

It's ugly because you need to give the exact library file name, but this should work:

TARGETDEPS += libfoo.a

Ariya Hidayat
Great! Just what I needed!
Derick
A: 

In reply to Zahir's comment, it's perhaps worth pointing out that stating this dependency in qmake files is unnecessary if using DLLs, but is essential if your exe depends on a static library.

Clare Macrae
A: 

I used:

POST_TARGETDEPS += c:/open-en/lib/win32mingw/libosal_based.a

It works, but is clumsy since it is necessary specify full path to library, which is different for every operating system/compiler.

Pekka Lehtikoski