-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCMakeLists.txt
75 lines (62 loc) · 2.43 KB
/
CMakeLists.txt
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
cmake_minimum_required(VERSION 3.24)
project(sentrytry)
if(NOT EXISTS ${PROJECT_SOURCE_DIR}/lddpro-deps)
if(NOT EXISTS ${PROJECT_SOURCE_DIR}/package.zip)
# Download lddpro-deps
if(APPLE)
find_program(uname_program uname REQUIRED)
execute_process(COMMAND ${uname_program} -m
OUTPUT_VARIABLE uname_output
COMMAND_ERROR_IS_FATAL ANY)
string(STRIP "${uname_output}" uname_output)
if(uname_output STREQUAL "x86_64")
set(lddproDepsProfile macos-x86_64-appleclang14)
elseif(uname_output STREQUAL "arm64")
set(lddproDepsProfile macos-armv8-appleclang14)
else()
message(FATAL_ERROR "Unexpected architecture: ${uname_output}")
endif()
elseif(WIN32)
set(lddproDepsProfile windows-x86_64-vs17-mt)
else()
message(FATAL_ERROR "Platform not supported.")
endif()
set(lddproDepsTag 20230531)
set(url https://gitlab.legogroup.io/api/v4/projects/5072/packages/generic/${lddproDepsProfile}/${lddproDepsTag}/${lddproDepsProfile}-${lddproDepsTag}.zip)
message(STATUS "Downloading ${url}")
file(REMOVE_RECURSE ${PROJECT_SOURCE_DIR}/package)
file(DOWNLOAD
"${url}"
${PROJECT_SOURCE_DIR}/package.zip
USERPWD gitlab-read-token:QuNim5V_MzBesqvEBr2V
SHOW_PROGRESS
STATUS download_result
)
list(GET download_result 0 download_result_error_code)
if(NOT (download_result_error_code STREQUAL "0"))
list(JOIN download_result " - " download_result)
message(FATAL_ERROR "ERROR: " ${download_result})
endif()
endif()
file(ARCHIVE_EXTRACT INPUT ${PROJECT_SOURCE_DIR}/package.zip DESTINATION ${PROJECT_SOURCE_DIR})
file(REMOVE ${PROJECT_SOURCE_DIR}/package.zip)
file(RENAME ${PROJECT_SOURCE_DIR}/package ${PROJECT_SOURCE_DIR}/lddpro-deps)
endif()
list(APPEND CMAKE_PREFIX_PATH ${PROJECT_SOURCE_DIR}/lddpro-deps)
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_FIND_PACKAGE_PREFER_CONFIG 1)
find_package(Threads REQUIRED)
find_package(sentry REQUIRED)
if(XCODE)
set(CMAKE_XCODE_ATTRIBUTE_DEBUG_INFORMATION_FORMAT "dwarf-with-dsym")
endif()
add_executable(sentrytry main.cpp SentryClient.cpp SentryClient.h)
target_link_libraries(sentrytry PRIVATE sentry::sentry)
find_program(crashpad_handler_program crashpad_handler
PATHS ${CMAKE_PREFIX_PATH}/bin
REQUIRED)
set(sentry_database_parent_path ${PROJECT_SOURCE_DIR}/sentry_database)
add_compile_definitions(
CRASHPAD_HANDLER_PROGRAM=\"${crashpad_handler_program}\"
SENTRY_DATABASE_PARENT_PATH=\"${sentry_database_parent_path}\"
)