9

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?

Derick Schoonbee
  • 2,971
  • 1
  • 23
  • 39

6 Answers6

16

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

TARGETDEPS += libfoo.a

Ariya Hidayat
  • 12,523
  • 3
  • 46
  • 39
3

QT Creator will do the work if you click "Add library..." in the context menu of the project that should include the library.

These variables are configured automatically for you:

  • LIBS
  • INCLUDEPATH
  • DEPENDPATH
  • PRE_TARGETDEPS

See also http://doc.qt.digia.com/qtcreator-2.1/creator-project-qmake-libraries.html

pi3
  • 1,235
  • 13
  • 15
2

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
  • 3,670
  • 2
  • 31
  • 45
1

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.

sth
  • 222,467
  • 53
  • 283
  • 367
1

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
  • 1,942
  • 1
  • 18
  • 22
0

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 J
  • 1,117
  • 9
  • 20