summaryrefslogtreecommitdiff
path: root/indra/cmake/Discord.cmake
blob: 1896c12853dbf24341e08f06bb51a29da74c98e6 (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
include(Prebuilt)

include_guard()

add_library(ll::discord_sdk INTERFACE IMPORTED)
target_compile_definitions(ll::discord_sdk INTERFACE LL_DISCORD=1)

#use_prebuilt_binary(discord_sdk)

if (${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRACKING_DIR}/discord_sdk_installed OR NOT ${discord_sdk_installed} EQUAL 0)
    file(ARCHIVE_EXTRACT
        INPUT $ENV{HOME}/Downloads/DiscordSocialSdk-1.4.9649.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 (WINDOWS)
        file(
            COPY ${CMAKE_BINARY_DIR}/discord_social_sdk/bin/release/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/${LIBRARY_PREFIX}discord_partner_sdk.${LIBRARY_EXTENSION}
            DESTINATION ${ARCH_PREBUILT_DIRS_RELEASE}
            )
    endif ()
    file(WRITE ${PREBUILD_TRACKING_DIR}/discord_sdk_installed "0")
endif ()

target_include_directories(ll::discord_sdk SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include/discord_sdk)
target_link_libraries(ll::discord_sdk INTERFACE discord_partner_sdk)