diff options
author | Christian Tismer <ctismer@gmail.com> | 2015-07-15 00:37:47 +0200 |
---|---|---|
committer | Christian Tismer <ctismer@gmail.com> | 2015-07-15 00:37:47 +0200 |
commit | 0375c7d1f3866c64fb3fa3624e65183ec3720d61 (patch) | |
tree | dcf14d0be6a78c351ad03f2464b73d05c20a07e4 /PySide | |
parent | 80cdde788a70ef878b23c2e7d59f8d55fe90577c (diff) |
make QtWebKit compile. See Note!!
Note: This is a bad example of a Qt5 bug that must be reported.
QtWebKit is not consequent in naming its variables, which causes
real problems.
QtWebkit_FOUND, but
QtWebKit_INCLUDE_DIRS watch the case of the 'kK'
Diffstat (limited to 'PySide')
-rw-r--r-- | PySide/QtWebKit/CMakeLists.txt | 110 | ||||
-rw-r--r-- | PySide/global.h.in | 3 |
2 files changed, 75 insertions, 38 deletions
diff --git a/PySide/QtWebKit/CMakeLists.txt b/PySide/QtWebKit/CMakeLists.txt index 74d89f8c2..8447afe8d 100644 --- a/PySide/QtWebKit/CMakeLists.txt +++ b/PySide/QtWebKit/CMakeLists.txt @@ -1,65 +1,101 @@ project(QtWebKit) -if (${QT_VERSION_MAJOR} EQUAL 4 AND ${QT_VERSION_MINOR} LESS 6) - set (QtWebKit_46_SRC ) -else () - set(QtWebKit_46_SRC - ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtWebKit/qwebelement_wrapper.cpp - ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtWebKit/qwebelementcollection_wrapper.cpp - ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtWebKit/qwebinspector_wrapper.cpp - ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtWebKit/qwebpage_errorpageextensionoption_wrapper.cpp - ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtWebKit/qwebpage_errorpageextensionreturn_wrapper.cpp - ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtWebKit/qgraphicswebview_wrapper.cpp - ) -endif () - set(QtWebKit_SRC -${CMAKE_CURRENT_BINARY_DIR}/PySide/QtWebKit/qtwebkit_module_wrapper.cpp ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtWebKit/qwebdatabase_wrapper.cpp -${CMAKE_CURRENT_BINARY_DIR}/PySide/QtWebKit/qwebframe_wrapper.cpp +### use of undeclared identifier 'SBK_QWEBFRAME_IDX' ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtWebKit/qwebelement_wrapper.cpp +### we probably need to create 'webkitwidgets' for this to work! +${CMAKE_CURRENT_BINARY_DIR}/PySide/QtWebKit/qwebelementcollection_wrapper.cpp +${CMAKE_CURRENT_BINARY_DIR}/PySide/QtWebKit/qwebhistory_wrapper.cpp ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtWebKit/qwebhistoryinterface_wrapper.cpp ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtWebKit/qwebhistoryitem_wrapper.cpp -${CMAKE_CURRENT_BINARY_DIR}/PySide/QtWebKit/qwebhistory_wrapper.cpp -${CMAKE_CURRENT_BINARY_DIR}/PySide/QtWebKit/qwebhittestresult_wrapper.cpp -${CMAKE_CURRENT_BINARY_DIR}/PySide/QtWebKit/qwebpage_wrapper.cpp -${CMAKE_CURRENT_BINARY_DIR}/PySide/QtWebKit/qwebpage_choosemultiplefilesextensionoption_wrapper.cpp -${CMAKE_CURRENT_BINARY_DIR}/PySide/QtWebKit/qwebpage_choosemultiplefilesextensionreturn_wrapper.cpp -${CMAKE_CURRENT_BINARY_DIR}/PySide/QtWebKit/qwebpage_extensionoption_wrapper.cpp -${CMAKE_CURRENT_BINARY_DIR}/PySide/QtWebKit/qwebpage_extensionreturn_wrapper.cpp ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtWebKit/qwebpluginfactory_mimetype_wrapper.cpp ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtWebKit/qwebpluginfactory_plugin_wrapper.cpp ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtWebKit/qwebpluginfactory_wrapper.cpp ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtWebKit/qwebsecurityorigin_wrapper.cpp ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtWebKit/qwebsettings_wrapper.cpp -${CMAKE_CURRENT_BINARY_DIR}/PySide/QtWebKit/qwebview_wrapper.cpp ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtWebKit/webcore_wrapper.cpp -${QtWebKit_46_SRC} +# this file is always needed +${CMAKE_CURRENT_BINARY_DIR}/PySide/QtWebKit/qtwebkit_module_wrapper.cpp ) -set(QtWebKit_typesystem_path "${QtCore_SOURCE_DIR}${PATH_SEP}${QtCore_BINARY_DIR}${PATH_SEP}${QtGui_SOURCE_DIR}${PATH_SEP}${QtNetwork_SOURCE_DIR}${PATH_SEP}${QtGui_BINARY_DIR}") -set(QtWebkit_include_dirs ${CMAKE_CURRENT_SOURCE_DIR} - ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtWebkit/ - ${QT_INCLUDE_DIR} - ${QT_QTCORE_INCLUDE_DIR} - ${QT_QTGUI_INCLUDE_DIR} - ${QT_QTNETWORK_INCLUDE_DIR} - ${QT_QTWEBKIT_INCLUDE_DIR} +set(prev_shiboken_binary ${SHIBOKEN_BINARY}) +string(REPLACE ";" " " QtWebKit_SRC_escape "${QtWebKit_SRC}") +file(WRITE "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/fake_shiboken.sh" + " +echo \"$*\" +${prev_shiboken_binary} $* +python3 ${CMAKE_CURRENT_BINARY_DIR}/filter_init.py ${QtWebKit_SRC_escape} + ") +file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/filter_init.py" + "#! env python +import sys, os, re, pprint +pprint.pprint(sys.argv) +nset = set() +for fname in sys.argv[1:]: + name = os.path.splitext(os.path.basename(fname))[0] + print(name) + if name.endswith('module_wrapper'): + fn = fname + else: + name = name.split('_wrapper') + assert name[1] == '' + nset.add(name[0]) +print(fn) +with open(fn) as f: + lines = f.readlines() +removals = set() +for idx, line in enumerate(lines): + res = re.search(' init_(\\w+)', line) + if res and res.group(1).lower() not in nset: + removals.add(res.group(1)) + lines[idx] = '//' + line +with open(fn, 'w') as f: + f.writelines(lines) +removals = sorted(list(removals)) +print('Removals:', removals) +") +file(COPY ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/fake_shiboken.sh + DESTINATION ${CMAKE_CURRENT_BINARY_DIR} + FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ + GROUP_EXECUTE WORLD_READ WORLD_EXECUTE) + +set(SHIBOKEN_BINARY "${CMAKE_CURRENT_BINARY_DIR}/fake_shiboken.sh") + +# fake these variables for qt5 +set(QtWebKit_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}) +set(QtWebKit_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtWebKit) + +make_path(QtWebKit_typesystem_path ${QtCore_SOURCE_DIR} ${QtGui_SOURCE_DIR} ${QtWidgets_SOURCE_DIR} ${QtNetwork_SOURCE_DIR} + ${QtCore_BINARY_DIR} ${QtGui_BINARY_DIR} ${QtWidgets_BINARY_DIR} ${QtNetwork_BINARY_DIR} + ${QtWebKit_SOURCE_DIR}) + +set(QtWebKit_include_dirs ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtWebKit/ + ${Qt5Core_INCLUDE_DIRS} + ${Qt5Gui_INCLUDE_DIRS} + ${Qt5Widgets_INCLUDE_DIRS} + ${Qt5Network_INCLUDE_DIRS} + ${Qt5WebKit_INCLUDE_DIRS} ${SHIBOKEN_INCLUDE_DIR} ${libpyside_SOURCE_DIR} ${SHIBOKEN_PYTHON_INCLUDE_DIR} ${QtCore_BINARY_DIR}/PySide/QtCore/ ${QtGui_BINARY_DIR}/PySide/QtGui/ + ${QtWidgets_BINARY_DIR}/PySide/QtWidgets/ ${QtNetwork_BINARY_DIR}/PySide/QtNetwork/ ) set(QtWebKit_libraries pyside ${SHIBOKEN_PYTHON_LIBRARIES} ${SHIBOKEN_LIBRARY} - ${QT_QTWEBKIT_LIBRARY} - ${QT_QTNETWORK_LIBRARY} - ${QT_QTGUI_LIBRARY}) -set(QtWebKit_deps QtGui QtNetwork) + ${Qt5Webkit_LIBRARIES} + ${Qt5Network_LIBRARIES} + ${Qt5Widgets_LIBRARIES} + ${Qt5Gui_LIBRARIES} + ${Qt5Core_LIBRARIES} + ) +set(QtWebKit_deps QtWidgets QtNetwork) create_pyside_module(QtWebKit - QtWebkit_include_dirs + QtWebKit_include_dirs QtWebKit_libraries QtWebKit_deps QtWebKit_typesystem_path diff --git a/PySide/global.h.in b/PySide/global.h.in index 136c91f76..8cdb6bcfd 100644 --- a/PySide/global.h.in +++ b/PySide/global.h.in @@ -420,7 +420,8 @@ namespace QtPrivate { QT_END_NAMESPACE -#if @Qt5WebKit_FOUND@ +#if @Qt5Webkit_FOUND@ +// Danger! The macro above has a lower case 'k', the includes are with upper 'K'! # include <QtWebKit/QtWebKit> #endif |