From 8edabeddf8cc607ffe5e9c85f9f7375599944edc Mon Sep 17 00:00:00 2001 From: vaporvee Date: Wed, 19 Mar 2025 02:37:08 +0100 Subject: [PATCH] new setup script --- .gitignore | 4 +- setup.py | 77 +++++++++----------------- src/lib/discord_social_sdk/version.txt | 1 - 3 files changed, 29 insertions(+), 53 deletions(-) delete mode 100644 src/lib/discord_social_sdk/version.txt diff --git a/.gitignore b/.gitignore index 2103252..c47f4c2 100644 --- a/.gitignore +++ b/.gitignore @@ -23,7 +23,8 @@ build/ #Clean files from setup.py src/lib/discord_social_sdk/* -!src/lib/discord_social_sdk/version.txt +src/lib/godot-cpp/* +*.zip # release release/ @@ -32,3 +33,4 @@ project/export/ # venv venv/ + diff --git a/setup.py b/setup.py index e6c8185..8754043 100644 --- a/setup.py +++ b/setup.py @@ -1,61 +1,36 @@ import zipfile -from distutils.dir_util import copy_tree -import shutil import os -import sys +import re +import shutil -with zipfile.ZipFile("src/lib/discord_game_sdk.zip", "r") as zip_ref: - zip_ref.extractall("src/lib/discord_game_sdk/") +EXPECTED_VERSION = "1.0.7445" -# Patch the SDK to actually build, since it's missing an include -with open("src/lib/discord_game_sdk/cpp/types.h", "r+") as f: - s = f.read() - f.seek(0) - f.write("#include \n" + s) +# Extract the version from the zip filename +zip_path = "src/lib/DiscordSocialSdk-1.0.7445.zip" +match = re.search(r"DiscordSocialSdk-(\d+\.\d+\.\d+)\.zip", zip_path) +if match: + extracted_version = match.group(1) + if extracted_version != EXPECTED_VERSION: + print(f"Warning: Last tested version {EXPECTED_VERSION}, but found {extracted_version} in the zip file.") -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/discord_game_sdk_aarch64.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", -) +# Extract the zip file ignoring the version in the filename +with zipfile.ZipFile(zip_path, "r") as zip_ref: + zip_ref.extractall("src/lib/") -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/") +# Copy the release DLL to the lib directory +release_dll_src = "src/lib/discord_social_sdk/bin/release/discord_partner_sdk.dll" +release_dll_dest = "src/lib/discord_social_sdk/lib/release/" +os.makedirs(release_dll_dest, exist_ok=True) +shutil.copy(release_dll_src, release_dll_dest) -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") +# Copy the debug DLL to the lib/debug directory +debug_dll_src = "src/lib/discord_social_sdk/bin/debug/discord_partner_sdk.dll" +debug_dll_dest = "src/lib/discord_social_sdk/lib/debug/" +os.makedirs(debug_dll_dest, exist_ok=True) +shutil.copy(debug_dll_src, debug_dll_dest) -if sys.platform == "darwin": - # Combine the two libraries into one - os.system( - "lipo src/lib/discord_game_sdk/bin/{discord_game_sdk.dylib,discord_game_sdk_aarch64.dylib} -output src/lib/discord_game_sdk/bin/libdiscord_game_sdk.dylib -create" - ) - # Change the install name to (library's location)/(its new name) - os.system( - "install_name_tool -id '@loader_path/libdiscord_game_sdk.dylib'\ - src/lib/discord_game_sdk/bin/libdiscord_game_sdk.dylib" - ) - # Remove the ones it's made of - os.remove("src/lib/discord_game_sdk/bin/discord_game_sdk.dylib") - os.remove("src/lib/discord_game_sdk/bin/discord_game_sdk_aarch64.dylib") +# Delete the bin folder +bin_folder = "src/lib/discord_social_sdk/bin" +shutil.rmtree(bin_folder, ignore_errors=True) os.system("git submodule update --init --remote") diff --git a/src/lib/discord_social_sdk/version.txt b/src/lib/discord_social_sdk/version.txt deleted file mode 100644 index e2246db..0000000 --- a/src/lib/discord_social_sdk/version.txt +++ /dev/null @@ -1 +0,0 @@ -Latest tested version: 1.0.7445 \ No newline at end of file