Skip to content

Instantly share code, notes, and snippets.

@torarnv
Forked from anonymous/gist:1917493
Created February 26, 2012 16:25
Show Gist options
  • Save torarnv/1917495 to your computer and use it in GitHub Desktop.
Save torarnv/1917495 to your computer and use it in GitHub Desktop.
diff --git i/Source/api.pri w/Source/api.pri
index d22d43c..6b23ea4 100644
--- i/Source/api.pri
+++ w/Source/api.pri
@@ -4,10 +4,24 @@
# See 'Tools/qmake/README' for an overview of the build system
# -------------------------------------------------------------------
-TEMPLATE = lib
TARGET = QtWebKit
-DESTDIR = $${ROOT_BUILD_DIR}/lib
+haveQt(5) {
+ # Use Qt5's module system
+ load(qt_module)
+ MODULE = webkit
+ MODULE_PRI = $$QT.webkit.module_pri
+ CONFIG += module
+ load(qt_module_config)
+
+ message(TARGET=$$TARGET)
+ message(DESTDIR=$$DESTDIR)
+
+ # FIXME: Copy libraries back to lib as well, since our own tools use rpath
+ # new makefile rule to QMAKE_COPY $$DESTDIR/$$QT.webkit.name* (or libs)
+} else {
+ DESTDIR = $${ROOT_BUILD_DIR}/lib
+}
runSyncQt() # Generate forwarding headers for the QtWebKit API
@@ -169,55 +183,53 @@ contains(CONFIG, texmap) {
DEFINES += WTF_USE_TEXTURE_MAPPER=1
}
+plugin_backend_xlib: PKGCONFIG += x11
# ------------- Install rules -------------
-modulefile.files = $$QT.webkit.modulefile
-mkspecs = $$[QMAKE_MKSPECS]
-mkspecs = $$split(mkspecs, :)
-modulefile.path = $$last(mkspecs)/modules
-INSTALLS += modulefile
-
-# Syncqt has already run at this point, so we can use headers.pri
-# as a basis for our install-rules
-HEADERS_PRI = $${ROOT_BUILD_DIR}/include/$$TARGET/headers.pri
-!include($$HEADERS_PRI): error(Failed to resolve install headers)
-
-headers.files = $$SYNCQT.HEADER_FILES $$SYNCQT.HEADER_CLASSES
-!isEmpty(INSTALL_HEADERS): headers.path = $$INSTALL_HEADERS/$${TARGET}
-else: headers.path = $$[QT_INSTALL_HEADERS]/$${TARGET}
-INSTALLS += headers
-
-!isEmpty(INSTALL_LIBS): target.path = $$INSTALL_LIBS
-else: target.path = $$[QT_INSTALL_LIBS]
-INSTALLS += target
-
-unix {
- CONFIG += create_pc create_prl
- QMAKE_PKGCONFIG_LIBDIR = $$target.path
- QMAKE_PKGCONFIG_INCDIR = $$headers.path
- QMAKE_PKGCONFIG_DESTDIR = pkgconfig
- lib_replace.match = $$re_escape($$DESTDIR)
- lib_replace.replace = $$[QT_INSTALL_LIBS]
- QMAKE_PKGCONFIG_INSTALL_REPLACE += lib_replace
-}
+haveQt(5) {
+ # Install rules handled by Qt's module system
+} else {
+ # For Qt4 we have to set up install rules manually
+
+ # Syncqt has already run at this point, so we can use headers.pri
+ # as a basis for our install-rules
+ HEADERS_PRI = $${ROOT_BUILD_DIR}/include/$${QT.webkit.name}/headers.pri
+ !include($$HEADERS_PRI): error(Failed to resolve install headers)
+
+ headers.files = $$SYNCQT.HEADER_FILES $$SYNCQT.HEADER_CLASSES
+ !isEmpty(INSTALL_HEADERS): headers.path = $$INSTALL_HEADERS/$${TARGET}
+ else: headers.path = $$[QT_INSTALL_HEADERS]/$${TARGET}
+ INSTALLS += headers
+
+ !isEmpty(INSTALL_LIBS): target.path = $$INSTALL_LIBS
+ else: target.path = $$[QT_INSTALL_LIBS]
+ INSTALLS += target
+
+ unix {
+ CONFIG += create_pc create_prl
+ QMAKE_PKGCONFIG_LIBDIR = $$target.path
+ QMAKE_PKGCONFIG_INCDIR = $$headers.path
+ QMAKE_PKGCONFIG_DESTDIR = pkgconfig
+ lib_replace.match = $$re_escape($$DESTDIR)
+ lib_replace.replace = $$[QT_INSTALL_LIBS]
+ QMAKE_PKGCONFIG_INSTALL_REPLACE += lib_replace
+ }
-mac {
- !static:contains(QT_CONFIG, qt_framework) {
- # Build QtWebKit as a framework, to match how Qt was built
- CONFIG += lib_bundle qt_no_framework_direct_includes qt_framework
-
- # For debug_and_release configs, only copy headers in release
- !debug_and_release|if(build_pass:CONFIG(release, debug|release)) {
- FRAMEWORK_HEADERS.version = Versions
- FRAMEWORK_HEADERS.files = $${headers.files}
- FRAMEWORK_HEADERS.path = Headers
- QMAKE_BUNDLE_DATA += FRAMEWORK_HEADERS
+ mac {
+ !static:contains(QT_CONFIG, qt_framework) {
+ # Build QtWebKit as a framework, to match how Qt was built
+ CONFIG += lib_bundle qt_no_framework_direct_includes qt_framework
+
+ # For debug_and_release configs, only copy headers in release
+ !debug_and_release|if(build_pass:CONFIG(release, debug|release)) {
+ FRAMEWORK_HEADERS.version = Versions
+ FRAMEWORK_HEADERS.files = $${headers.files}
+ FRAMEWORK_HEADERS.path = Headers
+ QMAKE_BUNDLE_DATA += FRAMEWORK_HEADERS
+ }
}
- }
- QMAKE_LFLAGS_SONAME = "$${QMAKE_LFLAGS_SONAME}$${DESTDIR}$${QMAKE_DIR_SEP}"
+ QMAKE_LFLAGS_SONAME = "$${QMAKE_LFLAGS_SONAME}$${DESTDIR}$${QMAKE_DIR_SEP}"
+ }
}
-
-plugin_backend_xlib: PKGCONFIG += x11
-
diff --git i/Source/sync.profile w/Source/sync.profile
index 6cbcef3..246b5c1 100644
--- i/Source/sync.profile
+++ w/Source/sync.profile
@@ -13,6 +13,6 @@
"script" => "#include <QtScript/QtScript>\n",
);
%modulepris = (
- "QtWebKit" => "$basedir/../Tools/qmake/mkspecs/modules/qt_webkit.pri",
+ "QtWebKit" => "$basedir/../Tools/qmake/qt_webkit.pri",
);
@ignore_for_master_contents = ( "qwebscriptworld.h", "testwindow.h", "util.h" );
diff --git i/Tools/qmake/mkspecs/features/default_post.prf w/Tools/qmake/mkspecs/features/default_post.prf
index b5d879e..53357c9 100644
--- i/Tools/qmake/mkspecs/features/default_post.prf
+++ w/Tools/qmake/mkspecs/features/default_post.prf
@@ -188,7 +188,7 @@ contains(TEMPLATE, lib) {
mac: CONFIG += build_all
# Prevent name clashes when building both debug and release
- debug_and_release: TARGET = $$qtLibraryTarget($$TARGET)
+ !module:debug_and_release: TARGET = $$qtLibraryTarget($$TARGET)
isEmpty(DESTDIR): DESTDIR = $$activeBuildConfig()
diff --git i/Tools/qmake/mkspecs/features/default_pre.prf w/Tools/qmake/mkspecs/features/default_pre.prf
index 776728d..a30e0bb 100644
--- i/Tools/qmake/mkspecs/features/default_pre.prf
+++ w/Tools/qmake/mkspecs/features/default_pre.prf
@@ -95,9 +95,5 @@ haveQt(5): {
}
}
-QT.webkit.modulefile = $${ROOT_WEBKIT_DIR}/Tools/qmake/mkspecs/modules/qt_webkit.pri
-include($$QT.webkit.modulefile)
-VERSION = $${QT.webkit.VERSION}
-
# Set some defaults for specific platforms
CONFIG += include_webinspector
diff --git i/Tools/qmake/mkspecs/modules/qt_webkit.pri w/Tools/qmake/mkspecs/modules/qt_webkit.pri
deleted file mode 100644
index a4cf684..0000000
--- i/Tools/qmake/mkspecs/modules/qt_webkit.pri
+++ /dev/null
@@ -1,24 +0,0 @@
-QT.webkit.VERSION = 4.10.0
-QT.webkit.MAJOR_VERSION = 4
-QT.webkit.MINOR_VERSION = 10
-QT.webkit.PATCH_VERSION = 0
-
-QT.webkit.name = QtWebKit
-QT.webkit.includes = $$QT_MODULE_INCLUDE_BASE $$QT_MODULE_INCLUDE_BASE/QtWebKit
-QT.webkit.private_includes = $$QT_MODULE_INCLUDE_BASE/$$QT.webkit.name/$$QT.webkit.VERSION
-QT.webkit.sources = $$QT_MODULE_BASE
-QT.webkit.libs = $$QT_MODULE_LIB_BASE
-QT.webkit.depends = core gui opengl network xmlpatterns script
-
-!contains(QT_CONFIG, modular)|contains(QT_ELIGIBLE_MODULES, webkit) {
- QT_CONFIG += webkit
-} else {
- warning("Attempted to include $$QT.webkit.name in the build, but it was not enabled in configure.")
-}
-
-# This is the old syntax for the WebKit version defines.
-# We keep them around in case someone was using them.
-QT_WEBKIT_VERSION = $$QT.webkit.VERSION
-QT_WEBKIT_MAJOR_VERSION = $$QT.webkit.MAJOR_VERSION
-QT_WEBKIT_MINOR_VERSION = $$QT.webkit.MINOR_VERSION
-QT_WEBKIT_PATCH_VERSION = $$QT.webkit.PATCH_VERSION
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment