-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
112 lines (99 loc) · 3.95 KB
/
Copy pathCMakeLists.txt
File metadata and controls
112 lines (99 loc) · 3.95 KB
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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
project(UIKit)
add_definitions(
-DSK_TRIVIAL_ABI=[[clang::trivial_abi]]
)
add_subdirectory(UIKitCore)
add_subdirectory(NXKit)
# The checked-in Skia archives are built with is_debug=false. Skia's public
# inline ref-counting code changes with SK_DEBUG/SK_RELEASE, so every consumer
# of those headers must use the same mode or an app-defined SkRefCnt subclass
# can cross the static-library boundary with incompatible disposal semantics.
target_compile_definitions(XITRIXUIKit PUBLIC SK_RELEASE)
list(APPEND platform_libs yogacore tinyxml2)
target_include_directories(XITRIXUIKit PUBLIC ${EXTERN_PATH}/yoga)
target_include_directories(XITRIXUIKit PUBLIC ${EXTERN_PATH}/tinyxml2)
# APPLE
if (APPLE)
# MAC
if (PLATFORM_DESKTOP)
set(SKIA_MAC_OUT_DIR ${EXTERN_PATH}/skia/out/mac-arm64)
if (NOT EXISTS "${SKIA_MAC_OUT_DIR}/libskia.a")
message(FATAL_ERROR "Graphite/Metal Skia archive is missing: ${SKIA_MAC_OUT_DIR}/libskia.a")
endif ()
list(APPEND platform_libs
SDL3::SDL3
${SKIA_MAC_OUT_DIR}/libskia.a
${SKIA_MAC_OUT_DIR}/libskparagraph.a
${SKIA_MAC_OUT_DIR}/libskshaper.a
${SKIA_MAC_OUT_DIR}/libskunicode_core.a
${SKIA_MAC_OUT_DIR}/libskunicode_icu.a
${SKIA_MAC_OUT_DIR}/libicu.a
)
# IOS
elseif (PLATFORM_IOS)
set(SKIA_IOS_OUT_DIR ${EXTERN_PATH}/skia/out/ios-arm64)
if (NOT EXISTS "${SKIA_IOS_OUT_DIR}/libskia.a")
message(FATAL_ERROR "Graphite/Metal Skia archive is missing: ${SKIA_IOS_OUT_DIR}/libskia.a")
endif ()
list(APPEND platform_libs
SDL3::SDL3
${SKIA_IOS_OUT_DIR}/libskia.a
${SKIA_IOS_OUT_DIR}/libskparagraph.a
${SKIA_IOS_OUT_DIR}/libskshaper.a
${SKIA_IOS_OUT_DIR}/libskunicode_core.a
${SKIA_IOS_OUT_DIR}/libskunicode_icu.a
${SKIA_IOS_OUT_DIR}/libicu.a
)
endif ()
elseif (PLATFORM_SWITCH)
set(SKIA_SWITCH_OUT_DIR ${EXTERN_PATH}/skia/out/horizon)
if (NOT EXISTS "${SKIA_SWITCH_OUT_DIR}/libskia.a")
message(FATAL_ERROR "Graphite/Dawn Skia archive is missing: ${SKIA_SWITCH_OUT_DIR}/libskia.a")
endif ()
if (NOT EXISTS "${SKIA_SWITCH_OUT_DIR}/libdawn_combined.a")
message(FATAL_ERROR "Dawn archive is missing: ${SKIA_SWITCH_OUT_DIR}/libdawn_combined.a")
endif ()
list(APPEND platform_libs SDL3::SDL3)
target_include_directories(XITRIXUIKit PRIVATE
${EXTERN_PATH}/skia/third_party/externals/dawn
${EXTERN_PATH}/skia/third_party/externals/dawn/include
${SKIA_SWITCH_OUT_DIR}/gen/third_party/dawn/include
)
target_link_libraries(XITRIXUIKit PUBLIC
${SKIA_SWITCH_OUT_DIR}/libskia.a
${SKIA_SWITCH_OUT_DIR}/libskparagraph.a
${SKIA_SWITCH_OUT_DIR}/libskshaper.a
${SKIA_SWITCH_OUT_DIR}/libskunicode_core.a
${SKIA_SWITCH_OUT_DIR}/libskunicode_icu.a
${SKIA_SWITCH_OUT_DIR}/libicu.a
${SKIA_SWITCH_OUT_DIR}/libskcms.a
${SKIA_SWITCH_OUT_DIR}/libdawn_combined.a
freetype
harfbuzz
expat
jpeg
png
bz2
z
EGL
glapi
GLESv2
drm_nouveau
nx
)
endif ()
target_include_directories(XITRIXUIKit PUBLIC
${EXTERN_PATH}/skia
${EXTERN_PATH}/libromfs/lib/include
)
if (APPLE)
list(APPEND platform_libs
"-framework Foundation"
"-framework VideoToolbox"
"-framework AVKit"
"-framework Metal"
"-framework MetalKit"
"-framework QuartzCore"
"-framework CoreText")
endif ()
target_link_libraries(XITRIXUIKit PUBLIC fmt ${platform_libs})