diff --git a/.gitignore b/.gitignore index 5f9075a..608774c 100644 --- a/.gitignore +++ b/.gitignore @@ -19,6 +19,4 @@ build/ *.lib #Clean files from the Game SDK -src/discord-game-sdk-cpp/*.cpp -src/discord-game-sdk-cpp/*.h -src/discord-game-sdk-cpp/*.md \ No newline at end of file +src/lib/discord_game_sdk/ \ No newline at end of file diff --git a/.gitmodules b/.gitmodules index 8d21e28..e497b19 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,3 @@ -[submodule "lib/godot-cpp"] - path = lib/godot-cpp +[submodule "src/lib/godot-cpp"] + path = src/lib/godot-cpp url = https://github.com/godotengine/godot-cpp diff --git a/.vscode/c_cpp_properties.json b/.vscode/c_cpp_properties.json new file mode 100644 index 0000000..04cf75a --- /dev/null +++ b/.vscode/c_cpp_properties.json @@ -0,0 +1,21 @@ +{ + "configurations": [ + { + "name": "Win32", + "includePath": [ + "${default}" + ], + "defines": [ + "_DEBUG", + "UNICODE", + "_UNICODE" + ], + "windowsSdkVersion": "10.0.22621.0", + "compilerPath": "cl.exe", + "cStandard": "c17", + "cppStandard": "c++17", + "intelliSenseMode": "windows-msvc-x64" + } + ], + "version": 4 +} \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json index 47bac5b..53d6b52 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,10 +1,14 @@ { "C_Cpp.default.includePath": [ - "lib/godot-cpp/include", - "lib/godot-cpp/gen/include", - "lib/godot-cpp/gdextension" + "src/lib/godot-cpp/include", + "src/lib/godot-cpp/gen/include", + "src/lib/godot-cpp/gdextension" ], "files.associations": { "xlocbuf": "cpp" - } + }, + "[python]": { + "editor.defaultFormatter": "ms-python.black-formatter" + }, + "python.formatting.provider": "none" } \ No newline at end of file diff --git a/SConstruct b/SConstruct index 0b66e59..c9226ef 100644 --- a/SConstruct +++ b/SConstruct @@ -2,40 +2,62 @@ import os # Gets the standard flags CC, CCX, etc. -env = SConscript("lib/godot-cpp/SConstruct") +env = SConscript("src/lib/godot-cpp/SConstruct") # Check our platform specifics -if env['platform'] == "macos": - discord_library = 'libdiscord_game_sdk.dylib' +if env["platform"] == "macos": + discord_library = "libdiscord_game_sdk.dylib" + discord_library_second = "libdiscord_game_sdk_aarch64.dylib" libexportfolder = "/macos/" -elif env['platform'] in ('linuxbsd', 'linux'): - discord_library = 'libdiscord_game_sdk.so' +elif env["platform"] in ("linuxbsd", "linux"): + discord_library = "libdiscord_game_sdk.so" + discord_library_second = "" libexportfolder = "/linux/" -elif env['platform'] == "windows": - discord_library = 'discord_game_sdk.dll' +elif env["platform"] == "windows": + discord_library = "discord_game_sdk.dll" + discord_library_second = "discord_game_sdk_x86.dll" libexportfolder = "/windows/" -if env['target'] == "template_debug": +if env["target"] == "template_debug": debugsuffix = "_debug" else: debugsuffix = "" # make sure our binding library is properly includes -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(LIBPATH=["src/lib/discord_game_sdk/bin/"]) +sources = Glob("src/lib/discord_game_sdk/cpp/*.cpp") +env.Append(CPPPATH=["src/lib/discord_game_sdk/cpp/"]) env.Append(LIBS=["discord_game_sdk"]) # 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') +env.Append(CPPPATH=["src/"]) +sources += Glob("src/*.cpp") # The finished exports -library = env.SharedLibrary(target="project/addons/discord-sdk-gd/bin/" + - libexportfolder + "discord_game_sdk_binding" + debugsuffix, source=sources) -env.Depends(library, Command("project/addons/discord-sdk-gd/bin/" + libexportfolder + - discord_library, "lib/discord-game-sdk/" + discord_library, Copy("$TARGET", "$SOURCE"))) +library = env.SharedLibrary( + target="project/addons/discord-sdk-gd/bin/" + + libexportfolder + + "discord_game_sdk_binding" + + debugsuffix, + source=sources, +) +env.Depends( + library, + Command( + "project/addons/discord-sdk-gd/bin/" + libexportfolder + discord_library, + "src/lib/discord_game_sdk/bin/" + discord_library, + Copy("$TARGET", "$SOURCE"), + ), +) +env.Depends( + library, + Command( + "project/addons/discord-sdk-gd/bin/" + libexportfolder + discord_library_second, + "src/lib/discord_game_sdk/bin/" + discord_library_second, + Copy("$TARGET", "$SOURCE"), + ), +) Default(library) diff --git a/lib/discord-game-sdk/discord_game_sdk.bundle b/lib/discord-game-sdk/discord_game_sdk.bundle deleted file mode 100644 index 3402426..0000000 Binary files a/lib/discord-game-sdk/discord_game_sdk.bundle and /dev/null differ diff --git a/lib/discord-game-sdk/discord_game_sdk.dll b/lib/discord-game-sdk/discord_game_sdk.dll deleted file mode 100644 index be946ea..0000000 Binary files a/lib/discord-game-sdk/discord_game_sdk.dll and /dev/null differ diff --git a/lib/discord-game-sdk/discord_game_sdk.lib b/lib/discord-game-sdk/discord_game_sdk.lib deleted file mode 100644 index 562b01c..0000000 Binary files a/lib/discord-game-sdk/discord_game_sdk.lib and /dev/null differ diff --git a/lib/discord-game-sdk/libdiscord_game_sdk.dylib b/lib/discord-game-sdk/libdiscord_game_sdk.dylib deleted file mode 100644 index 3402426..0000000 Binary files a/lib/discord-game-sdk/libdiscord_game_sdk.dylib and /dev/null differ diff --git a/lib/discord-game-sdk/libdiscord_game_sdk.so b/lib/discord-game-sdk/libdiscord_game_sdk.so deleted file mode 100644 index 9dacf94..0000000 Binary files a/lib/discord-game-sdk/libdiscord_game_sdk.so and /dev/null differ diff --git a/lib/godot-cpp b/lib/godot-cpp deleted file mode 160000 index feaba55..0000000 --- a/lib/godot-cpp +++ /dev/null @@ -1 +0,0 @@ -Subproject commit feaba551b5a5b2d13ad1c3fdd8c90e67c67ff37c diff --git a/project/addons/discord-sdk-gd/bin/windows/discord_game_sdk_binding.dll b/project/addons/discord-sdk-gd/bin/windows/discord_game_sdk_binding.dll index a4af60f..e907059 100644 Binary files a/project/addons/discord-sdk-gd/bin/windows/discord_game_sdk_binding.dll and b/project/addons/discord-sdk-gd/bin/windows/discord_game_sdk_binding.dll differ diff --git a/project/addons/discord-sdk-gd/bin/windows/discord_game_sdk_binding_debug.dll b/project/addons/discord-sdk-gd/bin/windows/discord_game_sdk_binding_debug.dll index 885c535..64d0b23 100644 Binary files a/project/addons/discord-sdk-gd/bin/windows/discord_game_sdk_binding_debug.dll and b/project/addons/discord-sdk-gd/bin/windows/discord_game_sdk_binding_debug.dll differ diff --git a/project/addons/discord-sdk-gd/bin/windows/discord_game_sdk_x86.dll b/project/addons/discord-sdk-gd/bin/windows/discord_game_sdk_x86.dll new file mode 100644 index 0000000..45b9bb1 Binary files /dev/null and b/project/addons/discord-sdk-gd/bin/windows/discord_game_sdk_x86.dll differ diff --git a/project/addons/discord-sdk-gd/export.gd b/project/addons/discord-sdk-gd/export.gd index 7e83dae..2c6e265 100644 --- a/project/addons/discord-sdk-gd/export.gd +++ b/project/addons/discord-sdk-gd/export.gd @@ -3,8 +3,12 @@ extends EditorExportPlugin func _export_file(path, type, features): if features[2] == "windows": - add_shared_object("res://addons/discord-sdk-gd/bin/windows/discord_game_sdk.dll",[],"/") + if features[4] == "x86_64": + add_shared_object("res://addons/discord-sdk-gd/bin/windows/discord_game_sdk.dll",[],"/") + elif features[4] == "x86": + add_shared_object("res://addons/discord-sdk-gd/bin/windows/discord_game_sdk_x86.dll",[],"/") elif features[2] == "linux": add_shared_object("res://addons/discord-sdk-gd/bin/linux/libdiscord_game_sdk.so",[],"/") elif features[2] == "macos": add_shared_object("res://addons/discord-sdk-gd/bin/macos/libdiscord_game_sdk.dylib",[],"/") + add_shared_object("res://addons/discord-sdk-gd/bin/macos/libdiscord_game_sdk_aarch64.dylib",[],"/") diff --git a/setup.py b/setup.py index 45c5692..b34f8e8 100644 --- a/setup.py +++ b/setup.py @@ -3,15 +3,42 @@ from distutils.dir_util import copy_tree import shutil import os -with zipfile.ZipFile("src/discord-game-sdk-cpp/discord_game_sdk.zip", "r") as zip_ref: - zip_ref.extractall("src/discord-game-sdk-cpp") +with zipfile.ZipFile("src/lib/discord_game_sdk.zip", "r") as zip_ref: + zip_ref.extractall("src/lib/discord_game_sdk/") -copy_tree("src/discord-game-sdk-cpp/cpp", "src/discord-game-sdk-cpp/") +copy_tree("src/lib/discord_game_sdk/lib/", "src/lib/discord_game_sdk/bin/") +os.rename( + "src/lib/discord_game_sdk/bin/aarch64/discord_game_sdk.dylib", + "src/lib/discord_game_sdk/bin/aarch64/libdiscord_game_sdk_aarch64.dylib", +) +os.rename( + "src/lib/discord_game_sdk/bin/x86_64/discord_game_sdk.dylib", + "src/lib/discord_game_sdk/bin/x86_64/libdiscord_game_sdk.dylib", +) +os.rename( + "src/lib/discord_game_sdk/bin/x86_64/discord_game_sdk.so", + "src/lib/discord_game_sdk/bin/x86_64/libdiscord_game_sdk.so", +) +os.rename( + "src/lib/discord_game_sdk/bin/x86/discord_game_sdk.dll", + "src/lib/discord_game_sdk/bin/x86/discord_game_sdk_x86.dll", +) -shutil.rmtree("src/discord-game-sdk-cpp/c/", ignore_errors=True) -shutil.rmtree("src/discord-game-sdk-cpp/cpp/", ignore_errors=True) -shutil.rmtree("src/discord-game-sdk-cpp/csharp/", ignore_errors=True) -shutil.rmtree("src/discord-game-sdk-cpp/examples/", ignore_errors=True) -shutil.rmtree("src/discord-game-sdk-cpp/lib/", ignore_errors=True) +os.rename( + "src/lib/discord_game_sdk/bin/x86_64/discord_game_sdk.dll.lib", + "src/lib/discord_game_sdk/bin/x86_64/discord_game_sdk.lib", +) +copy_tree("src/lib/discord_game_sdk/bin/aarch64/", "src/lib/discord_game_sdk/bin/") +copy_tree("src/lib/discord_game_sdk/bin/x86/", "src/lib/discord_game_sdk/bin/") +copy_tree("src/lib/discord_game_sdk/bin/x86_64/", "src/lib/discord_game_sdk/bin/") + +shutil.rmtree("src/lib/discord_game_sdk/c/", ignore_errors=True) +shutil.rmtree("src/lib/discord_game_sdk/csharp/", ignore_errors=True) +shutil.rmtree("src/lib/discord_game_sdk/examples/", ignore_errors=True) +shutil.rmtree("src/lib/discord_game_sdk/lib/", ignore_errors=True) +shutil.rmtree("src/lib/discord_game_sdk/bin/aarch64/", ignore_errors=True) +shutil.rmtree("src/lib/discord_game_sdk/bin/x86/", ignore_errors=True) +shutil.rmtree("src/lib/discord_game_sdk/bin/x86_64/", ignore_errors=True) +os.remove("src/lib/discord_game_sdk/README.md") os.system("git submodule update --init") diff --git a/src/discordgodot.cpp b/src/discordgodot.cpp index 057c835..bb26904 100644 --- a/src/discordgodot.cpp +++ b/src/discordgodot.cpp @@ -1,5 +1,5 @@ #include "discordgodot.h" -#include "./discord-game-sdk-cpp/discord.h" +#include "lib/discord_game_sdk/cpp/discord.h" #include #include #include diff --git a/src/discordgodot.h b/src/discordgodot.h index fd8557b..6ad12c1 100644 --- a/src/discordgodot.h +++ b/src/discordgodot.h @@ -2,7 +2,7 @@ #define DISCORDGODOT_H #include -#include "discord-game-sdk-cpp/discord.h" +#include "lib/discord_game_sdk/cpp/discord.h" #include #include diff --git a/src/discord-game-sdk-cpp/discord_game_sdk.zip b/src/lib/discord_game_sdk.zip similarity index 55% rename from src/discord-game-sdk-cpp/discord_game_sdk.zip rename to src/lib/discord_game_sdk.zip index 9a996b5..10b8a51 100644 Binary files a/src/discord-game-sdk-cpp/discord_game_sdk.zip and b/src/lib/discord_game_sdk.zip differ diff --git a/godot-cpp b/src/lib/godot-cpp similarity index 100% rename from godot-cpp rename to src/lib/godot-cpp