Skip to content

Instantly share code, notes, and snippets.

@mnutt
Created February 10, 2017 16:49
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mnutt/1a316e0e01869d042b8a7cc870ed6dc7 to your computer and use it in GitHub Desktop.
Save mnutt/1a316e0e01869d042b8a7cc870ed6dc7 to your computer and use it in GitHub Desktop.
homebrew-qtwebkit-tp5-mac-frameworks.diff
diff --git a/Source/WebKit/PlatformQt.cmake b/Source/WebKit/PlatformQt.cmake
index 30b1a377aed..c373b58d8b0 100644
--- a/Source/WebKit/PlatformQt.cmake
+++ b/Source/WebKit/PlatformQt.cmake
@@ -387,20 +387,20 @@ install(
${KDE_INSTALL_INCLUDEDIR}/QtWebKit/${PROJECT_VERSION}/QtWebKit/private
)
-set(WEBKIT_PKGCONGIG_DEPS "Qt5Core Qt5Gui Qt5Network")
+set(WEBKIT_PKGCONFIG_DEPS "Qt5Core Qt5Gui Qt5Network")
set(WEBKIT_PRI_DEPS "core gui network")
set(WEBKIT_PRI_RUNTIME_DEPS "sensors positioning qml quick webchannel core_private gui_private")
set(WEBKIT_PRI_EXTRA_LIBS "")
-set(WEBKITWIDGETS_PKGCONGIG_DEPS "Qt5Core Qt5Gui Qt5Network Qt5Widgets Qt5WebKit")
+set(WEBKITWIDGETS_PKGCONFIG_DEPS "Qt5Core Qt5Gui Qt5Network Qt5Widgets Qt5WebKit")
set(WEBKITWIDGETS_PRI_DEPS "core gui network widgets webkit")
set(WEBKITWIDGETS_PRI_RUNTIME_DEPS "sensors positioning widgets_private opengl sql core_private gui_private")
if (QT_STATIC_BUILD)
if (MSVC)
set(LIB_PREFIX "lib")
endif ()
- set(WEBKIT_PKGCONGIG_DEPS "${WEBKIT_PKGCONGIG_DEPS} Qt5Sql")
+ set(WEBKIT_PKGCONFIG_DEPS "${WEBKIT_PKGCONFIG_DEPS} Qt5Sql")
set(WEBKIT_PRI_DEPS "${WEBKIT_PRI_DEPS} sql")
- set(WEBKITWIDGETS_PKGCONGIG_DEPS "${WEBKITWIDGETS_PKGCONGIG_DEPS} Qt5PrintSupport")
+ set(WEBKITWIDGETS_PKGCONFIG_DEPS "${WEBKITWIDGETS_PKGCONFIG_DEPS} Qt5PrintSupport")
set(WEBKITWIDGETS_PRI_DEPS "${WEBKITWIDGETS_PRI_DEPS} printsupport")
set(EXTRA_LIBS_NAMES WebCore JavaScriptCore WTF xml2)
if (NOT USE_SYSTEM_MALLOC)
@@ -422,7 +422,7 @@ if (QT_STATIC_BUILD)
list(APPEND EXTRA_LIBS_NAMES icucore)
endif ()
foreach (LIB_NAME ${EXTRA_LIBS_NAMES})
- set(WEBKIT_PKGCONGIG_DEPS "${WEBKIT_PKGCONGIG_DEPS} ${LIB_PREFIX}${LIB_NAME}")
+ set(WEBKIT_PKGCONFIG_DEPS "${WEBKIT_PKGCONFIG_DEPS} ${LIB_PREFIX}${LIB_NAME}")
set(WEBKIT_PRI_EXTRA_LIBS "${WEBKIT_PRI_EXTRA_LIBS} -l${LIB_PREFIX}${LIB_NAME}")
endforeach ()
else ()
@@ -430,9 +430,22 @@ else ()
set(WEBKITWIDGETS_PRI_RUNTIME_DEPS "${WEBKITWIDGETS_PRI_RUNTIME_DEPS} printsupport")
endif ()
+set(WEBKIT_BASE_NAME "webkit")
+set(WEBKIT_LIB_NAME "Qt5WebKit")
+set(WEBKITWIDGETS_BASE_NAME "webkitwidgets")
+set(WEBKITWIDGETS_LIB_NAME "Qt5WebKitWidgets")
+
+# Mac libraries use "Qt" prefix rather than "Qt5"
+if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
+ set(WEBKIT_LIB_NAME "QtWebKit")
+ set(WEBKITWIDGETS_LIB_NAME "QtWebKitWidgets")
+endif ()
+
ecm_generate_pkgconfig_file(
- BASE_NAME Qt5WebKit
- DEPS "${WEBKIT_PKGCONGIG_DEPS}"
+ BASE_NAME ${WEBKIT_BASE_NAME}
+ LIB_NAME ${WEBKIT_LIB_NAME}
+ INCLUDE_INSTALL_DIR "${KDE_INSTALL_INCLUDEDIR}/QtWebKit"
+ DEPS "${WEBKIT_PKGCONFIG_DEPS}"
FILENAME_VAR WebKit_PKGCONFIG_FILENAME
INSTALL
)
@@ -452,8 +465,9 @@ else ()
endif ()
ecm_generate_pri_file(
- BASE_NAME webkit
- LIB_NAME QtWebKit
+ BASE_NAME ${WEBKIT_BASE_NAME}
+ LIB_NAME ${WEBKIT_LIB_NAME}
+ INCLUDE_INSTALL_DIR "${KDE_INSTALL_INCLUDEDIR}/QtWebKit"
DEPS "${WEBKIT_PRI_DEPS}"
RUNTIME_DEPS "${WEBKIT_PRI_RUNTIME_DEPS}"
DEFINES QT_WEBKIT_LIB
@@ -470,13 +484,6 @@ else ()
set(WebKit_LIBRARY_TYPE SHARED)
endif ()
-if (APPLE)
- set(WebKit_OUTPUT_NAME QtWebKit)
-else ()
- set(WebKit_OUTPUT_NAME Qt5WebKit)
-endif ()
-
-
############ WebKitWidgets ############
set(WebKitWidgets_INCLUDE_DIRECTORIES
@@ -596,7 +603,9 @@ install(
)
ecm_generate_pkgconfig_file(
- BASE_NAME Qt5WebKitWidgets
+ BASE_NAME ${WEBKITWIDGETS_BASE_NAME}
+ LIB_NAME ${WEBKITWIDGETS_LIB_NAME}
+ INCLUDE_INSTALL_DIR "${KDE_INSTALL_INCLUDEDIR}/QtWebKitWidgets"
DEPS "${WEBKITWIDGETS_PKGCONFIG_DEPS}"
FILENAME_VAR WebKitWidgets_PKGCONFIG_FILENAME
INSTALL
@@ -617,8 +626,9 @@ else ()
endif ()
ecm_generate_pri_file(
- BASE_NAME webkitwidgets
- LIB_NAME QtWebKitWidgets
+ BASE_NAME ${WEBKITWIDGETS_BASE_NAME}
+ LIB_NAME ${WEBKITWIDGETS_LIB_NAME}
+ INCLUDE_INSTALL_DIR "${KDE_INSTALL_INCLUDEDIR}/QtWebKitWidgets"
DEPS "${WEBKITWIDGETS_PRI_DEPS}"
RUNTIME_DEPS "${WEBKITWIDGETS_PRI_RUNTIME_DEPS}"
DEFINES QT_WEBKITWIDGETS_LIB
@@ -668,11 +678,6 @@ else ()
set(WebKitWidgets_LIBRARY_TYPE SHARED)
endif ()
-if (APPLE)
- set(WebKitWidgets_OUTPUT_NAME QtWebKitWidgets)
-else ()
- set(WebKitWidgets_OUTPUT_NAME Qt5WebKitWidgets)
-endif ()
set(WebKitWidgets_PRIVATE_HEADERS_LOCATION Headers/${PROJECT_VERSION}/QtWebKitWidgets/Private)
WEBKIT_FRAMEWORK(WebKitWidgets)
diff --git a/Source/cmake/ECMGeneratePkgConfigFile.cmake b/Source/cmake/ECMGeneratePkgConfigFile.cmake
index b4e68663038..82c56ac85b8 100644
--- a/Source/cmake/ECMGeneratePkgConfigFile.cmake
+++ b/Source/cmake/ECMGeneratePkgConfigFile.cmake
@@ -25,6 +25,8 @@
# it will default to the ``BASE_NAME``. That means the ``LIB_NAME`` will be set
# as the name field as well as the library to link to.
#
+# ``DESC`` is a description of the library.
+#
# ``FILENAME_VAR`` is specified with a variable name. This variable will
# receive the location of the generated file will be set, within the build
# directory. This way it can be used in case some processing is required. See
@@ -61,6 +63,7 @@
# ecm_generate_pkgconfig_file(
# BASE_NAME KF5Archive
# DEPS Qt5Core
+# DESC "KF5Archive module"
# FILENAME_VAR pkgconfig_filename
# INSTALL
# )
@@ -83,7 +86,7 @@
function(ECM_GENERATE_PKGCONFIG_FILE)
set(options INSTALL)
- set(oneValueArgs BASE_NAME LIB_NAME FILENAME_VAR INCLUDE_INSTALL_DIR LIB_INSTALL_DIR)
+ set(oneValueArgs BASE_NAME LIB_NAME FILENAME_VAR INCLUDE_INSTALL_DIR LIB_INSTALL_DIR DESC)
set(multiValueArgs DEPS DEFINES)
cmake_parse_arguments(EGPF "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
@@ -101,6 +104,9 @@ function(ECM_GENERATE_PKGCONFIG_FILE)
if(NOT EGPF_LIB_NAME)
set(EGPF_LIB_NAME ${EGPF_BASE_NAME})
endif()
+ if (NOT EGPF_DESC)
+ set(EGPF_DESC "${EGPF_LIB_NAME} module")
+ endif ()
if(NOT EGPF_INCLUDE_INSTALL_DIR)
if(INCLUDE_INSTALL_DIR)
set(EGPF_INCLUDE_INSTALL_DIR "${INCLUDE_INSTALL_DIR}/${EGPF_BASE_NAME}")
@@ -140,16 +146,29 @@ function(ECM_GENERATE_PKGCONFIG_FILE)
set(PKGCONFIG_TARGET_DEFINES "${EGPF_DEFINE}")
endif()
- set(PKGCONFIG_FILENAME ${CMAKE_CURRENT_BINARY_DIR}/${PKGCONFIG_TARGET_BASENAME}.pc)
+ set(PKGCONFIG_FILENAME ${CMAKE_CURRENT_BINARY_DIR}/${PKGCONFIG_TARGET_LIBNAME}.pc)
if (EGPF_FILENAME_VAR)
set(${EGPF_FILENAME_VAR} ${PKGCONFIG_FILENAME} PARENT_SCOPE)
endif()
+ set(PROJECT_LIBS "-L${CMAKE_INSTALL_PREFIX}/${EGPF_LIB_INSTALL_DIR} -l${PKGCONFIG_TARGET_LIBNAME}")
+
+ if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
+ set(PROJECT_LIBS "-F${CMAKE_INSTALL_PREFIX}/${EGPF_LIB_INSTALL_DIR} -framework ${PKGCONFIG_TARGET_LIBNAME}")
+ set(PKGCONFIG_TARGET_INCLUDES "-I${CMAKE_INSTALL_PREFIX}/${EGPF_LIB_INSTALL_DIR}/${PKGCONFIG_TARGET_LIBNAME}.framework/includes")
+ endif ()
+
file(WRITE ${PKGCONFIG_FILENAME}
"
+prefix=${CMAKE_INSTALL_PREFIX}
+exec_prefix=${CMAKE_INSTALL_PREFIX}
+libdir=${CMAKE_INSTALL_PREFIX}/${EGPF_LIB_INSTALL_DIR}
+includedir=${EGPF_INCLUDE_INSTALL_DIR}
+
Name: ${PKGCONFIG_TARGET_LIBNAME}
+Description: ${EGPF_DESC}
Version: ${PROJECT_VERSION}
-Libs: -L${CMAKE_INSTALL_PREFIX}/${EGPF_LIB_INSTALL_DIR} -l${PKGCONFIG_TARGET_LIBNAME}
+Libs: ${PROJECT_LIBS}
Cflags: ${PKGCONFIG_TARGET_INCLUDES} ${PKGCONFIG_TARGET_DEFINES}
Requires: ${PKGCONFIG_TARGET_DEPS}
"
@@ -160,4 +179,3 @@ Requires: ${PKGCONFIG_TARGET_DEPS}
install(FILES ${PKGCONFIG_FILENAME} DESTINATION ${ECM_PKGCONFIG_INSTALL_DIR})
endif()
endfunction()
-
diff --git a/Source/cmake/ECMGeneratePriFile.cmake b/Source/cmake/ECMGeneratePriFile.cmake
index 9b4a80f1878..6ff9d1f229b 100644
--- a/Source/cmake/ECMGeneratePriFile.cmake
+++ b/Source/cmake/ECMGeneratePriFile.cmake
@@ -185,6 +185,13 @@ function(ECM_GENERATE_PRI_FILE)
set(PRI_TARGET_CONFIG "staticlib")
endif ()
+ if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
+ set(PRI_TARGET_FRAMEWORKS ${PRI_TARGET_LIBS})
+ set(PRI_TARGET_INCLUDES2 "${PRI_TARGET_LIBS}/${PRI_TARGET_LIBNAME}.framework/Headers")
+ set(PRI_TARGET_LIBS "-framework ${PRI_TARGET_LIBNAME}")
+ set(PRI_TARGET_CONFIG "v2 lib_bundle")
+ endif ()
+
file(GENERATE
OUTPUT ${PRI_FILENAME}
CONTENT
@@ -205,12 +212,14 @@ QT.${PRI_TARGET_BASENAME}.libexec =
QT.${PRI_TARGET_BASENAME}.plugins =
QT.${PRI_TARGET_BASENAME}.imports =
QT.${PRI_TARGET_BASENAME}.qml =
+QT.${PRI_TARGET_BASENAME}.module = ${PRI_TARGET_LIBNAME}
QT.${PRI_TARGET_BASENAME}.module_config = ${PRI_TARGET_CONFIG}
+QT.${PRI_TARGET_BASENAME}.frameworks = ${PRI_TARGET_FRAMEWORKS}
QT_MODULES += ${PRI_TARGET_QT_MODULES}
+QMAKE_RPATHDIR += ${PRI_TARGET_RPATH}
QMAKE_LIBS_PRIVATE += ${PRI_TARGET_EXTRA_LIBS}
"
)
endfunction()
-
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment