Skip to content

Commit

Permalink
Merge pull request #11307 from hrydgard/discord-mac-linux
Browse files Browse the repository at this point in the history
Enable Discord integration for Mac and Linux.
  • Loading branch information
unknownbrackets authored Aug 27, 2018
2 parents 773dba1 + 529b8c6 commit 22a536f
Show file tree
Hide file tree
Showing 5 changed files with 48 additions and 4 deletions.
5 changes: 5 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -1758,6 +1758,11 @@ if(FFmpeg_FOUND)
)
endif()

# Discord integration
if(NOT IOS)
target_link_libraries(${CoreLibName} discord-rpc)
endif()

setup_target_project(${CoreLibName} Core)

# Generate git-version.cpp at build time.
Expand Down
4 changes: 2 additions & 2 deletions GPU/Common/ShaderTranslation.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -310,7 +310,7 @@ bool TranslateShader(std::string *dest, ShaderLanguage destLang, TranslatedShade
spirv_cross::CompilerGLSL::Options options;
options.version = 140;
options.es = true;
glsl.set_options(options);
glsl.set_common_options(options);

// Compile to GLSL, ready to give to GL driver.
*dest = glsl.compile();
Expand All @@ -324,7 +324,7 @@ bool TranslateShader(std::string *dest, ShaderLanguage destLang, TranslatedShade
// Set some options.
spirv_cross::CompilerGLSL::Options options;
options.version = gl_extensions.GLSLVersion();
glsl.set_options(options);
glsl.set_common_options(options);
// Compile to GLSL, ready to give to GL driver.
*dest = glsl.compile();
return true;
Expand Down
5 changes: 3 additions & 2 deletions UI/DiscordIntegration.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
#include "DiscordIntegration.h"
#include "i18n/i18n.h"

#ifdef _WIN32
#if (PPSSPP_PLATFORM(WINDOWS) || PPSSPP_PLATFORM(MAC) || PPSSPP_PLATFORM(LINUX)) && !PPSSPP_PLATFORM(ANDROID)

#define ENABLE_DISCORD

Expand All @@ -29,7 +29,7 @@ static const char *ppsspp_app_id = "423397985041383434";

// No context argument? What?
static void handleDiscordError(int errCode, const char *message) {
ERROR_LOG(SYSTEM, "Discord error code %d: '%s'", message);
ERROR_LOG(SYSTEM, "Discord error code %d: '%s'", errCode, message);
}

Discord::~Discord() {
Expand All @@ -48,6 +48,7 @@ void Discord::Init() {
DiscordEventHandlers eventHandlers{};
eventHandlers.errored = &handleDiscordError;
Discord_Initialize(ppsspp_app_id, &eventHandlers, 0, nullptr);
INFO_LOG(SYSTEM, "Discord connection initialized");
#endif

initialized_ = true;
Expand Down
3 changes: 3 additions & 0 deletions ext/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,6 @@ add_subdirectory(glslang)
add_subdirectory(snappy)
add_subdirectory(udis86)
add_subdirectory(SPIRV-Cross-build)
if(NOT IOS)
add_subdirectory(discord-rpc-build)
endif()
35 changes: 35 additions & 0 deletions ext/discord-rpc-build/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
cmake_minimum_required (VERSION 3.2.0)
project (DiscordRPC)

set(SRC_DIR ../discord-rpc/src)


# format
set(ALL_SOURCE_FILES
${SRC_DIR}/backoff.h
${SRC_DIR}/connection.h
${SRC_DIR}/msg_queue.h
${SRC_DIR}/rpc_connection.h
${SRC_DIR}/serialization.h
${SRC_DIR}/discord_rpc.cpp
${SRC_DIR}/rpc_connection.cpp
${SRC_DIR}/serialization.cpp
)

if(APPLE)
set(ALL_SOURCE_FILES ${ALL_SOURCE_FILES}
${SRC_DIR}/discord_register_osx.m
)
endif()

if(WIN32)
set(ALL_SOURCE_FILES ${ALL_SOURCE_FILES} ${SRC_DIR}/connection_win.cpp)
set(ALL_SOURCE_FILES ${ALL_SOURCE_FILES} ${SRC_DIR}/discord_register_win.cpp)
else()
set(ALL_SOURCE_FILES ${ALL_SOURCE_FILES} ${SRC_DIR}/connection_unix.cpp)
set(ALL_SOURCE_FILES ${ALL_SOURCE_FILES} ${SRC_DIR}/discord_register_linux.cpp)
endif()

add_library(discord-rpc STATIC ${ALL_SOURCE_FILES})

target_include_directories(discord-rpc PUBLIC ../discord-rpc/src ../discord-rpc/include ../rapidjson/include)

0 comments on commit 22a536f

Please sign in to comment.