The install rules are generated from api.pri which lives in Source,
which means the paths in headers.pri, which is the basis for the
install rules, needs to be relative to Source as well.
We were also installing the headers from the forwarding headers
directory, which was wrong, as those headers contained relative paths.
We now install the actual headers, by using headers.pri as a basis.
https://bugs.webkit.org/show_bug.cgi?id=71697
Reviewed by Simon Hausmann.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@99832
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
+2011-11-10 Tor Arne Vestbø <tor.arne.vestbo@nokia.com>
+
+ [Qt] Make sure headers.pri has the right relative paths for install
+
+ The install rules are generated from api.pri which lives in Source,
+ which means the paths in headers.pri, which is the basis for the
+ install rules, needs to be relative to Source as well.
+
+ We were also installing the headers from the forwarding headers
+ directory, which was wrong, as those headers contained relative paths.
+
+ We now install the actual headers, by using headers.pri as a basis.
+
+ https://bugs.webkit.org/show_bug.cgi?id=71697
+
+ Reviewed by Simon Hausmann.
+
+ * Source/QtWebKit.pro:
+ * Source/api.pri:
+ * sync.profile:
+
2011-11-09 Shinya Kawanaka <shinyak@google.com>
Internals.markerRangeForNode should be able to take markers by specifying a marker type.
win32-msvc*: command = $$command -windows
outdir = $$toSystemPath($${ROOT_BUILD_DIR})
- rootdir = $$toSystemPath($${ROOT_WEBKIT_DIR})
- fwheader_generator.commands = perl $${command} -outdir $${outdir} -separate-module $${TARGET}$${DIRLIST_SEPARATOR}$${rootdir}$${DIRLIST_SEPARATOR}$$toSystemPath(Source/WebKit/qt/Api)
+ # The module root has to be the same as directory of the pro-file that generates
+ # the install rules (api.pri), otherwise the relative paths in the generated
+ # headers.pri will be incorrect.
+ module_rootdir = $$toSystemPath($${_PRO_FILE_PWD_})
+
+ module = $${TARGET}$${DIRLIST_SEPARATOR}$${module_rootdir}$${DIRLIST_SEPARATOR}$$toSystemPath(WebKit/qt/Api)
+ fwheader_generator.commands = perl $${command} -outdir $${outdir} -separate-module $${module}
fwheader_generator.depends = $${syncqt}
variables = $$computeSubdirVariables(api)
unix:contains(QT_CONFIG, reduce_relocations):CONFIG += bsymbolic_functions
}
-MODULE_FILE = $${ROOT_WEBKIT_DIR}/Tools/qmake/qt_webkit.pri
-include($${MODULE_FILE})
-VERSION = $${QT.webkit.MAJOR_VERSION}.$${QT.webkit.MINOR_VERSION}.$${QT.webkit.PATCH_VERSION}
-
!static: DEFINES += QT_MAKEDLL
SOURCES += \
DEFINES += WTF_USE_TEXTURE_MAPPER=1
}
-modulefile.files = $${MODULE_FILE}
+
+# ------------- Install rules -------------
+
+modulefile.files = $${ROOT_WEBKIT_DIR}/Tools/qmake/qt_webkit.pri
mkspecs = $$[QMAKE_MKSPECS]
mkspecs = $$split(mkspecs, :)
modulefile.path = $$last(mkspecs)/modules
INSTALLS += modulefile
-headers.files = $${ROOT_BUILD_DIR}/include/$${TARGET}/*
+include($$first(modulefile.files))
+VERSION = $${QT.webkit.VERSION}
+
+# 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
# 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 = $$files($$headers.files, false)
+ FRAMEWORK_HEADERS.files = $${headers.files}
FRAMEWORK_HEADERS.path = Headers
QMAKE_BUNDLE_DATA += FRAMEWORK_HEADERS
}
%modules = ( # path to module name map
- "QtWebKit" => "$basedir"
+ # Has to be the same directory as the pro file that generates install rules,
+ # otherwise the relative paths in headers.pri will not be correct.
+ "QtWebKit" => "$basedir/Source"
);
%moduleheaders = ( # restrict the module headers to those found in relative path
- "QtWebKit" => "Source/WebKit/qt/Api;Source/WebKit2/UIProcess/API/qt",
+ "QtWebKit" => "WebKit/qt/Api;WebKit2/UIProcess/API/qt",
);
%classnames = (
);