Last change
on this file since 99374 was 99274, checked in by [email protected], 14 years ago |
[Qt] Refactor and clean up the qmake build system
The qmake build system has accumulated a bit of cruft and redundancy
over time. There's also a fairly tight coupling between how to build
the various targets, and _what_ to build, making it harder to add new
rules or sources. This patch aims to elevate these issues somewhat.
This is a short-list of the changes:
- The rules for how to build targets are now mostly contained as
prf-files in Tools/qmake/mkspecs/features. Using mkspecs also
allows us to do pre- and post-processing of each project file,
which helps to clean up the actual project files.
- Derived sources are no longer generated as a separate make-step
but is part of each target's project file as a subdir. Makefile
rules are used to ensure that we run make on the derived sources
before running qmake on the actual target makefile. This makes
it easier to keep a proper dependency between derived sources
and the target.
- We use GNU make and the compiler to generate dependencies on
UNIX-based systems running Qt 5. This allows us to lessen the
need to run qmake, which should reduce compile time.
- WebKit2 is now build by default if building with Qt 5. It can
be disabled by passing --no-webkit2 to build-webkit.
The result of these changes are hopefully a cleaner and easier
build system to modify, and faster build times due to no longer
running qmake on every single build. It's also a first step
towards possibly generating the list of sources using another
build system.
https://bugs.webkit.org/show_bug.cgi?id=71222
Reviewed by Simon Hausmann.
|
File size:
838 bytes
|
Line | |
---|
1 | # -------------------------------------------------------------------
|
---|
2 | # Project file for the jsc binary (interactive interpreter)
|
---|
3 | #
|
---|
4 | # See 'Tools/qmake/README' for an overview of the build system
|
---|
5 | # -------------------------------------------------------------------
|
---|
6 |
|
---|
7 | TEMPLATE = app
|
---|
8 |
|
---|
9 | TARGET = jsc
|
---|
10 | DESTDIR = .
|
---|
11 |
|
---|
12 | QT -= gui
|
---|
13 |
|
---|
14 | win32-*: CONFIG += console
|
---|
15 | win32-msvc*: CONFIG += exceptions_off stl_off
|
---|
16 | win32-msvc*|win32-icc: INCLUDEPATH += $$ROOT_WEBKIT_DIR/Source/JavaScriptCore/os-win32
|
---|
17 |
|
---|
18 | CONFIG += javascriptcore
|
---|
19 |
|
---|
20 | SOURCES = jsc.cpp
|
---|
21 |
|
---|
22 | mac {
|
---|
23 | LIBS_PRIVATE += -framework AppKit
|
---|
24 | }
|
---|
25 |
|
---|
26 | win* {
|
---|
27 | LIBS += -ladvapi32
|
---|
28 | }
|
---|
29 |
|
---|
30 | wince* {
|
---|
31 | LIBS += mmtimer.lib
|
---|
32 | }
|
---|
33 |
|
---|
34 | # Prevent warnings about difference in visibility on Mac OS X
|
---|
35 | contains(QT_CONFIG, reduce_exports):CONFIG += hide_symbols
|
---|
36 | unix:contains(QT_CONFIG, reduce_relocations):CONFIG += bsymbolic_functions
|
---|
37 |
|
---|
Note:
See
TracBrowser
for help on using the repository browser.