forked from qt-creator/qt-creator
qds: ENABLE_CRASHPAD on macos (universal builds)
using a newer crashpad version build with: git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git export PATH=$PWD/depot_tools:$PATH mkdir crashpad cd crashpad ../depot_tools/fetch crashpad cd crashpad gn gen out/Default --args='target_cpu="mac_universal"' ninja -C out/Default Change-Id: I782c09cb564aff725652cd1419a8dec78bc04fc5 Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
This commit is contained in:
@@ -91,7 +91,7 @@ set(CRASHPAD_BACKEND_URL "" CACHE STRING "Crashpad backend URL")
|
|||||||
set(BUILD_WITH_CRASHPAD OFF)
|
set(BUILD_WITH_CRASHPAD OFF)
|
||||||
# Linux is not supported for now
|
# Linux is not supported for now
|
||||||
# x86_64;arm64 is not supported for now
|
# x86_64;arm64 is not supported for now
|
||||||
if(CRASHPAD_BACKEND_URL AND (WIN32 OR (APPLE AND NOT "${CMAKE_OSX_ARCHITECTURES}" STREQUAL "x86_64;arm64")))
|
if(CRASHPAD_BACKEND_URL AND (WIN32 OR APPLE)) # Linux is not supported for now
|
||||||
find_package(Crashpad QUIET)
|
find_package(Crashpad QUIET)
|
||||||
if(TARGET Crashpad::Crashpad)
|
if(TARGET Crashpad::Crashpad)
|
||||||
set(BUILD_WITH_CRASHPAD ON)
|
set(BUILD_WITH_CRASHPAD ON)
|
||||||
|
@@ -57,25 +57,9 @@ find_path(CRASHPAD_GEN_DIR
|
|||||||
"${CMAKE_PREFIX_PATH}"
|
"${CMAKE_PREFIX_PATH}"
|
||||||
)
|
)
|
||||||
|
|
||||||
if(APPLE)
|
|
||||||
find_path(CRASHPAD_OBJ_DIR
|
|
||||||
NAMES mig_output.child_portServer.o
|
|
||||||
PATH_SUFFIXES gen/util/mach
|
|
||||||
HINTS
|
|
||||||
"${CRASHPAD_OBJECT_DIR}"
|
|
||||||
"${CRASHPAD_LIB_DIR}/out/Default"
|
|
||||||
"${CMAKE_PREFIX_PATH}"
|
|
||||||
)
|
|
||||||
set(CRASHPAD_APPLE_VARS CRASHPAD_OBJ_DIR CRASHPAD_GEN_DIR)
|
|
||||||
find_library(FWbsm bsm)
|
|
||||||
find_library(FWAppKit AppKit)
|
|
||||||
find_library(FWIOKit IOKit)
|
|
||||||
find_library(FWSecurity Security)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
include(FindPackageHandleStandardArgs)
|
include(FindPackageHandleStandardArgs)
|
||||||
find_package_handle_standard_args(Crashpad DEFAULT_MSG
|
find_package_handle_standard_args(Crashpad DEFAULT_MSG
|
||||||
CRASHPAD_BIN_DIR CRASHPAD_INCLUDE_DIR CRASHPAD_LIB_DIR ${CRASHPAD_APPLE_VARS}
|
CRASHPAD_BIN_DIR CRASHPAD_INCLUDE_DIR CRASHPAD_LIB_DIR
|
||||||
)
|
)
|
||||||
|
|
||||||
if(Crashpad_FOUND)
|
if(Crashpad_FOUND)
|
||||||
@@ -93,18 +77,16 @@ if(Crashpad_FOUND)
|
|||||||
set_target_properties(Crashpad::Crashpad PROPERTIES
|
set_target_properties(Crashpad::Crashpad PROPERTIES
|
||||||
IMPORTED_LOCATION "${CRASHPAD_LIB_DIR}/client/client.lib")
|
IMPORTED_LOCATION "${CRASHPAD_LIB_DIR}/client/client.lib")
|
||||||
elseif(APPLE)
|
elseif(APPLE)
|
||||||
|
find_library(FWbsm bsm)
|
||||||
|
find_library(FWAppKit AppKit)
|
||||||
|
find_library(FWIOKit IOKit)
|
||||||
|
find_library(FWSecurity Security)
|
||||||
target_link_libraries(Crashpad::Crashpad INTERFACE
|
target_link_libraries(Crashpad::Crashpad INTERFACE
|
||||||
"${CRASHPAD_LIB_DIR}/third_party/mini_chromium/mini_chromium/base/libbase.a"
|
"${CRASHPAD_LIB_DIR}/third_party/mini_chromium/mini_chromium/base/libbase.a"
|
||||||
"${CRASHPAD_LIB_DIR}/util/libutil.a"
|
"${CRASHPAD_LIB_DIR}/util/libutil.a"
|
||||||
|
"${CRASHPAD_LIB_DIR}/util/libmig_output.a"
|
||||||
"${CRASHPAD_LIB_DIR}/client/libclient.a"
|
"${CRASHPAD_LIB_DIR}/client/libclient.a"
|
||||||
"${CRASHPAD_OBJ_DIR}/mig_output.child_portServer.o"
|
"${CRASHPAD_LIB_DIR}/client/libcommon.a"
|
||||||
"${CRASHPAD_OBJ_DIR}/mig_output.child_portUser.o"
|
|
||||||
"${CRASHPAD_OBJ_DIR}/mig_output.excServer.o"
|
|
||||||
"${CRASHPAD_OBJ_DIR}/mig_output.excUser.o"
|
|
||||||
"${CRASHPAD_OBJ_DIR}/mig_output.mach_excServer.o"
|
|
||||||
"${CRASHPAD_OBJ_DIR}/mig_output.mach_excUser.o"
|
|
||||||
"${CRASHPAD_OBJ_DIR}/mig_output.notifyServer.o"
|
|
||||||
"${CRASHPAD_OBJ_DIR}/mig_output.notifyUser.o"
|
|
||||||
${FWbsm} ${FWAppKit} ${FWIOKit} ${FWSecurity})
|
${FWbsm} ${FWAppKit} ${FWIOKit} ${FWSecurity})
|
||||||
set_target_properties(Crashpad::Crashpad PROPERTIES
|
set_target_properties(Crashpad::Crashpad PROPERTIES
|
||||||
IMPORTED_LOCATION "${CRASHPAD_LIB_DIR}/client/libclient.a")
|
IMPORTED_LOCATION "${CRASHPAD_LIB_DIR}/client/libclient.a")
|
||||||
|
@@ -412,11 +412,6 @@ QStringList lastSessionArgument()
|
|||||||
#ifdef ENABLE_CRASHPAD
|
#ifdef ENABLE_CRASHPAD
|
||||||
bool startCrashpad(const QString &libexecPath, bool crashReportingEnabled)
|
bool startCrashpad(const QString &libexecPath, bool crashReportingEnabled)
|
||||||
{
|
{
|
||||||
if (QSysInfo::currentCpuArchitecture() == "arm64") {
|
|
||||||
qDebug() << "The crashpad_handler binary does not work on arm64 properly. So it is disabled for now.";
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
using namespace crashpad;
|
using namespace crashpad;
|
||||||
|
|
||||||
// Cache directory that will store crashpad information and minidumps
|
// Cache directory that will store crashpad information and minidumps
|
||||||
|
Reference in New Issue
Block a user