mirror of
https://github.com/rizinorg/cutter.git
synced 2024-12-23 13:25:27 +00:00
29cbd06ab2
* Enable running of macOS packaging in GHA, most of the work done in dedbabde56
* Cleanup breakpad handling
* Have single version of main executable in folder expected by macOS and most tools instead of executable+symlink+shell script
* Handle Breakpad library lookup in more CMake way using FindBreakpad just like it's done on other platforms and packages
* Refactor error handling in some of the shell scripts to use `set -e` instead of `|| exit 1` for each command.
* Fix DMG background setup
66 lines
2.1 KiB
CMake
66 lines
2.1 KiB
CMake
# - Find Breakpad
|
|
#
|
|
# Breakpad_FOUND - True if Breakpad has been found.
|
|
# Breakpad_INCLUDE_DIRS - Breakpad include directory
|
|
# Breakpad_LIBRARIES - List of libraries when using Breakpad.
|
|
|
|
set(Breakpad_LIBRARIES_VARS "")
|
|
if(WIN32)
|
|
find_path(Breakpad_INCLUDE_DIRS
|
|
client/windows/handler/exception_handler.h
|
|
HINTS
|
|
"${CMAKE_CURRENT_SOURCE_DIR}/Breakpad/src/src")
|
|
|
|
set(Breakpad_LIBRARY_NAMES
|
|
exception_handler
|
|
crash_generation_client
|
|
common
|
|
)
|
|
|
|
set(Breakpad_LIBRARIES "")
|
|
|
|
foreach(libname ${Breakpad_LIBRARY_NAMES})
|
|
find_library(Breakpad_LIBRARY_${libname}
|
|
${libname}
|
|
HINTS
|
|
"${CMAKE_CURRENT_SOURCE_DIR}/Breakpad/src/src/client/windows/Release/lib"
|
|
REQUIRED)
|
|
|
|
list(APPEND Breakpad_LIBRARIES ${Breakpad_LIBRARY_${libname}})
|
|
list(APPEND Breakpad_LIBRARIES_VARS "Breakpad_LIBRARY_${libname}")
|
|
endforeach()
|
|
|
|
set (Breakpad_LINK_LIBRARIES ${Breakpad_LIBRARIES})
|
|
|
|
set(Breakpad_LIBRARY_DIRS "")
|
|
elseif(APPLE)
|
|
find_library(Breakpad_LINK_LIBRARIES Breakpad REQUIRED)
|
|
set(Breakpad_LIBRARIES ${Breakpad_LINK_LIBRARIES})
|
|
# Assumes Breakpad is packed as Framework
|
|
set(Breakpad_INCLUDE_DIRS "${Breakpad_LINK_LIBRARIES}/Headers")
|
|
else()
|
|
set(Breakpad_CMAKE_PREFIX_PATH_TEMP ${CMAKE_PREFIX_PATH})
|
|
list(APPEND CMAKE_PREFIX_PATH "${CMAKE_CURRENT_SOURCE_DIR}/Breakpad/prefix")
|
|
|
|
find_package(PkgConfig REQUIRED)
|
|
pkg_search_module(Breakpad REQUIRED breakpad-client)
|
|
|
|
# reset CMAKE_PREFIX_PATH
|
|
set(CMAKE_PREFIX_PATH ${Breakpad_CMAKE_PREFIX_PATH_TEMP})
|
|
mark_as_advanced(Breakpad_CMAKE_PREFIX_PATH_TEMP)
|
|
endif()
|
|
|
|
# could be simplified in > cmake 3.11 using pkg_search_module IMPORTED_TARGET [GLOBAL] but this would still be required for windows
|
|
add_library(Breakpad::client INTERFACE IMPORTED)
|
|
set_target_properties(Breakpad::client PROPERTIES
|
|
INTERFACE_INCLUDE_DIRECTORIES "${Breakpad_INCLUDE_DIRS}")
|
|
set_target_properties(Breakpad::client PROPERTIES
|
|
INTERFACE_LINK_LIBRARIES "${Breakpad_LINK_LIBRARIES}")
|
|
|
|
|
|
include(FindPackageHandleStandardArgs)
|
|
find_package_handle_standard_args(Breakpad REQUIRED_VARS Breakpad_LIBRARIES Breakpad_INCLUDE_DIRS ${Breakpad_LIBRARIES_VARS})
|
|
|
|
mark_as_advanced(Breakpad_LIBRARIES_VARS)
|
|
|