Merge branch 'master' of scm.dev.nokia.troll.no:qt/qt-earth-staging into master-integ...
[qt:qt-ios-plaszma.git] / src / src.pro
1 TEMPLATE = subdirs
2
3 # this order is important
4 unset(SRC_SUBDIRS)
5 win32:SRC_SUBDIRS += src_winmain
6 symbian:SRC_SUBDIRS += src_s60main
7 SRC_SUBDIRS += src_corelib src_xml src_network src_sql src_testlib
8 nacl: SRC_SUBDIRS -= src_network src_testlib
9 !symbian:contains(QT_CONFIG, dbus):SRC_SUBDIRS += src_dbus
10 !contains(QT_CONFIG, no-gui): SRC_SUBDIRS += src_gui
11 !wince*:!symbian:!vxworks:!integrity:contains(QT_CONFIG, qt3support): SRC_SUBDIRS += src_qt3support
12
13 !wince*:!symbian-abld:!symbian-sbsv2:include(tools/tools.pro)
14 win32:!win32-g++*:SRC_SUBDIRS += src_activeqt
15
16 contains(QT_CONFIG, opengl)|contains(QT_CONFIG, opengles1)|contains(QT_CONFIG, opengles2): SRC_SUBDIRS += src_opengl
17 contains(QT_CONFIG, openvg): SRC_SUBDIRS += src_openvg
18 contains(QT_CONFIG, xmlpatterns): SRC_SUBDIRS += src_xmlpatterns
19 contains(QT_CONFIG, phonon): SRC_SUBDIRS += src_phonon
20 contains(QT_CONFIG, multimedia): SRC_SUBDIRS += src_multimedia
21 contains(QT_CONFIG, svg): SRC_SUBDIRS += src_svg
22 contains(QT_CONFIG, script): SRC_SUBDIRS += src_script
23 contains(QT_CONFIG, declarative): SRC_SUBDIRS += src_declarative
24 contains(QT_CONFIG, webkit)  {
25     SRC_SUBDIRS += src_webkit
26 }
27 !contains(QT_CONFIG, no-gui):contains(QT_CONFIG, scripttools): SRC_SUBDIRS += src_scripttools
28 SRC_SUBDIRS += src_plugins
29 contains(QT_CONFIG, declarative): SRC_SUBDIRS += src_imports
30
31 # s60installs need to be at the end, because projects.pro does an ordered build,
32 # and s60installs depends on all the others.
33 symbian:SRC_SUBDIRS += src_s60installs
34
35 src_s60main.subdir = $$QT_SOURCE_TREE/src/s60main
36 src_s60main.target = sub-s60main
37 src_s60installs.subdir = $$QT_SOURCE_TREE/src/s60installs
38 src_s60installs.target = sub-s60installs
39 src_winmain.subdir = $$QT_SOURCE_TREE/src/winmain
40 src_winmain.target = sub-winmain
41 src_corelib.subdir = $$QT_SOURCE_TREE/src/corelib
42 src_corelib.target = sub-corelib
43 src_xml.subdir = $$QT_SOURCE_TREE/src/xml
44 src_xml.target = sub-xml
45 src_xmlpatterns.subdir = $$QT_SOURCE_TREE/src/xmlpatterns
46 src_xmlpatterns.target = sub-xmlpatterns
47 src_dbus.subdir = $$QT_SOURCE_TREE/src/dbus
48 src_dbus.target = sub-dbus
49 src_gui.subdir = $$QT_SOURCE_TREE/src/gui
50 src_gui.target = sub-gui
51 src_sql.subdir = $$QT_SOURCE_TREE/src/sql
52 src_sql.target = sub-sql
53 src_network.subdir = $$QT_SOURCE_TREE/src/network
54 src_network.target = sub-network
55 src_svg.subdir = $$QT_SOURCE_TREE/src/svg
56 src_svg.target = sub-svg
57 src_script.subdir = $$QT_SOURCE_TREE/src/script
58 src_script.target = sub-script
59 src_scripttools.subdir = $$QT_SOURCE_TREE/src/scripttools
60 src_scripttools.target = sub-scripttools
61 src_opengl.subdir = $$QT_SOURCE_TREE/src/opengl
62 src_opengl.target = sub-opengl
63 src_openvg.subdir = $$QT_SOURCE_TREE/src/openvg
64 src_openvg.target = sub-openvg
65 src_qt3support.subdir = $$QT_SOURCE_TREE/src/qt3support
66 src_qt3support.target = sub-qt3support
67 src_phonon.subdir = $$QT_SOURCE_TREE/src/phonon
68 src_phonon.target = sub-phonon
69 src_multimedia.subdir = $$QT_SOURCE_TREE/src/multimedia
70 src_multimedia.target = sub-multimedia
71 src_activeqt.subdir = $$QT_SOURCE_TREE/src/activeqt
72 src_activeqt.target = sub-activeqt
73 src_plugins.subdir = $$QT_SOURCE_TREE/src/plugins
74 src_plugins.target = sub-plugins
75 src_imports.subdir = $$QT_SOURCE_TREE/src/imports
76 src_imports.target = sub-imports
77 src_testlib.subdir = $$QT_SOURCE_TREE/src/testlib
78 src_testlib.target = sub-testlib
79 src_webkit.file = $$QT_SOURCE_TREE/src/3rdparty/webkit/Source/WebKit.pro
80 src_webkit.target = sub-webkit
81 src_declarative.subdir = $$QT_SOURCE_TREE/src/declarative
82 src_declarative.target = sub-declarative
83
84 #CONFIG += ordered
85 !wince*:!ordered:!symbian-abld:!symbian-sbsv2 {
86    src_corelib.depends = src_tools_moc src_tools_rcc
87    src_gui.depends = src_corelib src_tools_uic
88    embedded: src_gui.depends += src_network
89    src_xml.depends = src_corelib
90    src_xmlpatterns.depends = src_corelib src_network
91    src_dbus.depends = src_corelib src_xml
92    src_svg.depends = src_corelib src_gui
93    src_script.depends = src_corelib
94    src_scripttools.depends = src_script src_gui src_network
95    src_network.depends = src_corelib
96    src_opengl.depends = src_gui
97    src_openvg.depends = src_gui
98    src_sql.depends = src_corelib
99    src_testlib.depends = src_corelib
100    src_qt3support.depends = src_gui src_xml src_network src_sql
101    src_tools_idc.depends = src_corelib             # target defined in tools.pro
102    src_tools_uic3.depends = src_qt3support src_xml # target defined in tools.pro
103    src_phonon.depends = src_gui
104    src_multimedia.depends = src_gui
105    contains(QT_CONFIG, opengl):src_multimedia.depends += src_opengl
106    src_activeqt.depends = src_tools_idc src_gui
107    src_declarative.depends = src_gui src_script src_network
108    src_plugins.depends = src_gui src_sql src_svg
109    contains(QT_CONFIG, multimedia):src_plugins.depends += src_multimedia
110    contains(QT_CONFIG, declarative):src_plugins.depends += src_declarative
111    src_s60installs.depends = $$TOOLS_SUBDIRS $$SRC_SUBDIRS
112    src_s60installs.depends -= src_s60installs
113    src_imports.depends = src_gui src_declarative
114    contains(QT_CONFIG, webkit)  {
115       src_webkit.depends = src_gui src_sql src_network
116       contains(QT_CONFIG, xmlpatterns): src_webkit.depends += src_xmlpatterns
117       src_imports.depends += src_webkit
118    }
119    contains(QT_CONFIG, qt3support): src_plugins.depends += src_qt3support
120    contains(QT_CONFIG, dbus):{
121       src_plugins.depends += src_dbus
122       src_phonon.depends +=  src_dbus
123    }
124    contains(QT_CONFIG, opengl)|contains(QT_CONFIG, opengles1)|contains(QT_CONFIG, opengles2) {
125       src_plugins.depends += src_opengl
126       src_declarative.depends += src_opengl
127       src_webkit.depends += src_opengl
128    }
129    contains(QT_CONFIG, xmlpatterns) {
130       src_declarative.depends += src_xmlpatterns
131       src_webkit.depends += src_xmlpatterns
132    }
133    contains(QT_CONFIG, svg) {
134       src_declarative.depends += src_svg
135    }
136 }
137
138
139 # This creates a sub-src rule
140 sub_src_target.CONFIG = recursive
141 sub_src_target.recurse = $$TOOLS_SUBDIRS $$SRC_SUBDIRS
142 sub_src_target.target = sub-src
143 sub_src_target.recurse_target =
144 QMAKE_EXTRA_TARGETS += sub_src_target
145
146 # This gives us a top level debug/release
147 for(subname, SRC_SUBDIRS) {
148    subdir = $$subname
149    !isEmpty($${subname}.subdir):subdir = $$eval($${subname}.subdir)
150    subpro = $$subdir/$${basename(subdir)}.pro
151    !exists($$subpro):next()
152    subtarget = $$replace(subdir, [^A-Za-z0-9], _)
153    reg_src = $$replace(QT_SOURCE_TREE, \\\\, \\\\)
154    subdir = $$replace(subdir, $$reg_src, $$QT_BUILD_TREE)
155    subdir = $$replace(subdir, /, $$QMAKE_DIR_SEP)
156    subdir = $$replace(subdir, \\\\, $$QMAKE_DIR_SEP)
157    SUB_TEMPLATE = $$list($$fromfile($$subpro, TEMPLATE))
158    !isEqual(subname, src_tools_bootstrap):if(isEqual($$SUB_TEMPLATE, lib) | isEqual($$SUB_TEMPLATE, subdirs) | isEqual(subname, src_tools_idc) | isEqual(subname, src_tools_uic3)):!separate_debug_info {
159        #debug
160        debug-$${subtarget}.depends = $${subdir}$${QMAKE_DIR_SEP}$(MAKEFILE) $$EXTRA_DEBUG_TARGETS
161        debug-$${subtarget}.commands = (cd $$subdir && $(MAKE) -f $(MAKEFILE) debug)
162        EXTRA_DEBUG_TARGETS += debug-$${subtarget}
163        QMAKE_EXTRA_TARGETS += debug-$${subtarget}
164        #release
165        release-$${subtarget}.depends = $${subdir}$${QMAKE_DIR_SEP}$(MAKEFILE) $$EXTRA_RELEASE_TARGETS
166        release-$${subtarget}.commands = (cd $$subdir && $(MAKE) -f $(MAKEFILE) release)
167        EXTRA_RELEASE_TARGETS += release-$${subtarget}
168        QMAKE_EXTRA_TARGETS += release-$${subtarget}
169     } else { #do not have a real debug target/release
170        #debug
171        debug-$${subtarget}.depends = $${subdir}$${QMAKE_DIR_SEP}$(MAKEFILE) $$EXTRA_DEBUG_TARGETS
172        debug-$${subtarget}.commands = (cd $$subdir && $(MAKE) -f $(MAKEFILE) first)
173        EXTRA_DEBUG_TARGETS += debug-$${subtarget}
174        QMAKE_EXTRA_TARGETS += debug-$${subtarget}
175        #release
176        release-$${subtarget}.depends = $${subdir}$${QMAKE_DIR_SEP}$(MAKEFILE) $$EXTRA_RELEASE_TARGETS
177        release-$${subtarget}.commands = (cd $$subdir && $(MAKE) -f $(MAKEFILE) first)
178        EXTRA_RELEASE_TARGETS += release-$${subtarget}
179        QMAKE_EXTRA_TARGETS += release-$${subtarget}
180    }
181 }
182 debug.depends = $$EXTRA_DEBUG_TARGETS
183 release.depends = $$EXTRA_RELEASE_TARGETS
184 QMAKE_EXTRA_TARGETS += debug release
185
186 # This gives us a top-level runonphone target, which installs Qt and optionally QtWebKit.
187 contains(CONFIG, run_on_phone) {
188     src_runonphone_target.target = runonphone
189     src_runonphone_target.commands = $(MAKE) -C $$QT_BUILD_TREE/src/s60installs runonphone
190     src_runonphone_target.depends = first
191     contains(QT_CONFIG, webkit) {
192         src_runonphone_target.commands += && $(MAKE) -C $$QT_BUILD_TREE/src/3rdparty/webkit/Source/WebCore runonphone
193     }
194     QMAKE_EXTRA_TARGETS += src_runonphone_target
195 }
196
197 SUBDIRS += $$SRC_SUBDIRS