summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKonstantin Tokarev <annulen@yandex.ru>2019-09-11 12:41:53 +0300
committerKonstantin Tokarev <annulen@yandex.ru>2019-09-11 12:43:26 +0300
commit1482978d1e764e0c31c2df8890913d6801a8e065 (patch)
treeb2e41908c8e078c00a57e30e5337ca88609e5b2a
parent5087e0ced43d813eb6f765913a6fc3958d2a7a9d (diff)
Import QtWebKit commit 68b093f76fd3ee458de9d1bbf54e1d5a648a71bd
Change-Id: I62abae1d1e60d2cb65514d01fa89ad44308a6ba4 Reviewed-by: Konstantin Tokarev <annulen@yandex.ru>
-rw-r--r--Source/PlatformQt.cmake9
-rw-r--r--Source/WebKit/CMakeLists.txt5
-rw-r--r--Source/WebKit/PlatformQt.cmake5
-rw-r--r--Source/cmake/OptionsQt.cmake31
-rw-r--r--Tools/qmake/projects/run_cmake.pro5
5 files changed, 55 insertions, 0 deletions
diff --git a/Source/PlatformQt.cmake b/Source/PlatformQt.cmake
index 61648331b..2d58228dc 100644
--- a/Source/PlatformQt.cmake
+++ b/Source/PlatformQt.cmake
@@ -54,6 +54,15 @@ if (USE_MINIMAL_DEBUG_INFO_MSVC AND MSVC AND CMAKE_BUILD_TYPE STREQUAL "Debug")
endif ()
endif ()
+if (FORCE_DEBUG_INFO)
+ if (COMPILER_IS_GCC_OR_CLANG)
+ if (NOT APPLE)
+ target_compile_options(WebKit PRIVATE -fdebug-types-section)
+ target_compile_options(WebKit2 PRIVATE -fdebug-types-section)
+ endif ()
+ endif ()
+endif ()
+
# GTest
if (TARGET gtest)
diff --git a/Source/WebKit/CMakeLists.txt b/Source/WebKit/CMakeLists.txt
index 04117d563..c845856da 100644
--- a/Source/WebKit/CMakeLists.txt
+++ b/Source/WebKit/CMakeLists.txt
@@ -64,6 +64,11 @@ if (${PORT} STREQUAL "Qt")
install(FILES $<TARGET_PDB_FILE:WebKit> DESTINATION "${BIN_INSTALL_DIR}" OPTIONAL)
endif ()
+ if (SEPARATE_DEBUG_INFO)
+ QTWEBKIT_SEPARATE_DEBUG_INFO(WebKit WebKit_DEBUG_INFO)
+ install(FILES ${WebKit_DEBUG_INFO} DESTINATION "${LIB_INSTALL_DIR}" OPTIONAL)
+ endif ()
+
if (NOT MSVC)
ADD_PREFIX_HEADER(WebKit "${WEBKIT_DIR}/qt/WebKitPrefix.h")
endif ()
diff --git a/Source/WebKit/PlatformQt.cmake b/Source/WebKit/PlatformQt.cmake
index 2bd6342be..fe1c59b27 100644
--- a/Source/WebKit/PlatformQt.cmake
+++ b/Source/WebKit/PlatformQt.cmake
@@ -858,6 +858,11 @@ if (MSVC AND NOT QT_STATIC_BUILD)
install(FILES $<TARGET_PDB_FILE:WebKitWidgets> DESTINATION "${BIN_INSTALL_DIR}" OPTIONAL)
endif ()
+if (SEPARATE_DEBUG_INFO)
+ QTWEBKIT_SEPARATE_DEBUG_INFO(WebKitWidgets WebKitWidgets_DEBUG_INFO)
+ install(FILES ${WebKitWidgets_DEBUG_INFO} DESTINATION "${LIB_INSTALL_DIR}" OPTIONAL)
+endif ()
+
if (NOT MSVC AND WIN32)
ADD_PREFIX_HEADER(WebKitWidgets "qt/WebKitWidgetsPrefix.h")
endif ()
diff --git a/Source/cmake/OptionsQt.cmake b/Source/cmake/OptionsQt.cmake
index 7e1e55340..bdcc58a48 100644
--- a/Source/cmake/OptionsQt.cmake
+++ b/Source/cmake/OptionsQt.cmake
@@ -147,6 +147,24 @@ macro(QTWEBKIT_GENERATE_MOC_FILES_H _target)
endforeach ()
endmacro()
+macro(QTWEBKIT_SEPARATE_DEBUG_INFO _target _target_debug)
+ if (UNIX AND NOT APPLE)
+ if (NOT CMAKE_OBJCOPY)
+ message(WARNING "CMAKE_OBJCOPY is not defined - debug information will not be split")
+ else ()
+ set(_target_file "$<TARGET_FILE:${_target}>")
+ set(${_target_debug} "${_target_file}.debug")
+ add_custom_command(TARGET ${_target} POST_BUILD
+ COMMAND ${CMAKE_OBJCOPY} --only-keep-debug ${_target_file} ${${_target_debug}}
+ COMMAND ${CMAKE_OBJCOPY} --strip-debug ${_target_file}
+ COMMAND ${CMAKE_OBJCOPY} --add-gnu-debuglink=${${_target_debug}} ${_target_file}
+ VERBATIM
+ )
+ unset(_target_file)
+ endif ()
+ endif ()
+endmacro()
+
set(CMAKE_MACOSX_RPATH ON)
add_definitions(-DBUILDING_QT__=1)
@@ -698,6 +716,19 @@ if (WIN32 AND COMPILER_IS_GCC_OR_CLANG)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-keep-inline-dllexport")
endif ()
+# See also FORCE_DEBUG_INFO in Source/PlatformQt.cmake
+if (FORCE_DEBUG_INFO)
+ if (COMPILER_IS_GCC_OR_CLANG)
+ # Enable debug info in Release builds
+ set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -g")
+ set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -g")
+ endif ()
+ if (USE_LD_GOLD)
+ set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--gdb-index")
+ set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--gdb-index")
+ endif ()
+endif ()
+
if (APPLE)
SET_AND_EXPOSE_TO_BUILD(HAVE_QOS_CLASSES 1)
endif ()
diff --git a/Tools/qmake/projects/run_cmake.pro b/Tools/qmake/projects/run_cmake.pro
index 5cdd40a77..345e43a01 100644
--- a/Tools/qmake/projects/run_cmake.pro
+++ b/Tools/qmake/projects/run_cmake.pro
@@ -63,6 +63,11 @@ build_pass|!debug_and_release {
CMAKE_CONFIG += USE_MINIMAL_DEBUG_INFO_MSVC=ON
}
+ !macos {
+ force_debug_info: CMAKE_CONFIG += FORCE_DEBUG_INFO=ON
+ qtConfig(separate_debug_info): CMAKE_CONFIG += SEPARATE_DEBUG_INFO=ON
+ }
+
macos {
# Reuse the cached sdk version value from mac/sdk.prf if available
# otherwise query for it.