From 1482978d1e764e0c31c2df8890913d6801a8e065 Mon Sep 17 00:00:00 2001 From: Konstantin Tokarev Date: Wed, 11 Sep 2019 12:41:53 +0300 Subject: Import QtWebKit commit 68b093f76fd3ee458de9d1bbf54e1d5a648a71bd Change-Id: I62abae1d1e60d2cb65514d01fa89ad44308a6ba4 Reviewed-by: Konstantin Tokarev --- Source/PlatformQt.cmake | 9 +++++++++ Source/WebKit/CMakeLists.txt | 5 +++++ Source/WebKit/PlatformQt.cmake | 5 +++++ Source/cmake/OptionsQt.cmake | 31 +++++++++++++++++++++++++++++++ Tools/qmake/projects/run_cmake.pro | 5 +++++ 5 files changed, 55 insertions(+) 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 $ 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 $ 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 "$") + 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. -- cgit v1.2.1