Reputation: 26583
I'm writing a small qt app suite that consists of a set of small programs that work on the same set of files. They are organized like this:
/ app1/ main.cpp app2/ main.cpp app3/ main.cpp common/ project.h project.cpp somemore.h somemore.cpp appsuite.pro
When I do qmake && make
, I want the following binaries to be built:
How do I write appsuite.pro
to work like this?
I have heard something about .pri
files, but I could not figure out how to use them in my "situation".
Help appreciated,
jrh
Upvotes: 36
Views: 24660
Reputation: 5785
One way of doing it is to have a .pro file per subdirectory.
appsuite.pro:
TEMPLATE = subdirs
SUBDIRS = common app1 app2 app3
app1.depends = common
app2.depends = common
app3.depends = common
app1/app1.pro:
TARGET = app1
SOURCES = main.cpp
INCLUDEPATH += ../common
LIBS += -L../common -lcommon
The common.pro file should build a static library you can then link into the binaries.
common/common.pro:
TEMPLATE = lib
CONFIG = staticlib
SOURCES = project.cpp more.cpp
HEADERS = project.h more.h
Upvotes: 37
Reputation: 11579
One way is to create your global project appsuite.pro
, like this:
TEMPLATE = subdirs
SUBDIRS = app1 app2 app3
The subprojects app1.pro
and app2.pro
should also be created for those applications alone, with a dependency regarding the common/ subdirectory
You can also specify other dependencies in appsuite.pro, for example if app1 depends on app2, as:
app1.depends = app2
Upvotes: 11