Skip to content

Commit

Permalink
feat: adding windows dependencies
Browse files Browse the repository at this point in the history
  • Loading branch information
eduardoc7 committed Nov 6, 2023
1 parent 6c4ea4b commit 0369339
Show file tree
Hide file tree
Showing 11 changed files with 122 additions and 5 deletions.
14 changes: 9 additions & 5 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,16 +10,20 @@ set(CMAKE_AUTORCC ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_CXX_STANDARD 17)

# Inclui as bibliotecas do Discord RPC
set(DISCORD_RPC_LIB "${CMAKE_CURRENT_SOURCE_DIR}/dependencies/discord-rpc/lib/libdiscord-rpc.so")
set(DISCORD_RPC_LIB_PATH "${CMAKE_SOURCE_DIR}/dependencies/discord-rpc/lib")
include_directories("${CMAKE_CURRENT_SOURCE_DIR}/dependencies/discord-rpc/include")
if(CMAKE_SYSTEM_NAME STREQUAL "Windows")
set(DISCORD_RPC_LIB "${CMAKE_CURRENT_SOURCE_DIR}/dependencies/win64-dynamic/lib/discord-rpc.lib")
set(DISCORD_RPC_LIB_PATH "${CMAKE_SOURCE_DIR}/dependencies/win64-dynamic/lib")
elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux")
set(DISCORD_RPC_LIB "${CMAKE_CURRENT_SOURCE_DIR}/dependencies/linux-dynamic/lib/libdiscord-rpc.so")
set(DISCORD_RPC_LIB_PATH "${CMAKE_SOURCE_DIR}/dependencies/linux-dynamic/lib")
endif()

include_directories("${CMAKE_CURRENT_SOURCE_DIR}/dependencies/linux-dynamic/include")

find_package(QtCreator REQUIRED COMPONENTS Core ProjectExplorer)
find_package(QT NAMES Qt6 REQUIRED COMPONENTS Core5Compat Widgets)
set(QtX Qt${QT_VERSION_MAJOR})

# nao sei dizer
# Add a CMake option that enables building your plugin with tests.
# You don't want your released plugin binaries to contain tests,
# so make that default to 'NO'.
Expand Down
Binary file removed dependencies/discord-rpc/lib/discord-rpc.lib
Binary file not shown.
Binary file removed dependencies/discord-rpc/lib/libdiscord-rpc.a
Binary file not shown.
Binary file added dependencies/win64-dynamic/bin/discord-rpc.dll
Binary file not shown.
Binary file not shown.
26 changes: 26 additions & 0 deletions dependencies/win64-dynamic/include/discord_register.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
#pragma once

#if defined(DISCORD_DYNAMIC_LIB)
#if defined(_WIN32)
#if defined(DISCORD_BUILDING_SDK)
#define DISCORD_EXPORT __declspec(dllexport)
#else
#define DISCORD_EXPORT __declspec(dllimport)
#endif
#else
#define DISCORD_EXPORT __attribute__((visibility("default")))
#endif
#else
#define DISCORD_EXPORT
#endif

#ifdef __cplusplus
extern "C" {
#endif

DISCORD_EXPORT void Discord_Register(const char* applicationId, const char* command);
DISCORD_EXPORT void Discord_RegisterSteamGame(const char* applicationId, const char* steamId);

#ifdef __cplusplus
}
#endif
87 changes: 87 additions & 0 deletions dependencies/win64-dynamic/include/discord_rpc.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
#pragma once
#include <stdint.h>

// clang-format off

#if defined(DISCORD_DYNAMIC_LIB)
# if defined(_WIN32)
# if defined(DISCORD_BUILDING_SDK)
# define DISCORD_EXPORT __declspec(dllexport)
# else
# define DISCORD_EXPORT __declspec(dllimport)
# endif
# else
# define DISCORD_EXPORT __attribute__((visibility("default")))
# endif
#else
# define DISCORD_EXPORT
#endif

// clang-format on

#ifdef __cplusplus
extern "C" {
#endif

typedef struct DiscordRichPresence {
const char* state; /* max 128 bytes */
const char* details; /* max 128 bytes */
int64_t startTimestamp;
int64_t endTimestamp;
const char* largeImageKey; /* max 32 bytes */
const char* largeImageText; /* max 128 bytes */
const char* smallImageKey; /* max 32 bytes */
const char* smallImageText; /* max 128 bytes */
const char* partyId; /* max 128 bytes */
int partySize;
int partyMax;
const char* matchSecret; /* max 128 bytes */
const char* joinSecret; /* max 128 bytes */
const char* spectateSecret; /* max 128 bytes */
int8_t instance;
} DiscordRichPresence;

typedef struct DiscordUser {
const char* userId;
const char* username;
const char* discriminator;
const char* avatar;
} DiscordUser;

typedef struct DiscordEventHandlers {
void (*ready)(const DiscordUser* request);
void (*disconnected)(int errorCode, const char* message);
void (*errored)(int errorCode, const char* message);
void (*joinGame)(const char* joinSecret);
void (*spectateGame)(const char* spectateSecret);
void (*joinRequest)(const DiscordUser* request);
} DiscordEventHandlers;

#define DISCORD_REPLY_NO 0
#define DISCORD_REPLY_YES 1
#define DISCORD_REPLY_IGNORE 2

DISCORD_EXPORT void Discord_Initialize(const char* applicationId,
DiscordEventHandlers* handlers,
int autoRegister,
const char* optionalSteamId);
DISCORD_EXPORT void Discord_Shutdown(void);

/* checks for incoming messages, dispatches callbacks */
DISCORD_EXPORT void Discord_RunCallbacks(void);

/* If you disable the lib starting its own io thread, you'll need to call this from your own */
#ifdef DISCORD_DISABLE_IO_THREAD
DISCORD_EXPORT void Discord_UpdateConnection(void);
#endif

DISCORD_EXPORT void Discord_UpdatePresence(const DiscordRichPresence* presence);
DISCORD_EXPORT void Discord_ClearPresence(void);

DISCORD_EXPORT void Discord_Respond(const char* userid, /* DISCORD_REPLY_ */ int reply);

DISCORD_EXPORT void Discord_UpdateHandlers(DiscordEventHandlers* handlers);

#ifdef __cplusplus
} /* extern "C" */
#endif
Binary file added dependencies/win64-dynamic/lib/discord-rpc.lib
Binary file not shown.

0 comments on commit 0369339

Please sign in to comment.