Changeset 99274 in webkit for trunk/Source/JavaScriptCore/jsc.pro


Ignore:
Timestamp:
Nov 4, 2011, 6:19:58 AM (14 years ago)
Author:
[email protected]
Message:

[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:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/jsc.pro

    r97557 r99274  
     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
    17TEMPLATE = app
     8
    29TARGET = jsc
    310DESTDIR = .
    4 SOURCES = jsc.cpp
     11
    512QT -= gui
    6 CONFIG -= app_bundle
    7 CONFIG += building-libs
     13
    814win32-*: CONFIG += console
    915win32-msvc*: CONFIG += exceptions_off stl_off
     16win32-msvc*|win32-icc: INCLUDEPATH += $$ROOT_WEBKIT_DIR/Source/JavaScriptCore/os-win32
    1017
    11 isEmpty(OUTPUT_DIR): OUTPUT_DIR= ..
    12 include($$PWD/../WebKit.pri)
     18CONFIG += javascriptcore
    1319
    14 unix:!mac:CONFIG += link_pkgconfig
    15 
    16 QMAKE_RPATHDIR += $$OUTPUT_DIR/lib
    17 
    18 OBJECTS_DIR_WTR = $$OBJECTS_DIR$${QMAKE_DIR_SEP}
    19 include($$PWD/JavaScriptCore.pri)
    20 prependJavaScriptCoreLib(.)
     20SOURCES = jsc.cpp
    2121
    2222mac {
     
    3535contains(QT_CONFIG, reduce_exports):CONFIG += hide_symbols
    3636unix:contains(QT_CONFIG, reduce_relocations):CONFIG += bsymbolic_functions
     37
Note: See TracChangeset for help on using the changeset viewer.