diff --git a/CMakeLists.txt b/CMakeLists.txt index 807923eae205..ff09b4c9bd59 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -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. diff --git a/GPU/Common/ShaderTranslation.cpp b/GPU/Common/ShaderTranslation.cpp index b253a96f6b34..862ba286c64b 100644 --- a/GPU/Common/ShaderTranslation.cpp +++ b/GPU/Common/ShaderTranslation.cpp @@ -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(); @@ -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; diff --git a/UI/DiscordIntegration.cpp b/UI/DiscordIntegration.cpp index cc5b21b0cb78..54ee337e3fd5 100644 --- a/UI/DiscordIntegration.cpp +++ b/UI/DiscordIntegration.cpp @@ -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 @@ -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() { @@ -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; diff --git a/ext/CMakeLists.txt b/ext/CMakeLists.txt index f506eb6787b4..ade6594e8f97 100644 --- a/ext/CMakeLists.txt +++ b/ext/CMakeLists.txt @@ -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() diff --git a/ext/discord-rpc-build/CMakeLists.txt b/ext/discord-rpc-build/CMakeLists.txt new file mode 100644 index 000000000000..a63ec8eecf5c --- /dev/null +++ b/ext/discord-rpc-build/CMakeLists.txt @@ -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)