diff options
-rw-r--r-- | Source/WebKit/CMakeLists.txt | 9 | ||||
-rw-r--r-- | Source/WebKit/PlatformQt.cmake | 120 | ||||
-rw-r--r-- | Source/WebKit/qt/WebCoreSupport/QWebPageAdapter.cpp | 6 | ||||
-rw-r--r-- | Source/WebKit/qt/WidgetApi/qwebinspector.cpp | 3 | ||||
-rw-r--r-- | Source/cmake/ECMGeneratePriFile.cmake | 17 | ||||
-rw-r--r-- | Source/cmake/OptionsQt.cmake | 8 | ||||
-rw-r--r-- | Tools/qmake/projects/run_cmake.pro | 8 |
7 files changed, 122 insertions, 49 deletions
diff --git a/Source/WebKit/CMakeLists.txt b/Source/WebKit/CMakeLists.txt index aff418d6d..ac9c295ec 100644 --- a/Source/WebKit/CMakeLists.txt +++ b/Source/WebKit/CMakeLists.txt @@ -50,7 +50,7 @@ if (MSVC) endif () endif () -set(WebKit_PRIVATE_HEADERS_LOCATION Headers/${PROJECT_VERSION}/QtWebKit/Private) +set(WebKit_PRIVATE_HEADERS_LOCATION Headers/${PROJECT_VERSION}/QtWebKit/private) WEBKIT_FRAMEWORK(WebKit) @@ -67,6 +67,13 @@ if (${PORT} STREQUAL "Qt") if (NOT MSVC) ADD_PREFIX_HEADER(WebKit "${WEBKIT_DIR}/qt/WebKitPrefix.h") endif () + + if (MACOS_BUILD_FRAMEWORKS) + set_target_properties(WebKit PROPERTIES + FRAMEWORK_VERSION 5 + MACOSX_FRAMEWORK_IDENTIFIER org.qt-project.QtWebKit + ) + endif () endif () add_dependencies(WebKit WebCore) diff --git a/Source/WebKit/PlatformQt.cmake b/Source/WebKit/PlatformQt.cmake index 68909de95..aa95a86e0 100644 --- a/Source/WebKit/PlatformQt.cmake +++ b/Source/WebKit/PlatformQt.cmake @@ -433,31 +433,58 @@ else () set(WEBKITWIDGETS_PRI_RUNTIME_DEPS "${WEBKITWIDGETS_PRI_RUNTIME_DEPS} printsupport") endif () -ecm_generate_pkgconfig_file( - BASE_NAME Qt5WebKit - DEPS "${WEBKIT_PKGCONGIG_DEPS}" - FILENAME_VAR WebKit_PKGCONFIG_FILENAME -) -set(ECM_PKGCONFIG_INSTALL_DIR "${LIB_INSTALL_DIR}/pkgconfig" CACHE PATH "The directory where pkgconfig will be installed to.") -install(FILES ${WebKit_PKGCONFIG_FILENAME} DESTINATION ${ECM_PKGCONFIG_INSTALL_DIR} COMPONENT Data) +if (NOT MACOS_BUILD_FRAMEWORKS) + ecm_generate_pkgconfig_file( + BASE_NAME Qt5WebKit + DEPS "${WEBKIT_PKGCONGIG_DEPS}" + FILENAME_VAR WebKit_PKGCONFIG_FILENAME + ) + set(ECM_PKGCONFIG_INSTALL_DIR "${LIB_INSTALL_DIR}/pkgconfig" CACHE PATH "The directory where pkgconfig will be installed to.") + install(FILES ${WebKit_PKGCONFIG_FILENAME} DESTINATION ${ECM_PKGCONFIG_INSTALL_DIR} COMPONENT Data) +endif () if (KDE_INSTALL_USE_QT_SYS_PATHS) set(WebKit_PRI_ARGUMENTS - INCLUDE_INSTALL_DIR "$$QT_MODULE_INCLUDE_BASE" - INCLUDE_INSTALL_DIR2 "$$QT_MODULE_INCLUDE_BASE/QtWebKit" LIB_INSTALL_DIR "$$QT_MODULE_LIB_BASE" ) + if (MACOS_BUILD_FRAMEWORKS) + list(APPEND WebKit_PRI_ARGUMENTS + INCLUDE_INSTALL_DIR "$$QT_MODULE_LIB_BASE/QtWebKit.framework/Headers" + MODULE_CONFIG "v2 lib_bundle" + ) + else () + list(APPEND WebKit_PRI_ARGUMENTS + INCLUDE_INSTALL_DIR "$$QT_MODULE_INCLUDE_BASE" + INCLUDE_INSTALL_DIR2 "$$QT_MODULE_INCLUDE_BASE/QtWebKit" + ) + endif () else () set(WebKit_PRI_ARGUMENTS - INCLUDE_INSTALL_DIR ${KDE_INSTALL_INCLUDEDIR} - INCLUDE_INSTALL_DIR2 "${KDE_INSTALL_INCLUDEDIR}/QtWebKit" SET_RPATH ON ) + if (MACOS_BUILD_FRAMEWORKS) + list(APPEND WebKit_PRI_ARGUMENTS + INCLUDE_INSTALL_DIR "${LIB_INSTALL_DIR}/QtWebKit.framework/Headers" + MODULE_CONFIG "v2 lib_bundle" + ) + else () + list(APPEND WebKit_PRI_ARGUMENTS + INCLUDE_INSTALL_DIR ${KDE_INSTALL_INCLUDEDIR} + INCLUDE_INSTALL_DIR2 "${KDE_INSTALL_INCLUDEDIR}/QtWebKit" + ) + endif () +endif () + +if (MACOS_BUILD_FRAMEWORKS) + set(WebKit_OUTPUT_NAME QtWebKit) +else () + set(WebKit_OUTPUT_NAME Qt5WebKit) endif () ecm_generate_pri_file( BASE_NAME webkit - LIB_NAME QtWebKit + LIB_NAME ${WebKit_OUTPUT_NAME} + INCLUDE_INSTALL_DIR "${KDE_INSTALL_INCLUDEDIR}/QtWebKit" DEPS "${WEBKIT_PRI_DEPS}" RUNTIME_DEPS "${WEBKIT_PRI_RUNTIME_DEPS}" DEFINES QT_WEBKIT_LIB @@ -474,12 +501,6 @@ else () set(WebKit_LIBRARY_TYPE SHARED) endif () -if (APPLE AND NOT QT_STATIC_BUILD) - set(WebKit_OUTPUT_NAME QtWebKit) -else () - set(WebKit_OUTPUT_NAME Qt5WebKit) -endif () - ############ WebKitWidgets ############ @@ -601,30 +622,57 @@ install( COMPONENT Data ) -ecm_generate_pkgconfig_file( - BASE_NAME Qt5WebKitWidgets - DEPS "${WEBKITWIDGETS_PKGCONFIG_DEPS}" - FILENAME_VAR WebKitWidgets_PKGCONFIG_FILENAME -) -install(FILES ${WebKitWidgets_PKGCONFIG_FILENAME} DESTINATION ${ECM_PKGCONFIG_INSTALL_DIR} COMPONENT Data) +if (NOT MACOS_BUILD_FRAMEWORKS) + ecm_generate_pkgconfig_file( + BASE_NAME Qt5WebKitWidgets + DEPS "${WEBKITWIDGETS_PKGCONFIG_DEPS}" + FILENAME_VAR WebKitWidgets_PKGCONFIG_FILENAME + ) + install(FILES ${WebKitWidgets_PKGCONFIG_FILENAME} DESTINATION ${ECM_PKGCONFIG_INSTALL_DIR} COMPONENT Data) +endif () if (KDE_INSTALL_USE_QT_SYS_PATHS) set(WebKitWidgets_PRI_ARGUMENTS - INCLUDE_INSTALL_DIR "$$QT_MODULE_INCLUDE_BASE" - INCLUDE_INSTALL_DIR2 "$$QT_MODULE_INCLUDE_BASE/QtWebKitWidgets" LIB_INSTALL_DIR "$$QT_MODULE_LIB_BASE" ) + if (MACOS_BUILD_FRAMEWORKS) + list(APPEND WebKitWidgets_PRI_ARGUMENTS + INCLUDE_INSTALL_DIR "$$QT_MODULE_LIB_BASE/QtWebKitWidgets.framework/Headers" + MODULE_CONFIG "v2 lib_bundle" + ) + else () + list(APPEND WebKitWidgets_PRI_ARGUMENTS + INCLUDE_INSTALL_DIR "$$QT_MODULE_INCLUDE_BASE" + INCLUDE_INSTALL_DIR2 "$$QT_MODULE_INCLUDE_BASE/QtWebKitWidgets" + ) + endif () else () set(WebKitWidgets_PRI_ARGUMENTS - INCLUDE_INSTALL_DIR ${KDE_INSTALL_INCLUDEDIR} - INCLUDE_INSTALL_DIR2 "${KDE_INSTALL_INCLUDEDIR}/QtWebKitWidgets" SET_RPATH ON ) + if (MACOS_BUILD_FRAMEWORKS) + list(APPEND WebKitWidgets_PRI_ARGUMENTS + INCLUDE_INSTALL_DIR "${LIB_INSTALL_DIR}/QtWebKitWidgets.framework/Headers" + MODULE_CONFIG "v2 lib_bundle" + ) + else () + list(APPEND WebKitWidgets_PRI_ARGUMENTS + INCLUDE_INSTALL_DIR ${KDE_INSTALL_INCLUDEDIR} + INCLUDE_INSTALL_DIR2 "${KDE_INSTALL_INCLUDEDIR}/QtWebKitWidgets" + ) + endif () +endif () + +if (MACOS_BUILD_FRAMEWORKS) + set(WebKitWidgets_OUTPUT_NAME QtWebKitWidgets) +else () + set(WebKitWidgets_OUTPUT_NAME Qt5WebKitWidgets) endif () ecm_generate_pri_file( BASE_NAME webkitwidgets - LIB_NAME QtWebKitWidgets + LIB_NAME ${WebKitWidgets_OUTPUT_NAME} + INCLUDE_INSTALL_DIR "${KDE_INSTALL_INCLUDEDIR}/QtWebKitWidgets" DEPS "${WEBKITWIDGETS_PRI_DEPS}" RUNTIME_DEPS "${WEBKITWIDGETS_PRI_RUNTIME_DEPS}" DEFINES QT_WEBKITWIDGETS_LIB @@ -671,12 +719,7 @@ else () set(WebKitWidgets_LIBRARY_TYPE SHARED) endif () -if (APPLE AND NOT QT_STATIC_BUILD) - set(WebKitWidgets_OUTPUT_NAME QtWebKitWidgets) -else () - set(WebKitWidgets_OUTPUT_NAME Qt5WebKitWidgets) -endif () -set(WebKitWidgets_PRIVATE_HEADERS_LOCATION Headers/${PROJECT_VERSION}/QtWebKitWidgets/Private) +set(WebKitWidgets_PRIVATE_HEADERS_LOCATION Headers/${PROJECT_VERSION}/QtWebKitWidgets/private) WEBKIT_FRAMEWORK(WebKitWidgets) add_dependencies(WebKitWidgets WebKit) @@ -693,6 +736,13 @@ if (NOT MSVC AND WIN32) ADD_PREFIX_HEADER(WebKitWidgets "qt/WebKitWidgetsPrefix.h") endif () +if (MACOS_BUILD_FRAMEWORKS) + set_target_properties(WebKitWidgets PROPERTIES + FRAMEWORK_VERSION 5 + MACOSX_FRAMEWORK_IDENTIFIER org.qt-project.QtWebKitWidgets + ) +endif () + if (USE_LINKER_VERSION_SCRIPT) set(VERSION_SCRIPT "${CMAKE_BINARY_DIR}/QtWebKitWidgets.version") add_custom_command(TARGET WebKitWidgets PRE_LINK diff --git a/Source/WebKit/qt/WebCoreSupport/QWebPageAdapter.cpp b/Source/WebKit/qt/WebCoreSupport/QWebPageAdapter.cpp index 569cc541e..dc2370453 100644 --- a/Source/WebKit/qt/WebCoreSupport/QWebPageAdapter.cpp +++ b/Source/WebKit/qt/WebCoreSupport/QWebPageAdapter.cpp @@ -365,8 +365,12 @@ void QWebPageAdapter::setNetworkAccessManager(QNetworkAccessManager *manager) QNetworkAccessManager* QWebPageAdapter::networkAccessManager() { - if (!networkManager) + if (!networkManager) { networkManager = new QNetworkAccessManager(handle()); +#if QT_VERSION >= QT_VERSION_CHECK(5, 9, 0) + networkManager->setStrictTransportSecurityEnabled(true); +#endif + } return networkManager; } diff --git a/Source/WebKit/qt/WidgetApi/qwebinspector.cpp b/Source/WebKit/qt/WidgetApi/qwebinspector.cpp index bc95047f1..ddb49ec90 100644 --- a/Source/WebKit/qt/WidgetApi/qwebinspector.cpp +++ b/Source/WebKit/qt/WidgetApi/qwebinspector.cpp @@ -166,8 +166,7 @@ void QWebInspector::showEvent(QShowEvent* event) /*! \reimp */ void QWebInspector::hideEvent(QHideEvent* event) { - if (d->page) - d->page->d->didCloseInspector(); + QWidget::hideEvent(event); } /*! \reimp */ diff --git a/Source/cmake/ECMGeneratePriFile.cmake b/Source/cmake/ECMGeneratePriFile.cmake index 9b4a80f18..fdee5504d 100644 --- a/Source/cmake/ECMGeneratePriFile.cmake +++ b/Source/cmake/ECMGeneratePriFile.cmake @@ -106,7 +106,7 @@ endif() function(ECM_GENERATE_PRI_FILE) set(options ) - set(oneValueArgs BASE_NAME LIB_NAME DEPS RUNTIME_DEPS FILENAME_VAR INCLUDE_INSTALL_DIR INCLUDE_INSTALL_DIR2 LIB_INSTALL_DIR SET_RPATH DEFINES QT_MODULES EXTRA_LIBS) + set(oneValueArgs BASE_NAME LIB_NAME DEPS RUNTIME_DEPS FILENAME_VAR INCLUDE_INSTALL_DIR INCLUDE_INSTALL_DIR2 LIB_INSTALL_DIR SET_RPATH DEFINES QT_MODULES EXTRA_LIBS MODULE_CONFIG) set(multiValueArgs ) cmake_parse_arguments(EGPF "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) @@ -180,9 +180,19 @@ function(ECM_GENERATE_PRI_FILE) set(${EGPF_FILENAME_VAR} ${PRI_FILENAME} PARENT_SCOPE) endif() - if (PRI_TARGET_EXTRA_LIBS) + if (EGPF_MODULE_CONFIG) + set(PRI_TARGET_CONFIG ${EGPF_MODULE_CONFIG}) + elseif (PRI_TARGET_EXTRA_LIBS) # assuming that this var is set in STATIC build only set(PRI_TARGET_CONFIG "staticlib") + else () + set(PRI_TARGET_CONFIG "") + endif () + + if (EGPF_MODULE_CONFIG MATCHES "lib_bundle") + set(PRI_TARGET_FRAMEWORKS ${PRI_TARGET_LIBS}) + else () + set(PRI_TARGET_FRAMEWORKS "") endif () file(GENERATE @@ -193,6 +203,7 @@ QT.${PRI_TARGET_BASENAME}.MAJOR_VERSION = ${PROJECT_VERSION_MAJOR} QT.${PRI_TARGET_BASENAME}.MINOR_VERSION = ${PROJECT_VERSION_MINOR} QT.${PRI_TARGET_BASENAME}.PATCH_VERSION = ${PROJECT_VERSION_PATCH} QT.${PRI_TARGET_BASENAME}.name = ${PRI_TARGET_LIBNAME} +QT.${PRI_TARGET_BASENAME}.module = ${PRI_TARGET_LIBNAME} QT.${PRI_TARGET_BASENAME}.DEFINES = ${PRI_TARGET_DEFINES} QT.${PRI_TARGET_BASENAME}.includes = \"${PRI_TARGET_INCLUDES}\" \"${PRI_TARGET_INCLUDES2}\" QT.${PRI_TARGET_BASENAME}.private_includes = @@ -205,9 +216,11 @@ QT.${PRI_TARGET_BASENAME}.libexec = QT.${PRI_TARGET_BASENAME}.plugins = QT.${PRI_TARGET_BASENAME}.imports = QT.${PRI_TARGET_BASENAME}.qml = +QT.${PRI_TARGET_BASENAME}.frameworks = ${PRI_TARGET_FRAMEWORKS} QT.${PRI_TARGET_BASENAME}.module_config = ${PRI_TARGET_CONFIG} QT_MODULES += ${PRI_TARGET_QT_MODULES} QMAKE_LIBS_PRIVATE += ${PRI_TARGET_EXTRA_LIBS} +QMAKE_RPATHDIR += ${PRI_TARGET_RPATH} " ) diff --git a/Source/cmake/OptionsQt.cmake b/Source/cmake/OptionsQt.cmake index ee59d7738..f73bc4146 100644 --- a/Source/cmake/OptionsQt.cmake +++ b/Source/cmake/OptionsQt.cmake @@ -67,16 +67,11 @@ if (WIN32) set(CMAKE_SHARED_MODULE_PREFIX "") endif () -if (APPLE) - if (${CMAKE_BUILD_TYPE} MATCHES "Debug") - set(CMAKE_DEBUG_POSTFIX _debug) - endif () -endif () - WEBKIT_OPTION_BEGIN() if (APPLE) option(MACOS_FORCE_SYSTEM_XML_LIBRARIES "Use system installation of libxml2 and libxslt on macOS" ON) + set(MACOS_BUILD_FRAMEWORKS ON) # TODO: Make it an option endif () if (WIN32 OR APPLE) @@ -241,6 +236,7 @@ get_target_property(QT_CORE_TYPE Qt5::Core TYPE) if (QT_CORE_TYPE MATCHES STATIC) set(QT_STATIC_BUILD ON) set(SHARED_CORE OFF) + set(MACOS_BUILD_FRAMEWORKS OFF) endif () if (SHARED_CORE) diff --git a/Tools/qmake/projects/run_cmake.pro b/Tools/qmake/projects/run_cmake.pro index ac8767154..45d97e976 100644 --- a/Tools/qmake/projects/run_cmake.pro +++ b/Tools/qmake/projects/run_cmake.pro @@ -112,13 +112,17 @@ build_pass|!debug_and_release { QMAKE_EXTRA_TARGETS += default_target # When debug and release are built at the same time, don't install data files twice - debug_and_release:build_all:CONFIG(debug, debug|release): cmake_install_args = "-DCOMPONENT=Code" + debug_and_release:build_all:CONFIG(debug, debug|release) { + cmake_install_args = "-DCOMPONENT=Code" + # TODO: Fix macOS frameworks installation in debug_and_release + macos: destdir_suffix = "/debug" + } install_impl_target.target = install_impl install_impl_target.commands = cd $$cmake_build_dir && cmake $$cmake_install_args -P cmake_install.cmake QMAKE_EXTRA_TARGETS += install_impl_target install_target.target = install - install_target.commands = $(MAKE) -f $(MAKEFILE) install_impl $$make_args DESTDIR=$(INSTALL_ROOT) + install_target.commands = $(MAKE) -f $(MAKEFILE) install_impl $$make_args DESTDIR=$(INSTALL_ROOT)$$destdir_suffix QMAKE_EXTRA_TARGETS += install_target } |