diff --git a/.gitignore b/.gitignore index f7a298c..8294efe 100644 --- a/.gitignore +++ b/.gitignore @@ -16,5 +16,5 @@ build/ #Cleanup unused build files src/*obj src/discord-game-sdk-cpp/*obj -project/addons/discord-rpc-gd/bin/*exp -project/addons/discord-rpc-gd/bin/*lib \ No newline at end of file +project/addons/discord-rpc-gd/bin/windows/*exp +project/addons/discord-rpc-gd/bin/windows/*lib \ No newline at end of file diff --git a/SConstruct b/SConstruct index 9fce7f0..d2864eb 100644 --- a/SConstruct +++ b/SConstruct @@ -1,63 +1,40 @@ #!python import os -opts = Variables([], ARGUMENTS) - # Gets the standard flags CC, CCX, etc. env = SConscript("godot-cpp/SConstruct") -# Define our options -opts.Add(PathVariable('target_path', 'The path where the lib is installed.', 'project/addons/discord-rpc-gd/bin')) -opts.Add(PathVariable('target_name', 'The library name.', 'discord_game_sdk', PathVariable.PathAccept)) - -# Local dependency paths, adapt them to your setup -discord_lib_path = "lib/discord-game-sdk" - -# Updates the environment with the option variables. -opts.Update(env) - -# For the reference: -# - CCFLAGS are compilation flags shared between C and C++ -# - CFLAGS are for C-specific compilation flags -# - CXXFLAGS are for C++-specific compilation flags -# - CPPFLAGS are for pre-processor flags -# - CPPDEFINES are for pre-processor defines -# - LINKFLAGS are for linking flags - # Check our platform specifics if env['platform'] == "macos": - # Set the correct library discord_library = 'discord_game_sdk.dylib' + libexportfolder = "/macos/" elif env['platform'] in ('linuxbsd', 'linux'): - # Set correct library discord_library = 'discord_game_sdk.so' + libexportfolder = "/linux/" elif env['platform'] == "windows": - # This makes sure to keep the session environment variables on windows, - # that way you can run scons in a vs 2017 prompt and it will find all the required tools - # env.Append(ENV=os.environ) - # Set correct library discord_library = 'discord_game_sdk.dll' + libexportfolder = "/windows/" +if env['target'] == "template_debug": + debugsuffix = "_debug" +else: + debugsuffix = "" # make sure our binding library is properly includes -env.Append(LIBPATH=[discord_lib_path]) +env.Append(LIBPATH=["lib/discord-game-sdk/"]) sources = Glob('src/discord-game-sdk-cpp/*.cpp') env.Append(CPPPATH=['src/discord-game-sdk-cpp']) -env.Append(LIBS=[ - discord_library.replace(".dll", "") -]) +env.Append(LIBS=[discord_library.replace(".dll", "")]) # tweak this if you want to use different folders, or more folders, to store your source code in. env.Append(CPPPATH=['src/']) sources += Glob('src/*.cpp') -library = env.SharedLibrary(target="project/addons/discord-rpc-gd/bin/discordrpc" + env["suffix"] + env["SHLIBSUFFIX"], source=sources) -env.Depends(library, Command("project/addons/discord-rpc-gd/bin/" + discord_library, discord_lib_path + "/" + discord_library, Copy("$TARGET", "$SOURCE"))) +#The finished exports +library = env.SharedLibrary(target="project/addons/discord-rpc-gd/bin/" + libexportfolder + "discord_game_sdk_binding" + debugsuffix, source=sources) +env.Depends(library, Command("project/addons/discord-rpc-gd/bin/" + libexportfolder + discord_library, "lib/discord-game-sdk/" + discord_library, Copy("$TARGET", "$SOURCE"))) -Default(library) - -# Generates help for the -h scons option. -Help(opts.GenerateHelpText(env)) \ No newline at end of file +Default(library) \ No newline at end of file diff --git a/project/addons/discord-rpc-gd/bin/discord_game_sdk.dll b/project/addons/discord-rpc-gd/bin/windows/discord_game_sdk.dll similarity index 100% rename from project/addons/discord-rpc-gd/bin/discord_game_sdk.dll rename to project/addons/discord-rpc-gd/bin/windows/discord_game_sdk.dll diff --git a/project/addons/discord-rpc-gd/bin/windows/discord_game_sdk_binding.dll b/project/addons/discord-rpc-gd/bin/windows/discord_game_sdk_binding.dll new file mode 100644 index 0000000..1ac3946 Binary files /dev/null and b/project/addons/discord-rpc-gd/bin/windows/discord_game_sdk_binding.dll differ diff --git a/project/addons/discord-rpc-gd/bin/discordrpc.windows.template_debug.x86_64.dll b/project/addons/discord-rpc-gd/bin/windows/discord_game_sdk_binding_debug.dll similarity index 71% rename from project/addons/discord-rpc-gd/bin/discordrpc.windows.template_debug.x86_64.dll rename to project/addons/discord-rpc-gd/bin/windows/discord_game_sdk_binding_debug.dll index 87d364d..1c4dc15 100644 Binary files a/project/addons/discord-rpc-gd/bin/discordrpc.windows.template_debug.x86_64.dll and b/project/addons/discord-rpc-gd/bin/windows/discord_game_sdk_binding_debug.dll differ diff --git a/project/addons/discord-rpc-gd/discord-rpc-gd.gdextension b/project/addons/discord-rpc-gd/discord-rpc-gd.gdextension index 5647035..a7433a6 100644 --- a/project/addons/discord-rpc-gd/discord-rpc-gd.gdextension +++ b/project/addons/discord-rpc-gd/discord-rpc-gd.gdextension @@ -4,38 +4,26 @@ entry_symbol = "discordrpcgd_library_init" [libraries] -macos.debug = "bin/discordrpc.macos.template_debug.framework" -macos.release = "bin/discordrpc.macos.template_release.framework" -windows.debug.x86_32 = "bin/discordrpc.windows.template_debug.x86_32.dll" -windows.release.x86_32 = "bin/libgdexample.windows.template_release.x86_32.dll" -windows.debug.x86_64 = "bin/discordrpc.windows.template_debug.x86_64.dll" -windows.release.x86_64 = "bin/discordrpc.windows.template_release.x86_64.dll" -linux.debug.x86_64 = "bin/discordrpc.linux.template_debug.x86_64.so" -linux.release.x86_64 = "bin/discordrpc.linux.template_release.x86_64.so" -linux.debug.arm64 = "bin/discordrpc.linux.template_debug.arm64.so" -linux.release.arm64 = "bin/discordrpc.linux.template_release.arm64.so" -linux.debug.rv64 = "bin/discordrpc.linux.template_debug.rv64.so" -linux.release.rv64 = "bin/discordrpc.linux.template_release.rv64.so" -android.debug.x86_64 = "bin/discordrpc.android.template_debug.x86_64.so" -android.release.x86_64 = "bin/discordrpc.android.template_release.x86_64.so" -android.debug.arm64 = "bin/discordrpc.android.template_debug.arm64.so" -android.release.arm64 = "bin/discordrpc.android.template_release.arm64.so" +macos.debug = "bin/macos/discord_game_sdk_binding_debug.framework" +macos.release = "bin/macos/discord_game_sdk_binding.framework" +windows.debug.x86_64 = "bin/windows/discord_game_sdk_binding_debug.dll" +windows.release.x86_64 = "bin/windows/discord_game_sdk_binding.dll" +linux.debug.x86_64 = "bin/linux/discord_game_sdk_binding_debug.so" +linux.release.x86_64 = "bin/linux/discord_game_sdk_binding.so" +linux.debug.arm64 = "bin/linux/discord_game_sdk_binding_debug.so" +linux.release.arm64 = "bin/linux/discord_game_sdk_binding.so" +linux.debug.rv64 = "bin/linux/discord_game_sdk_binding_debug.so" +linux.release.rv64 = "bin/linux/discord_game_sdk_binding.so" [dependencies] -macos.debug = "bin/discord_game_sdk.framework" -macos.release = "bin/discord_game_sdk.framework" -windows.debug.x86_32 = "bin/discord_game_sdk.dll" -windows.release.x86_32 = "bin/discord_game_sdk.dll" -windows.debug.x86_64 = "bin/discord_game_sdk.dll" -windows.release.x86_64 = "bin/discord_game_sdk.dll" -linux.debug.x86_64 = "bin/ldiscord_game_sdk.so" -linux.release.x86_64 = "bin/discord_game_sdk.so" -linux.debug.arm64 = "bin/discord_game_sdk.so" -linux.release.arm64 = "bin/discord_game_sdk.so" -linux.debug.rv64 = "bin/discord_game_sdk.so" -linux.release.rv64 = "bin/discord_game_sdk.so" -android.debug.x86_64 = "bin/discord_game_sdk.so" -android.release.x86_64 = "bin/discord_game_sdk.so" -android.debug.arm64 = "bin/discord_game_sdk.so" -android.release.arm64 = "bin/discord_game_sdk.so" \ No newline at end of file +macos.debug = "bin/macos/discord_game_sdk.framework" +macos.release = "bin/macos/discord_game_sdk.framework" +windows.debug.x86_64 = "bin/windows/discord_game_sdk.dll" +windows.release.x86_64 = "bin/windows/discord_game_sdk.dll" +linux.debug.x86_64 = "bin/linux/discord_game_sdk.so" +linux.release.x86_64 = "bin/linux/discord_game_sdk.so" +linux.debug.arm64 = "bin/linux/discord_game_sdk.so" +linux.release.arm64 = "bin/linux/discord_game_sdk.so" +linux.debug.rv64 = "bin/linux/ldiscord_game_sdk.so" +linux.release.rv64 = "bin/linux/discord_game_sdk.so" \ No newline at end of file