new setup script
This commit is contained in:
4
.gitignore
vendored
4
.gitignore
vendored
@@ -23,7 +23,8 @@ build/
|
|||||||
|
|
||||||
#Clean files from setup.py
|
#Clean files from setup.py
|
||||||
src/lib/discord_social_sdk/*
|
src/lib/discord_social_sdk/*
|
||||||
!src/lib/discord_social_sdk/version.txt
|
src/lib/godot-cpp/*
|
||||||
|
*.zip
|
||||||
|
|
||||||
# release
|
# release
|
||||||
release/
|
release/
|
||||||
@@ -32,3 +33,4 @@ project/export/
|
|||||||
# venv
|
# venv
|
||||||
venv/
|
venv/
|
||||||
|
|
||||||
|
|
||||||
|
77
setup.py
77
setup.py
@@ -1,61 +1,36 @@
|
|||||||
import zipfile
|
import zipfile
|
||||||
from distutils.dir_util import copy_tree
|
|
||||||
import shutil
|
|
||||||
import os
|
import os
|
||||||
import sys
|
import re
|
||||||
|
import shutil
|
||||||
|
|
||||||
with zipfile.ZipFile("src/lib/discord_game_sdk.zip", "r") as zip_ref:
|
EXPECTED_VERSION = "1.0.7445"
|
||||||
zip_ref.extractall("src/lib/discord_game_sdk/")
|
|
||||||
|
|
||||||
# Patch the SDK to actually build, since it's missing an include
|
# Extract the version from the zip filename
|
||||||
with open("src/lib/discord_game_sdk/cpp/types.h", "r+") as f:
|
zip_path = "src/lib/DiscordSocialSdk-1.0.7445.zip"
|
||||||
s = f.read()
|
match = re.search(r"DiscordSocialSdk-(\d+\.\d+\.\d+)\.zip", zip_path)
|
||||||
f.seek(0)
|
if match:
|
||||||
f.write("#include <cstdint>\n" + s)
|
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/")
|
# Extract the zip file ignoring the version in the filename
|
||||||
os.rename(
|
with zipfile.ZipFile(zip_path, "r") as zip_ref:
|
||||||
"src/lib/discord_game_sdk/bin/aarch64/discord_game_sdk.dylib",
|
zip_ref.extractall("src/lib/")
|
||||||
"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",
|
|
||||||
)
|
|
||||||
|
|
||||||
os.rename(
|
# Copy the release DLL to the lib directory
|
||||||
"src/lib/discord_game_sdk/bin/x86_64/discord_game_sdk.dll.lib",
|
release_dll_src = "src/lib/discord_social_sdk/bin/release/discord_partner_sdk.dll"
|
||||||
"src/lib/discord_game_sdk/bin/x86_64/discord_game_sdk.lib",
|
release_dll_dest = "src/lib/discord_social_sdk/lib/release/"
|
||||||
)
|
os.makedirs(release_dll_dest, exist_ok=True)
|
||||||
copy_tree("src/lib/discord_game_sdk/bin/aarch64/", "src/lib/discord_game_sdk/bin/")
|
shutil.copy(release_dll_src, release_dll_dest)
|
||||||
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)
|
# Copy the debug DLL to the lib/debug directory
|
||||||
shutil.rmtree("src/lib/discord_game_sdk/csharp/", ignore_errors=True)
|
debug_dll_src = "src/lib/discord_social_sdk/bin/debug/discord_partner_sdk.dll"
|
||||||
shutil.rmtree("src/lib/discord_game_sdk/examples/", ignore_errors=True)
|
debug_dll_dest = "src/lib/discord_social_sdk/lib/debug/"
|
||||||
shutil.rmtree("src/lib/discord_game_sdk/lib/", ignore_errors=True)
|
os.makedirs(debug_dll_dest, exist_ok=True)
|
||||||
shutil.rmtree("src/lib/discord_game_sdk/bin/aarch64/", ignore_errors=True)
|
shutil.copy(debug_dll_src, debug_dll_dest)
|
||||||
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")
|
|
||||||
|
|
||||||
if sys.platform == "darwin":
|
# Delete the bin folder
|
||||||
# Combine the two libraries into one
|
bin_folder = "src/lib/discord_social_sdk/bin"
|
||||||
os.system(
|
shutil.rmtree(bin_folder, ignore_errors=True)
|
||||||
"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")
|
|
||||||
|
|
||||||
os.system("git submodule update --init --remote")
|
os.system("git submodule update --init --remote")
|
||||||
|
@@ -1 +0,0 @@
|
|||||||
Latest tested version: 1.0.7445
|
|
Reference in New Issue
Block a user