File: FindCrashpadDebug.cmake

package info (click to toggle)
audacity 3.7.3%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 125,252 kB
  • sloc: cpp: 358,238; ansic: 75,458; lisp: 7,761; sh: 3,410; python: 1,503; xml: 1,385; perl: 854; makefile: 122
file content (91 lines) | stat: -rw-r--r-- 3,766 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
#[[
A module to look for crashpad
]]

if( NOT Crashpad_FOUND )
   if( NOT DEFINED ENV{Crashpad_ROOT} )
      message( STATUS "Crashpad not found. Please set checkout crashpad sources and make sure Crashpad_ROOT environment variable exists." )
      return()
   endif()

   set( CRASHPAD_OUT_DIR ${CMAKE_BINARY_DIR}/crashpad/Debug)
   set( CRASHPAD_BUILD_DIR ${CRASHPAD_OUT_DIR}/build)

   set(GN_COMMAND)
   set(GN_ARGS)
   if(CMAKE_SYSTEM_NAME MATCHES "Windows")
      set(GN_COMMAND cmd /C gn gen )
      set(GN_ARGS "--args=is_debug=true extra_cflags=\"/MDd\"")
   else()
      set(GN_COMMAND gn gen)
      set(GN_ARGS "--args=is_debug=true")
   endif()
   
   execute_process(
      COMMAND ${GN_COMMAND} ${CRASHPAD_BUILD_DIR} ${GN_ARGS}
      WORKING_DIRECTORY $ENV{Crashpad_ROOT}/crashpad
      COMMAND_ECHO STDOUT
      RESULT_VARIABLE CRASHPAD_GN_RESULT
   )
   if( CRASHPAD_GN_RESULT)
      message( FATAL_ERROR "Failed to configure crashpad" )
   endif()

   execute_process(
      COMMAND ninja -C ${CRASHPAD_BUILD_DIR}
      RESULT_VARIABLE CRASHPAD_NINJA_RESULT
   )
   if(CRASHPAD_NINJA_RESULT)
      message( FATAL_ERROR "Failed to build ${CONFIG} crashpad" )
   endif()

   add_library(crashpad::util STATIC IMPORTED GLOBAL)
   add_library(crashpad::context STATIC IMPORTED GLOBAL)
   add_library(crashpad::mini_chromium_base STATIC IMPORTED GLOBAL)
   add_library(crashpad::client_common STATIC IMPORTED GLOBAL)
   add_library(crashpad::snapshot STATIC IMPORTED GLOBAL)
   add_library(crashpad::minidump STATIC IMPORTED GLOBAL)
   add_library(crashpad::client STATIC IMPORTED GLOBAL)
   add_executable(crashpad::handler IMPORTED GLOBAL)

   file(
      COPY 
         $ENV{Crashpad_ROOT}/crashpad/client
         $ENV{Crashpad_ROOT}/crashpad/minidump
         $ENV{Crashpad_ROOT}/crashpad/third_party/mini_chromium/mini_chromium/base
         $ENV{Crashpad_ROOT}/crashpad/third_party/mini_chromium/mini_chromium/build
         $ENV{Crashpad_ROOT}/crashpad/util
         ${CRASHPAD_BUILD_DIR}/gen/build
      DESTINATION ${CRASHPAD_OUT_DIR}/headers
      FILES_MATCHING PATTERN "*.h"
   )

   set_target_properties(crashpad::util PROPERTIES
      IMPORTED_LOCATION ${CRASHPAD_BUILD_DIR}/obj/util/${CMAKE_STATIC_LIBRARY_PREFIX}util${CMAKE_STATIC_LIBRARY_SUFFIX}
   )
   set_target_properties(crashpad::context PROPERTIES
      IMPORTED_LOCATION ${CRASHPAD_BUILD_DIR}/obj/snapshot/${CMAKE_STATIC_LIBRARY_PREFIX}context${CMAKE_STATIC_LIBRARY_SUFFIX}
   )
   set_target_properties(crashpad::mini_chromium_base PROPERTIES
      IMPORTED_LOCATION ${CRASHPAD_BUILD_DIR}/obj/third_party/mini_chromium/mini_chromium/base/${CMAKE_STATIC_LIBRARY_PREFIX}base${CMAKE_STATIC_LIBRARY_SUFFIX}
   )
   set_target_properties(crashpad::client_common PROPERTIES
      IMPORTED_LOCATION ${CRASHPAD_BUILD_DIR}/obj/client/${CMAKE_STATIC_LIBRARY_PREFIX}common${CMAKE_STATIC_LIBRARY_SUFFIX}
   )
   set_target_properties(crashpad::snapshot PROPERTIES
      IMPORTED_LOCATION ${CRASHPAD_BUILD_DIR}/obj/snapshot/${CMAKE_STATIC_LIBRARY_PREFIX}snapshot${CMAKE_STATIC_LIBRARY_SUFFIX}
   )
   set_target_properties(crashpad::minidump PROPERTIES
      IMPORTED_LOCATION ${CRASHPAD_BUILD_DIR}/obj/minidump/${CMAKE_STATIC_LIBRARY_PREFIX}minidump${CMAKE_STATIC_LIBRARY_SUFFIX}
      INTERFACE_INCLUDE_DIRECTORIES ${CRASHPAD_OUT_DIR}/headers
   )
   set_target_properties(crashpad::client PROPERTIES
      IMPORTED_LOCATION ${CRASHPAD_BUILD_DIR}/obj/client/${CMAKE_STATIC_LIBRARY_PREFIX}client${CMAKE_STATIC_LIBRARY_SUFFIX}
      INTERFACE_INCLUDE_DIRECTORIES ${CRASHPAD_OUT_DIR}/headers
   )
   set_target_properties(crashpad::handler PROPERTIES
      IMPORTED_LOCATION ${CRASHPAD_BUILD_DIR}/crashpad_handler${CMAKE_EXECUTABLE_SUFFIX}
   )
   
   set(CrashpadDebug_FOUND TRUE)
endif()