source: webkit/trunk/Source/JavaScriptCore/jsc.pro@ 99374

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
7TEMPLATE = app
8
9TARGET = jsc
10DESTDIR = .
11
12QT -= gui
13
14win32-*: CONFIG += console
15win32-msvc*: CONFIG += exceptions_off stl_off
16win32-msvc*|win32-icc: INCLUDEPATH += $$ROOT_WEBKIT_DIR/Source/JavaScriptCore/os-win32
17
18CONFIG += javascriptcore
19
20SOURCES = jsc.cpp
21
22mac {
23 LIBS_PRIVATE += -framework AppKit
24}
25
26win* {
27 LIBS += -ladvapi32
28}
29
30wince* {
31 LIBS += mmtimer.lib
32}
33
34# Prevent warnings about difference in visibility on Mac OS X
35contains(QT_CONFIG, reduce_exports):CONFIG += hide_symbols
36unix:contains(QT_CONFIG, reduce_relocations):CONFIG += bsymbolic_functions
37
Note: See TracBrowser for help on using the repository browser.