early-access version 2853
This commit is contained in:
31
externals/vcpkg/ports/crashpad/crashpadConfig.cmake.in
vendored
Executable file
31
externals/vcpkg/ports/crashpad/crashpadConfig.cmake.in
vendored
Executable file
@@ -0,0 +1,31 @@
|
||||
# Compute the installation prefix relative to this file.
|
||||
get_filename_component(_IMPORT_PREFIX "${CMAKE_CURRENT_LIST_FILE}" PATH)
|
||||
get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH)
|
||||
get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH)
|
||||
if(_IMPORT_PREFIX STREQUAL "/")
|
||||
set(_IMPORT_PREFIX "")
|
||||
endif()
|
||||
|
||||
add_library(crashpad INTERFACE)
|
||||
add_library(crashpad::crashpad ALIAS crashpad)
|
||||
|
||||
set(CRASHPAD_LIBRARIES client util base)
|
||||
|
||||
if(WIN32)
|
||||
target_compile_definitions(crashpad INTERFACE NOMINMAX)
|
||||
elseif(APPLE)
|
||||
list(APPEND CRASHPAD_LIBRARIES ApplicationServices
|
||||
CoreFoundation Foundation IOKit Security bsm)
|
||||
endif()
|
||||
|
||||
foreach(LIB_NAME ${CRASHPAD_LIBRARIES})
|
||||
find_library(_LIB ${LIB_NAME})
|
||||
target_link_libraries(crashpad INTERFACE ${_LIB})
|
||||
unset(_LIB CACHE)
|
||||
endforeach()
|
||||
|
||||
find_package(ZLIB REQUIRED)
|
||||
target_link_libraries(crashpad INTERFACE ZLIB::ZLIB)
|
||||
|
||||
target_include_directories(crashpad
|
||||
INTERFACE ${_IMPORT_PREFIX}/include/crashpad)
|
||||
131
externals/vcpkg/ports/crashpad/portfile.cmake
vendored
Executable file
131
externals/vcpkg/ports/crashpad/portfile.cmake
vendored
Executable file
@@ -0,0 +1,131 @@
|
||||
vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
|
||||
|
||||
vcpkg_from_git(
|
||||
OUT_SOURCE_PATH SOURCE_PATH
|
||||
URL https://chromium.googlesource.com/crashpad/crashpad
|
||||
REF 68aba08c48bb428b7b159b3371163f86e8d5a126
|
||||
)
|
||||
|
||||
vcpkg_find_acquire_program(PYTHON3)
|
||||
vcpkg_replace_string("${SOURCE_PATH}/.gn" "script_executable = \"python3\"" "script_executable = \"${PYTHON3}\"")
|
||||
|
||||
function(checkout_in_path PATH URL REF)
|
||||
if(EXISTS "${PATH}")
|
||||
return()
|
||||
endif()
|
||||
|
||||
vcpkg_from_git(
|
||||
OUT_SOURCE_PATH DEP_SOURCE_PATH
|
||||
URL "${URL}"
|
||||
REF "${REF}"
|
||||
)
|
||||
file(RENAME "${DEP_SOURCE_PATH}" "${PATH}")
|
||||
file(REMOVE_RECURSE "${DEP_SOURCE_PATH}")
|
||||
endfunction()
|
||||
|
||||
# mini_chromium contains the toolchains and build configuration
|
||||
checkout_in_path(
|
||||
"${SOURCE_PATH}/third_party/mini_chromium/mini_chromium"
|
||||
"https://chromium.googlesource.com/chromium/mini_chromium"
|
||||
"5654edb4225bcad13901155c819febb5748e502b"
|
||||
)
|
||||
|
||||
function(replace_gn_dependency INPUT_FILE OUTPUT_FILE LIBRARY_NAMES)
|
||||
unset(_LIBRARY_DEB CACHE)
|
||||
find_library(_LIBRARY_DEB NAMES ${LIBRARY_NAMES}
|
||||
PATHS "${CURRENT_INSTALLED_DIR}/debug/lib"
|
||||
NO_DEFAULT_PATH)
|
||||
|
||||
if(_LIBRARY_DEB MATCHES "-NOTFOUND")
|
||||
message(FATAL_ERROR "Could not find debug library with names: ${LIBRARY_NAMES}")
|
||||
endif()
|
||||
|
||||
unset(_LIBRARY_REL CACHE)
|
||||
find_library(_LIBRARY_REL NAMES ${LIBRARY_NAMES}
|
||||
PATHS "${CURRENT_INSTALLED_DIR}/lib"
|
||||
NO_DEFAULT_PATH)
|
||||
|
||||
if(_LIBRARY_REL MATCHES "-NOTFOUND")
|
||||
message(FATAL_ERROR "Could not find library with names: ${LIBRARY_NAMES}")
|
||||
endif()
|
||||
|
||||
set(_INCLUDE_DIR "${CURRENT_INSTALLED_DIR}/include")
|
||||
|
||||
file(REMOVE "${OUTPUT_FILE}")
|
||||
configure_file("${INPUT_FILE}" "${OUTPUT_FILE}" @ONLY)
|
||||
endfunction()
|
||||
|
||||
replace_gn_dependency(
|
||||
"${CMAKE_CURRENT_LIST_DIR}/zlib.gn"
|
||||
"${SOURCE_PATH}/third_party/zlib/BUILD.gn"
|
||||
"z;zlib;zlibd"
|
||||
)
|
||||
|
||||
set(OPTIONS_DBG "is_debug=true")
|
||||
set(OPTIONS_REL "")
|
||||
|
||||
if(CMAKE_HOST_WIN32)
|
||||
# Load toolchains
|
||||
if(NOT VCPKG_CHAINLOAD_TOOLCHAIN_FILE)
|
||||
set(VCPKG_CHAINLOAD_TOOLCHAIN_FILE "${SCRIPTS}/toolchains/windows.cmake")
|
||||
endif()
|
||||
include("${VCPKG_CHAINLOAD_TOOLCHAIN_FILE}")
|
||||
|
||||
foreach(_VAR CMAKE_C_FLAGS CMAKE_C_FLAGS_DEBUG CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS
|
||||
CMAKE_C_FLAGS_RELEASE CMAKE_CXX_FLAGS_RELEASE)
|
||||
string(STRIP "${${_VAR}}" ${_VAR})
|
||||
endforeach()
|
||||
|
||||
set(OPTIONS_DBG "${OPTIONS_DBG} \
|
||||
extra_cflags_c=\"${CMAKE_C_FLAGS} ${CMAKE_C_FLAGS_DEBUG}\" \
|
||||
extra_cflags_cc=\"${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_DEBUG}\"")
|
||||
|
||||
set(OPTIONS_REL "${OPTIONS_REL} \
|
||||
extra_cflags_c=\"${CMAKE_C_FLAGS} ${CMAKE_C_FLAGS_RELEASE}\" \
|
||||
extra_cflags_cc=\"${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_RELEASE}\"")
|
||||
|
||||
set(DISABLE_WHOLE_PROGRAM_OPTIMIZATION "\
|
||||
extra_cflags=\"/GL-\" \
|
||||
extra_ldflags=\"/LTCG:OFF\" \
|
||||
extra_arflags=\"/LTCG:OFF\"")
|
||||
|
||||
set(OPTIONS_DBG "${OPTIONS_DBG} ${DISABLE_WHOLE_PROGRAM_OPTIMIZATION}")
|
||||
set(OPTIONS_REL "${OPTIONS_REL} ${DISABLE_WHOLE_PROGRAM_OPTIMIZATION}")
|
||||
endif()
|
||||
|
||||
vcpkg_configure_gn(
|
||||
SOURCE_PATH "${SOURCE_PATH}"
|
||||
OPTIONS_DEBUG "${OPTIONS_DBG}"
|
||||
OPTIONS_RELEASE "${OPTIONS_REL}"
|
||||
)
|
||||
|
||||
vcpkg_install_gn(
|
||||
SOURCE_PATH "${SOURCE_PATH}"
|
||||
TARGETS client util third_party/mini_chromium/mini_chromium/base handler:crashpad_handler
|
||||
)
|
||||
|
||||
message(STATUS "Installing headers...")
|
||||
set(PACKAGES_INCLUDE_DIR "${CURRENT_PACKAGES_DIR}/include/${PORT}")
|
||||
function(install_headers DIR)
|
||||
file(COPY "${DIR}" DESTINATION "${PACKAGES_INCLUDE_DIR}" FILES_MATCHING PATTERN "*.h")
|
||||
endfunction()
|
||||
install_headers("${SOURCE_PATH}/client")
|
||||
install_headers("${SOURCE_PATH}/util")
|
||||
install_headers("${SOURCE_PATH}/third_party/mini_chromium/mini_chromium/base")
|
||||
install_headers("${SOURCE_PATH}/third_party/mini_chromium/mini_chromium/build")
|
||||
|
||||
# remove empty directories
|
||||
file(REMOVE_RECURSE
|
||||
"${PACKAGES_INCLUDE_DIR}/util/net/testdata"
|
||||
"${PACKAGES_INCLUDE_DIR}/build/ios")
|
||||
|
||||
configure_file("${CMAKE_CURRENT_LIST_DIR}/crashpadConfig.cmake.in"
|
||||
"${CURRENT_PACKAGES_DIR}/share/${PORT}/crashpadConfig.cmake" @ONLY)
|
||||
|
||||
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/${PORT}/build/config")
|
||||
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/${PORT}/util/mach/__pycache__")
|
||||
|
||||
vcpkg_copy_pdbs()
|
||||
file(INSTALL "${SOURCE_PATH}/LICENSE"
|
||||
DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}"
|
||||
RENAME copyright)
|
||||
19
externals/vcpkg/ports/crashpad/vcpkg.json
vendored
Executable file
19
externals/vcpkg/ports/crashpad/vcpkg.json
vendored
Executable file
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"name": "crashpad",
|
||||
"version-date": "2022-04-16",
|
||||
"port-version": 1,
|
||||
"description": [
|
||||
"Crashpad is a crash-reporting system.",
|
||||
"Crashpad is a library for capturing, storing and transmitting postmortem crash reports from a client to an upstream collection server. Crashpad aims to make it possible for clients to capture process state at the time of crash with the best possible fidelity and coverage, with the minimum of fuss."
|
||||
],
|
||||
"homepage": "https://chromium.googlesource.com/crashpad/crashpad/+/master/README.md",
|
||||
"license": "Apache-2.0",
|
||||
"supports": "osx | windows",
|
||||
"dependencies": [
|
||||
{
|
||||
"name": "vcpkg-tool-gn",
|
||||
"host": true
|
||||
},
|
||||
"zlib"
|
||||
]
|
||||
}
|
||||
15
externals/vcpkg/ports/crashpad/zlib.gn
vendored
Executable file
15
externals/vcpkg/ports/crashpad/zlib.gn
vendored
Executable file
@@ -0,0 +1,15 @@
|
||||
import("../../build/crashpad_buildconfig.gni")
|
||||
|
||||
config("zlib_config") {
|
||||
defines = [ "CRASHPAD_ZLIB_SOURCE_EXTERNAL" ]
|
||||
include_dirs = [ "@_INCLUDE_DIR@" ]
|
||||
}
|
||||
|
||||
source_set("zlib") {
|
||||
public_configs = [ ":zlib_config" ]
|
||||
if(is_debug) {
|
||||
libs = [ "@_LIBRARY_DEB@" ]
|
||||
} else {
|
||||
libs = [ "@_LIBRARY_REL@" ]
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user