blob: 7d952d486453612157dd3aa77ed03c8e255eeb2b (
plain)
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
|
include(Prebuilt)
include_guard()
option(USE_DISCORD "Enable Discord SDK" OFF)
if (${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRACKING_DIR}/discord_sdk_installed OR NOT ${discord_sdk_installed} EQUAL 0)
if (${LINUX_DISTRO} MATCHES gentoo)
set(PREFIX_PATH /var/cache/distfiles)
else ()
set(PREFIX_PATH $ENV{HOME}/Downloads)
endif ()
file(ARCHIVE_EXTRACT
INPUT ${PREFIX_PATH}/DiscordSocialSdk-1.10.19337.zip
DESTINATION ${CMAKE_BINARY_DIR}
)
file(MAKE_DIRECTORY ${LIBS_PREBUILT_DIR}/include/discord_sdk)
file(
COPY
${CMAKE_BINARY_DIR}/discord_social_sdk/include/cdiscord.h
${CMAKE_BINARY_DIR}/discord_social_sdk/include/discordpp.h
DESTINATION ${LIBS_PREBUILT_DIR}/include/discord_sdk
)
if ($ENV{MSYSTEM_CARCH} MATCHES aarch64)
set(DISCORD_PLATFORM /arm64)
endif ()
if (WINDOWS)
file(
COPY ${CMAKE_BINARY_DIR}/discord_social_sdk/bin/release${DISCORD_PLATFORM}/discord_partner_sdk.dll
DESTINATION ${LIBS_PREBUILT_DIR}/bin/release
)
set(LIBRARY_EXTENSION lib)
else ()
set(LIBRARY_PREFIX lib)
set(LIBRARY_EXTENSION so)
endif ()
if (DARWIN)
execute_process(
COMMAND lipo
libdiscord_partner_sdk.dylib
-thin ${CMAKE_OSX_ARCHITECTURES}
-output ${ARCH_PREBUILT_DIRS_RELEASE}/libdiscord_partner_sdk.dylib
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/discord_social_sdk/lib/release
)
else ()
file(
COPY ${CMAKE_BINARY_DIR}/discord_social_sdk/lib/release${DISCORD_PLATFORM}/${LIBRARY_PREFIX}discord_partner_sdk.${LIBRARY_EXTENSION}
DESTINATION ${ARCH_PREBUILT_DIRS_RELEASE}
)
if (CMAKE_BUILD_TYPE MATCHES Release AND LINUX)
execute_process(
COMMAND ${CMAKE_STRIP} libdiscord_partner_sdk.so
WORKING_DIRECTORY ${ARCH_PREBUILT_DIRS_RELEASE}
)
endif ()
endif ()
file(WRITE ${PREBUILD_TRACKING_DIR}/discord_sdk_installed "0")
endif ()
if(USE_DISCORD)
add_library(ll::discord_sdk INTERFACE IMPORTED)
target_compile_definitions(ll::discord_sdk INTERFACE LL_DISCORD=1)
#use_prebuilt_binary(discord_sdk)
find_library(DISCORD_SDK_LIBRARY
NAMES
discord_partner_sdk
discord_partner_sdk.lib
libdiscord_partner_sdk.so
libdiscord_partner_sdk.dylib
PATHS "${ARCH_PREBUILT_DIRS_ARCH_RELEASE}" "${ARCH_PREBUILT_DIRS_RELEASE}" REQUIRED NO_DEFAULT_PATH)
target_include_directories(ll::discord_sdk SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include/discord_sdk)
target_link_libraries(ll::discord_sdk INTERFACE ${DISCORD_SDK_LIBRARY})
endif()
|