[Qt] Prospective trivial build fix after r145744
[WebKit-https.git] / Source / api.pri
1 # -------------------------------------------------------------------
2 # Project file for the QtWebKit C++ APIs
3 #
4 # See 'Tools/qmake/README' for an overview of the build system
5 # -------------------------------------------------------------------
6
7 # Use Qt5's module system
8 load(qt_build_config)
9
10 TEMPLATE = lib
11 TARGET = QtWebKit
12
13 WEBKIT_DESTDIR = $${ROOT_BUILD_DIR}/lib
14
15 WEBKIT += wtf javascriptcore webcore
16
17 build?(webkit1): WEBKIT += webkit1
18 build?(webkit2) {
19     WEBKIT += webkit2
20     have?(QTQUICK): WEBKIT += webkit2qml
21 }
22
23 # Ensure that changes to the WebKit1 and WebKit2 API will trigger a qmake of this
24 # file, which in turn runs syncqt to update the forwarding headers.
25 build?(webkit1): {
26     QMAKE_INTERNAL_INCLUDED_FILES *= WebKit/WebKit1.pro
27 }
28 build?(webkit2): QMAKE_INTERNAL_INCLUDED_FILES *= WebKit2/Target.pri
29
30 use?(3D_GRAPHICS): WEBKIT += angle
31
32 MODULE = webkit
33 CONFIG += creating_module
34
35 # This is the canonical list of dependencies for the public API of
36 # the QtWebKit library, and will end up in the library's prl file.
37 QT_API_DEPENDS = core gui network
38
39 # We want the QtWebKit API forwarding includes to live in the root build dir.
40 MODULE_BASE_DIR = $$_PRO_FILE_PWD_
41 MODULE_BASE_OUTDIR = $$ROOT_BUILD_DIR
42
43 QMAKE_DOCS = $$PWD/qtwebkit.qdocconf
44
45 # We load the relevant modules here, so that the effects of each module
46 # on the QT variable can be picked up when we later load(qt_module).
47 load(webkit_modules)
48
49 # Resources have to be included directly in the final binary for MSVC.
50 # The linker won't pick them from a static library since they aren't referenced.
51 win* {
52     RESOURCES += $$PWD/WebCore/WebCore.qrc
53     include_webinspector {
54         # WEBCORE_GENERATED_SOURCES_DIR is defined in WebCore.pri, included by
55         # load(webkit_modules) if WEBKIT contains webcore.
56         RESOURCES += \
57             $$PWD/WebCore/inspector/front-end/WebKit.qrc \
58             $${WEBCORE_GENERATED_SOURCES_DIR}/InspectorBackendCommands.qrc
59     }
60 }
61
62 # ---------------- Custom developer-build handling -------------------
63 #
64 # The assumption for Qt developer builds is that the module file
65 # will be put into qtbase/mkspecs/modules, and the libraries into
66 # qtbase/lib, with rpath/install_name set to the Qt lib dir.
67 #
68 # For WebKit we don't want that behavior for the libraries, as we want
69 # them to be self-contained in the WebKit build dir.
70 #
71 !production_build: CONFIG += force_independent
72
73 BASE_TARGET = $$TARGET
74
75 load(qt_module)
76
77 # Make sure the install_name of the QtWebKit library point to webkit
78 force_independent:macx {
79     # We do our own absolute path so that we can trick qmake into
80     # using the webkit build path instead of the Qt install path.
81     CONFIG -= absolute_library_soname
82     QMAKE_LFLAGS_SONAME = $$QMAKE_LFLAGS_SONAME$$WEBKIT_DESTDIR/
83
84     !debug_and_release|build_pass {
85         # We also have to make sure the install_name is correct when
86         # the library is installed.
87         change_install_name.depends = install_target
88
89         # The install rules generated by qmake for frameworks are busted in
90         # that both the debug and the release makefile copy QtWebKit.framework
91         # into the install dir, so whatever changes we did to the release library
92         # will get overwritten when the debug library is installed. We work around
93         # that by running install_name on both, for both configs.
94         change_install_name.commands = framework_dir=\$\$(dirname $(TARGETD)); \
95             for file in \$\$(ls $$[QT_INSTALL_LIBS]/\$\$framework_dir/$$BASE_TARGET*); do \
96                 install_name_tool -id \$\$file \$\$file; \
97             done
98         default_install_target.target = install
99         default_install_target.depends += change_install_name
100
101         QMAKE_EXTRA_TARGETS += change_install_name default_install_target
102     }
103 }
104
105 qnx {
106     # see: https://bugs.webkit.org/show_bug.cgi?id=93460
107     # the gcc 4.4.2 used in the qnx bbndk cannot cope with
108     # the linkage step of libQtWebKit, adding a dummy .cpp
109     # file fixes this though - so do this here
110     dummyfile.target = dummy.cpp
111     dummyfile.commands = touch $$dummyfile.target
112     QMAKE_EXTRA_TARGETS += dummyfile
113     GENERATED_SOURCES += $$dummyfile.target
114 }