mirror of
https://github.com/HifiExperiments/overte.git
synced 2025-08-09 08:56:25 +02:00
cleanup cmake code
This commit is contained in:
parent
b8f821a6a6
commit
546ee2b96f
3 changed files with 48 additions and 13 deletions
46
cmake/externals/crashpad/CMakeLists.txt
vendored
46
cmake/externals/crashpad/CMakeLists.txt
vendored
|
@ -14,21 +14,45 @@ if (WIN32)
|
||||||
LOG_DOWNLOAD 1
|
LOG_DOWNLOAD 1
|
||||||
)
|
)
|
||||||
|
|
||||||
ExternalProject_Get_Property(${EXTERNAL_NAME} SOURCE_DIR)
|
set(BIN_RELEASE_PATH "${SOURCE_DIR}/out/Release_x64")
|
||||||
|
set(BIN_EXT ".exe")
|
||||||
set(${EXTERNAL_NAME_UPPER}_INCLUDE_DIRS ${SOURCE_DIR}/include CACHE PATH "List of Crashpad include directories")
|
set(LIB_RELEASE_PATH "${SOURCE_DIR}/out/Release_x64/lib_MD")
|
||||||
|
set(LIB_DEBUG_PATH "${SOURCE_DIR}/out/Debug_x64/lib_MD")
|
||||||
|
set(LIB_PREFIX "")
|
||||||
set(LIB_EXT "lib")
|
set(LIB_EXT "lib")
|
||||||
|
elseif (APPLE)
|
||||||
|
ExternalProject_Add(
|
||||||
|
${EXTERNAL_NAME}
|
||||||
|
URL http://public.highfidelity.com/dependencies/crashpad_mac_070318.zip
|
||||||
|
URL_MD5 ba1501dc163591ac2d1be74946967e2a
|
||||||
|
CONFIGURE_COMMAND ""
|
||||||
|
BUILD_COMMAND ""
|
||||||
|
INSTALL_COMMAND ""
|
||||||
|
LOG_DOWNLOAD 1
|
||||||
|
)
|
||||||
|
|
||||||
set(${EXTERNAL_NAME_UPPER}_LIBRARY_RELEASE ${SOURCE_DIR}/out/Release_x64/lib_MD/${LIB_PREFIX}crashpad_client.${LIB_EXT} CACHE FILEPATH "Path to Crashpad release library")
|
set(BIN_RELEASE_PATH "${SOURCE_DIR}/out/Release")
|
||||||
set(${EXTERNAL_NAME_UPPER}_BASE_LIBRARY_RELEASE ${SOURCE_DIR}/out/Release_x64/lib_MD/${LIB_PREFIX}base.${LIB_EXT} CACHE FILEPATH "Path to Crashpad base release library")
|
set(BIN_EXT "")
|
||||||
set(${EXTERNAL_NAME_UPPER}_UTIL_LIBRARY_RELEASE ${SOURCE_DIR}/out/Release_x64/lib_MD/${LIB_PREFIX}crashpad_util.${LIB_EXT} CACHE FILEPATH "Path to Crashpad util release library")
|
set(LIB_RELEASE_PATH "${SOURCE_DIR}/out/Release/lib")
|
||||||
|
set(LIB_DEBUG_PATH "${SOURCE_DIR}/out/Debug/lib")
|
||||||
|
set(LIB_PREFIX "lib")
|
||||||
|
set(LIB_EXT "a")
|
||||||
|
endif ()
|
||||||
|
|
||||||
set(${EXTERNAL_NAME_UPPER}_LIBRARY_DEBUG ${SOURCE_DIR}/out/Debug_x64/lib_MD/${LIB_PREFIX}crashpad_client.${LIB_EXT} CACHE FILEPATH "Path to Crashpad debug library")
|
if (WIN32 OR APPLE)
|
||||||
set(${EXTERNAL_NAME_UPPER}_BASE_LIBRARY_DEBUG ${SOURCE_DIR}/out/Debug_x64/lib_MD/${LIB_PREFIX}base.${LIB_EXT} CACHE FILEPATH "Path to Crashpad base debug library")
|
ExternalProject_Get_Property(${EXTERNAL_NAME} SOURCE_DIR)
|
||||||
set(${EXTERNAL_NAME_UPPER}_UTIL_LIBRARY_DEBUG ${SOURCE_DIR}/out/Debug_x64/lib_MD/${LIB_PREFIX}crashpad_util.${LIB_EXT} CACHE FILEPATH "Path to Crashpad util debug library")
|
|
||||||
|
|
||||||
set(CRASHPAD_HANDLER_EXE_PATH ${SOURCE_DIR}/out/Release_x64/crashpad_handler.exe CACHE FILEPATH "Path to the Crashpad handler executable")
|
set(${EXTERNAL_NAME_UPPER}_INCLUDE_DIRS ${SOURCE_DIR}/include CACHE PATH "List of Crashpad include directories")
|
||||||
|
|
||||||
|
set(${EXTERNAL_NAME_UPPER}_LIBRARY_RELEASE ${LIB_RELEASE_PATH}/${LIB_PREFIX}crashpad_client.${LIB_EXT} CACHE FILEPATH "Path to Crashpad release library")
|
||||||
|
set(${EXTERNAL_NAME_UPPER}_BASE_LIBRARY_RELEASE ${LIB_RELEASE_PATH}/${LIB_PREFIX}base.${LIB_EXT} CACHE FILEPATH "Path to Crashpad base release library")
|
||||||
|
set(${EXTERNAL_NAME_UPPER}_UTIL_LIBRARY_RELEASE ${LIB_RELEASE_PATH}/${LIB_PREFIX}crashpad_util.${LIB_EXT} CACHE FILEPATH "Path to Crashpad util release library")
|
||||||
|
|
||||||
|
set(${EXTERNAL_NAME_UPPER}_LIBRARY_DEBUG ${LIB_RELEASE_PATH}/${LIB_PREFIX}crashpad_client.${LIB_EXT} CACHE FILEPATH "Path to Crashpad debug library")
|
||||||
|
set(${EXTERNAL_NAME_UPPER}_BASE_LIBRARY_DEBUG ${LIB_RELEASE_PATH}/${LIB_PREFIX}base.${LIB_EXT} CACHE FILEPATH "Path to Crashpad base debug library")
|
||||||
|
set(${EXTERNAL_NAME_UPPER}_UTIL_LIBRARY_DEBUG ${LIB_RELEASE_PATH}/${LIB_PREFIX}crashpad_util.${LIB_EXT} CACHE FILEPATH "Path to Crashpad util debug library")
|
||||||
|
|
||||||
|
set(CRASHPAD_HANDLER_EXE_PATH ${BIN_RELEASE_PATH}/crashpad_handler${BIN_EXT} CACHE FILEPATH "Path to the Crashpad handler binary")
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
# Hide this external target (for ide users)
|
# Hide this external target (for ide users)
|
||||||
|
|
|
@ -23,7 +23,7 @@ macro(add_crashpad)
|
||||||
set(CMAKE_BACKTRACE_TOKEN $ENV{CMAKE_BACKTRACE_TOKEN})
|
set(CMAKE_BACKTRACE_TOKEN $ENV{CMAKE_BACKTRACE_TOKEN})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (WIN32 AND USE_CRASHPAD)
|
if ((WIN32 OR APPLE) AND USE_CRASHPAD)
|
||||||
get_property(CRASHPAD_CHECKED GLOBAL PROPERTY CHECKED_FOR_CRASHPAD_ONCE)
|
get_property(CRASHPAD_CHECKED GLOBAL PROPERTY CHECKED_FOR_CRASHPAD_ONCE)
|
||||||
if (NOT CRASHPAD_CHECKED)
|
if (NOT CRASHPAD_CHECKED)
|
||||||
|
|
||||||
|
@ -42,6 +42,10 @@ macro(add_crashpad)
|
||||||
|
|
||||||
if (WIN32)
|
if (WIN32)
|
||||||
set_target_properties(${TARGET_NAME} PROPERTIES LINK_FLAGS "/ignore:4099")
|
set_target_properties(${TARGET_NAME} PROPERTIES LINK_FLAGS "/ignore:4099")
|
||||||
|
elseif (APPLE)
|
||||||
|
find_library(Security Security)
|
||||||
|
target_link_libraries(${TARGET_NAME} ${Security})
|
||||||
|
target_link_libraries(${TARGET_NAME} "-lbsm")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
add_custom_command(
|
add_custom_command(
|
||||||
|
|
|
@ -39,6 +39,12 @@ CrashpadClient* client { nullptr };
|
||||||
std::mutex annotationMutex;
|
std::mutex annotationMutex;
|
||||||
crashpad::SimpleStringDictionary* crashpadAnnotations { nullptr };
|
crashpad::SimpleStringDictionary* crashpadAnnotations { nullptr };
|
||||||
|
|
||||||
|
#if defined(Q_OS_WIN)
|
||||||
|
static const QString CRASHPAD_HANDLER_NAME { "crashpad_handler.exe" };
|
||||||
|
#else
|
||||||
|
static const QString CRASHPAD_HANDLER_NAME { "crashpad_handler" };
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef Q_OS_WIN
|
#ifdef Q_OS_WIN
|
||||||
#include <Windows.h>
|
#include <Windows.h>
|
||||||
|
|
||||||
|
@ -80,7 +86,6 @@ bool startCrashHandler(std::string appPath) {
|
||||||
QDir(crashpadDbDir).mkpath(crashpadDbName); // Make sure the directory exists
|
QDir(crashpadDbDir).mkpath(crashpadDbName); // Make sure the directory exists
|
||||||
const auto crashpadDbPath = crashpadDbDir.toStdString() + "/" + crashpadDbName;
|
const auto crashpadDbPath = crashpadDbDir.toStdString() + "/" + crashpadDbName;
|
||||||
|
|
||||||
static const QString CRASHPAD_HANDLER_NAME { "crashpad_handler" };
|
|
||||||
// Locate Crashpad handler
|
// Locate Crashpad handler
|
||||||
const QFileInfo interfaceBinary { QString::fromStdString(appPath) };
|
const QFileInfo interfaceBinary { QString::fromStdString(appPath) };
|
||||||
const QDir interfaceDir = interfaceBinary.dir();
|
const QDir interfaceDir = interfaceBinary.dir();
|
||||||
|
@ -105,7 +110,9 @@ bool startCrashHandler(std::string appPath) {
|
||||||
// Enable automated uploads.
|
// Enable automated uploads.
|
||||||
database->GetSettings()->SetUploadsEnabled(true);
|
database->GetSettings()->SetUploadsEnabled(true);
|
||||||
|
|
||||||
|
#ifdef Q_OS_WIN
|
||||||
AddVectoredExceptionHandler(0, vectoredExceptionHandler);
|
AddVectoredExceptionHandler(0, vectoredExceptionHandler);
|
||||||
|
#endif
|
||||||
|
|
||||||
return client->StartHandler(handler, db, db, BACKTRACE_URL, annotations, arguments, true, true);
|
return client->StartHandler(handler, db, db, BACKTRACE_URL, annotations, arguments, true, true);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue