From f09639c7078ca959869780121f5cbb235e2791a6 Mon Sep 17 00:00:00 2001 From: Gabriel Bustillo del Cuvillo Date: Mon, 29 May 2023 10:48:40 +0200 Subject: [PATCH] [utils/features] Let's clean this mess!, General Refactoring to setup.py files --- .gitignore | 11 ++++++ commons.py | 77 ++++++++++++++++++++++++++++++++++++++ fmod/setup.py | 67 +++++++++------------------------ unity/setup.py | 70 +++++++++-------------------------- unreal/setup.py | 98 +++++++++++++++++-------------------------------- version.py | 1 + 6 files changed, 156 insertions(+), 168 deletions(-) create mode 100644 .gitignore create mode 100644 commons.py create mode 100644 version.py diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..63bfaf39 --- /dev/null +++ b/.gitignore @@ -0,0 +1,11 @@ +## Avoid Unreal TempFiles +**/Intermediate +**/Binaries + +## Avoid Binaries +**/phonon.bundle +*.zip +*.lib +*.so +*.dll +*.pyc \ No newline at end of file diff --git a/commons.py b/commons.py new file mode 100644 index 00000000..b264a115 --- /dev/null +++ b/commons.py @@ -0,0 +1,77 @@ +# +# Copyright (c) Valve Corporation. All rights reserved. +# + +import os +import shutil +import urllib.request, urllib.error, urllib.parse +import zipfile +import argparse + +import version as SteamAudioVersion + +DownloadPath = "../" + +MainLibsToCopy = { + "Win32" : "lib/windows-x86/phonon.dll", + "Win64" : "lib/windows-x64/phonon.dll", + "Linux32" : "lib/linux-x86/libphonon.so", + "Linux64" : "lib/linux-x64/libphonon.so", + "macOS" : "lib/osx/phonon.bundle", + "AndroidArmv7" : "lib/android-armv7/libphonon.so", + "AndroidArm64" : "lib/android-armv8/libphonon.so", + "Androidx86" : "lib/android-x86/libphonon.so" + }; + +def getDefaultParser(name,description): + parser = argparse.ArgumentParser(prog=name,description=description) + parser.add_argument('-f', '--force', action='store_true') + return parser + +def download_file(url): + remote_file = urllib.request.urlopen(url) + with open(DownloadPath + os.path.basename(url), "wb") as local_file: + while True: + data = remote_file.read(1024) + if not data: + break + local_file.write(data) + +def download_steamaudioblobs(force): + url = "https://github.com/ValveSoftware/steam-audio/releases/download/v" + SteamAudioVersion.version + "/steamaudio_" + SteamAudioVersion.version + ".zip" + + if force: + os.remove("./steamaudio_" + SteamAudioVersion.version + ".zip") + + if not os.path.exists(DownloadPath + "steamaudio_" + SteamAudioVersion.version + ".zip"): + print("Downloading steamaudio_" + SteamAudioVersion.version + ".zip...") + download_file(url) + else: + print("steamaudio_" + SteamAudioVersion.version + ".zip, It's already downloaded, skipping... (For avoid this behaviour use -f or --force)") + + print("Extracting steamaudio_" + SteamAudioVersion.version + ".zip...") + with zipfile.ZipFile( DownloadPath + os.path.basename(url), "r") as zip: + zip.extractall() + + return os.path.realpath("./steamaudio") + "/" + +def CopyFiles(rootpath, TargetDirectories, isFMod = 0): + print("Creating directories...") + for i in TargetDirectories.values(): + if not os.path.exists(i): + os.makedirs(i) + + print("Copying files...") + for key, value in MainLibsToCopy.items(): + if key != "macOS": + shutil.copy(rootpath + value, TargetDirectories[key]) + + try: + shutil.rmtree(TargetDirectories["macOS"]+"/phonon.bundle") + except: + pass + shutil.copytree(rootpath + MainLibsToCopy["macOS"], TargetDirectories["macOS"]+"/phonon.bundle") + + if not isFMod: + shutil.copy(rootpath + "lib/windows-x64/TrueAudioNext.dll", TargetDirectories["Win64"]) + shutil.copy(rootpath + "lib/windows-x64/GPUUtilities.dll", TargetDirectories["Win64"]) diff --git a/fmod/setup.py b/fmod/setup.py index 56161f26..a8f9ad53 100644 --- a/fmod/setup.py +++ b/fmod/setup.py @@ -1,62 +1,29 @@ # # Copyright (c) Valve Corporation. All rights reserved. # - import os +import sys import shutil -import urllib.request, urllib.error, urllib.parse -import zipfile - -version = "4.2.0" +sys.path.insert(1, "../") -def download_file(url): - remote_file = urllib.request.urlopen(url) - with open(os.path.basename(url), "wb") as local_file: - while True: - data = remote_file.read(1024) - if not data: - break - local_file.write(data) +import commons -print("Downloading steamaudio_" + version + ".zip...") -url = "https://github.com/ValveSoftware/steam-audio/releases/download/v" + version + "/steamaudio_" + version + ".zip" -download_file(url) +TargetDirectories = { + "Win32" : "lib/windows-x86", + "Win64" : "lib/windows-x64", + "Linux32" : "lib/linux-x86", + "Linux64" : "lib/linux-x64", + "macOS" : "lib/osx", + "AndroidArmv7" : "lib/android-armv7", + "AndroidArm64" : "lib/android-armv8", + "Androidx86" : "lib/android-x86" + }; -print("Extracting steamaudio_" + version + ".zip...") -with zipfile.ZipFile(os.path.basename(url), "r") as zip: - zip.extractall() +argParsed = commons.getDefaultParser("FMOD","").parse_args() -print("Creating directories...") -if not os.path.exists("lib/windows-x86"): - os.makedirs("lib/windows-x86") -if not os.path.exists("lib/windows-x64"): - os.makedirs("lib/windows-x64") -if not os.path.exists("lib/linux-x86"): - os.makedirs("lib/linux-x86") -if not os.path.exists("lib/linux-x64"): - os.makedirs("lib/linux-x64") -if not os.path.exists("lib/osx"): - os.makedirs("lib/osx") -if not os.path.exists("lib/android-armv7"): - os.makedirs("lib/android-armv7") -if not os.path.exists("lib/android-armv8"): - os.makedirs("lib/android-armv8") -if not os.path.exists("lib/android-x86"): - os.makedirs("lib/android-x86") +rootPath = commons.download_steamaudioblobs(argParsed.force) -print("Copying files...") -shutil.copy("steamaudio/lib/windows-x86/phonon.dll", "lib/windows-x86") -shutil.copy("steamaudio/lib/windows-x64/phonon.dll", "lib/windows-x64") -shutil.copy("steamaudio/lib/linux-x86/libphonon.so", "lib/linux-x86") -shutil.copy("steamaudio/lib/linux-x64/libphonon.so", "lib/linux-x64") -try: - shutil.rmtree("lib/osx/phonon.bundle") -except: - pass -shutil.copytree("steamaudio/lib/osx/phonon.bundle", "lib/osx/phonon.bundle") -shutil.copy("steamaudio/lib/android-armv7/libphonon.so", "lib/android-armv7") -shutil.copy("steamaudio/lib/android-armv8/libphonon.so", "lib/android-armv8") -shutil.copy("steamaudio/lib/android-x86/libphonon.so", "lib/android-x86") +commons.CopyFiles(rootPath, TargetDirectories) print("Cleaning up...") -shutil.rmtree("steamaudio") \ No newline at end of file +shutil.rmtree(rootPath) \ No newline at end of file diff --git a/unity/setup.py b/unity/setup.py index bc7c8913..d03cd37a 100644 --- a/unity/setup.py +++ b/unity/setup.py @@ -2,64 +2,28 @@ # Copyright (c) Valve Corporation. All rights reserved. # -import os +import sys import shutil -import urllib.request, urllib.error, urllib.parse -import zipfile +sys.path.insert(1, "../") -version = "4.2.0" +import commons -def download_file(url): - remote_file = urllib.request.urlopen(url) - with open(os.path.basename(url), "wb") as local_file: - while True: - data = remote_file.read(1024) - if not data: - break - local_file.write(data) +TargetDirectories = { + "Win32" : "src/project/SteamAudioUnity/Assets/Plugins/SteamAudio/Binaries/Windows/x86", + "Win64" : "src/project/SteamAudioUnity/Assets/Plugins/SteamAudio/Binaries/Windows/x86_64", + "Linux32" : "src/project/SteamAudioUnity/Assets/Plugins/SteamAudio/Binaries/Linux/x86", + "Linux64" : "src/project/SteamAudioUnity/Assets/Plugins/SteamAudio/Binaries/Linux/x86_64", + "macOS" : "src/project/SteamAudioUnity/Assets/Plugins/SteamAudio/Binaries/macOS", + "AndroidArmv7" : "src/project/SteamAudioUnity/Assets/Plugins/SteamAudio/Binaries/Android/armv7", + "AndroidArm64" : "src/project/SteamAudioUnity/Assets/Plugins/SteamAudio/Binaries/Android/arm64", + "Androidx86" : "src/project/SteamAudioUnity/Assets/Plugins/SteamAudio/Binaries/Android/x86" + }; -print("Downloading steamaudio_" + version + ".zip...") -url = "https://github.com/ValveSoftware/steam-audio/releases/download/v" + version + "/steamaudio_" + version + ".zip" -download_file(url) +argParsed = commons.getDefaultParser("Unity", "").parse_args() -print("Extracting steamaudio_" + version + ".zip...") -with zipfile.ZipFile(os.path.basename(url), "r") as zip: - zip.extractall() +rootPath = commons.download_steamaudioblobs(argParsed.force) -print("Creating directories...") -if not os.path.exists("src/project/SteamAudioUnity/Assets/Plugins/SteamAudio/Binaries/Windows/x86"): - os.makedirs("src/project/SteamAudioUnity/Assets/Plugins/SteamAudio/Binaries/Windows/x86") -if not os.path.exists("src/project/SteamAudioUnity/Assets/Plugins/SteamAudio/Binaries/Windows/x86_64"): - os.makedirs("src/project/SteamAudioUnity/Assets/Plugins/SteamAudio/Binaries/Windows/x86_64") -if not os.path.exists("src/project/SteamAudioUnity/Assets/Plugins/SteamAudio/Binaries/Linux/x86"): - os.makedirs("src/project/SteamAudioUnity/Assets/Plugins/SteamAudio/Binaries/Linux/x86") -if not os.path.exists("src/project/SteamAudioUnity/Assets/Plugins/SteamAudio/Binaries/Linux/x86_64"): - os.makedirs("src/project/SteamAudioUnity/Assets/Plugins/SteamAudio/Binaries/Linux/x86_64") -if not os.path.exists("src/project/SteamAudioUnity/Assets/Plugins/SteamAudio/Binaries/macOS"): - os.makedirs("src/project/SteamAudioUnity/Assets/Plugins/SteamAudio/Binaries/macOS") -if not os.path.exists("src/project/SteamAudioUnity/Assets/Plugins/SteamAudio/Binaries/Android/armv7"): - os.makedirs("src/project/SteamAudioUnity/Assets/Plugins/SteamAudio/Binaries/Android/armv7") -if not os.path.exists("src/project/SteamAudioUnity/Assets/Plugins/SteamAudio/Binaries/Android/arm64"): - os.makedirs("src/project/SteamAudioUnity/Assets/Plugins/SteamAudio/Binaries/Android/arm64") -if not os.path.exists("src/project/SteamAudioUnity/Assets/Plugins/SteamAudio/Binaries/Android/x86"): - os.makedirs("src/project/SteamAudioUnity/Assets/Plugins/SteamAudio/Binaries/Android/x86") - -print("Copying files...") -shutil.copy("steamaudio/lib/windows-x86/phonon.dll", "src/project/SteamAudioUnity/Assets/Plugins/SteamAudio/Binaries/Windows/x86") -shutil.copy("steamaudio/lib/windows-x64/phonon.dll", "src/project/SteamAudioUnity/Assets/Plugins/SteamAudio/Binaries/Windows/x86_64") -shutil.copy("steamaudio/lib/linux-x86/libphonon.so", "src/project/SteamAudioUnity/Assets/Plugins/SteamAudio/Binaries/Linux/x86") -shutil.copy("steamaudio/lib/linux-x64/libphonon.so", "src/project/SteamAudioUnity/Assets/Plugins/SteamAudio/Binaries/Linux/x86_64") -try: - shutil.rmtree("src/project/SteamAudioUnity/Assets/Plugins/SteamAudio/Binaries/macOS/phonon.bundle") -except: - pass -shutil.copytree("steamaudio/lib/osx/phonon.bundle", "src/project/SteamAudioUnity/Assets/Plugins/SteamAudio/Binaries/macOS/phonon.bundle") -shutil.copy("steamaudio/lib/android-armv7/libphonon.so", "src/project/SteamAudioUnity/Assets/Plugins/SteamAudio/Binaries/Android/armv7") -shutil.copy("steamaudio/lib/android-armv8/libphonon.so", "src/project/SteamAudioUnity/Assets/Plugins/SteamAudio/Binaries/Android/arm64") -shutil.copy("steamaudio/lib/android-x86/libphonon.so", "src/project/SteamAudioUnity/Assets/Plugins/SteamAudio/Binaries/Android/x86") - -shutil.copy("steamaudio/lib/windows-x64/TrueAudioNext.dll", "src/project/SteamAudioUnity/Assets/Plugins/SteamAudio/Binaries/Windows/x86_64") -shutil.copy("steamaudio/lib/windows-x64/GPUUtilities.dll", "src/project/SteamAudioUnity/Assets/Plugins/SteamAudio/Binaries/Windows/x86_64") +commons.CopyFiles(rootPath, TargetDirectories) print("Cleaning up...") -shutil.rmtree("steamaudio") +shutil.rmtree(rootPath) diff --git a/unreal/setup.py b/unreal/setup.py index 58610750..ca62b7c3 100644 --- a/unreal/setup.py +++ b/unreal/setup.py @@ -1,65 +1,33 @@ -# -# Copyright (c) Valve Corporation. All rights reserved. -# - -import os -import shutil -import urllib.request, urllib.error, urllib.parse -import zipfile - -version = "4.2.0" - -def download_file(url): - remote_file = urllib.request.urlopen(url) - with open(os.path.basename(url), "wb") as local_file: - while True: - data = remote_file.read(1024) - if not data: - break - local_file.write(data) - -print("Downloading steamaudio_" + version + ".zip...") -url = "https://github.com/ValveSoftware/steam-audio/releases/download/v" + version + "/steamaudio_" + version + ".zip" -download_file(url) - -print("Extracting steamaudio_" + version + ".zip...") -with zipfile.ZipFile(os.path.basename(url), "r") as zip: - zip.extractall() - -print("Creating directories...") -if not os.path.exists("src/SteamAudioUnreal/Plugins/SteamAudio/Source/SteamAudioSDK/lib/windows-x86"): - os.makedirs("src/SteamAudioUnreal/Plugins/SteamAudio/Source/SteamAudioSDK/lib/windows-x86") -if not os.path.exists("src/SteamAudioUnreal/Plugins/SteamAudio/Source/SteamAudioSDK/lib/windows-x64"): - os.makedirs("src/SteamAudioUnreal/Plugins/SteamAudio/Source/SteamAudioSDK/lib/windows-x64") -if not os.path.exists("src/SteamAudioUnreal/Plugins/SteamAudio/Source/SteamAudioSDK/lib/linux-x86"): - os.makedirs("src/SteamAudioUnreal/Plugins/SteamAudio/Source/SteamAudioSDK/lib/linux-x86") -if not os.path.exists("src/SteamAudioUnreal/Plugins/SteamAudio/Source/SteamAudioSDK/lib/linux-x64"): - os.makedirs("src/SteamAudioUnreal/Plugins/SteamAudio/Source/SteamAudioSDK/lib/linux-x64") -if not os.path.exists("src/SteamAudioUnreal/Plugins/SteamAudio/Source/SteamAudioSDK/lib/osx"): - os.makedirs("src/SteamAudioUnreal/Plugins/SteamAudio/Source/SteamAudioSDK/lib/osx") -if not os.path.exists("src/SteamAudioUnreal/Plugins/SteamAudio/Source/SteamAudioSDK/lib/android/armeabi-v7a"): - os.makedirs("src/SteamAudioUnreal/Plugins/SteamAudio/Source/SteamAudioSDK/lib/android/armeabi-v7a") -if not os.path.exists("src/SteamAudioUnreal/Plugins/SteamAudio/Source/SteamAudioSDK/lib/android/arm64-v8a"): - os.makedirs("src/SteamAudioUnreal/Plugins/SteamAudio/Source/SteamAudioSDK/lib/android/arm64-v8a") -if not os.path.exists("src/SteamAudioUnreal/Plugins/SteamAudio/Source/SteamAudioSDK/lib/android/x86"): - os.makedirs("src/SteamAudioUnreal/Plugins/SteamAudio/Source/SteamAudioSDK/lib/android/x86") - -print("Copying files...") -shutil.copy("steamaudio/lib/windows-x86/phonon.dll", "src/SteamAudioUnreal/Plugins/SteamAudio/Source/SteamAudioSDK/lib/windows-x86") -shutil.copy("steamaudio/lib/windows-x64/phonon.dll", "src/SteamAudioUnreal/Plugins/SteamAudio/Source/SteamAudioSDK/lib/windows-x64") -shutil.copy("steamaudio/lib/linux-x86/libphonon.so", "src/SteamAudioUnreal/Plugins/SteamAudio/Source/SteamAudioSDK/lib/linux-x86") -shutil.copy("steamaudio/lib/linux-x64/libphonon.so", "src/SteamAudioUnreal/Plugins/SteamAudio/Source/SteamAudioSDK/lib/linux-x64") -try: - shutil.rmtree("src/SteamAudioUnreal/Plugins/SteamAudio/Source/SteamAudioSDK/lib/osx/phonon.bundle") -except: - pass -shutil.copytree("steamaudio/lib/osx/phonon.bundle", "src/SteamAudioUnreal/Plugins/SteamAudio/Source/SteamAudioSDK/lib/osx/phonon.bundle") -shutil.copy("steamaudio/lib/android-armv7/libphonon.so", "src/SteamAudioUnreal/Plugins/SteamAudio/Source/SteamAudioSDK/lib/android/armeabi-v7a") -shutil.copy("steamaudio/lib/android-armv8/libphonon.so", "src/SteamAudioUnreal/Plugins/SteamAudio/Source/SteamAudioSDK/lib/android/arm64-v8a") -shutil.copy("steamaudio/lib/android-x86/libphonon.so", "src/SteamAudioUnreal/Plugins/SteamAudio/Source/SteamAudioSDK/lib/android/x86") - -shutil.copy("steamaudio/lib/windows-x64/TrueAudioNext.dll", "src/SteamAudioUnreal/Plugins/SteamAudio/Source/SteamAudioSDK/lib/windows-x64") -shutil.copy("steamaudio/lib/windows-x64/GPUUtilities.dll", "src/SteamAudioUnreal/Plugins/SteamAudio/Source/SteamAudioSDK/lib/windows-x64") - -print("Cleaning up...") -shutil.rmtree("steamaudio") +# +# Copyright (c) Valve Corporation. All rights reserved. +# + +import os +import sys +import shutil +sys.path.insert(1, "../") + +import commons + +TargetDirectories = { + "Win32" : "src/SteamAudioUnreal/Plugins/SteamAudio/Source/SteamAudioSDK/lib/windows-x86", + "Win64" : "src/SteamAudioUnreal/Plugins/SteamAudio/Source/SteamAudioSDK/lib/windows-x64", + "Linux32" : "src/SteamAudioUnreal/Plugins/SteamAudio/Source/SteamAudioSDK/lib/linux-x86", + "Linux64" : "src/SteamAudioUnreal/Plugins/SteamAudio/Source/SteamAudioSDK/lib/linux-x64", + "macOS" : "src/SteamAudioUnreal/Plugins/SteamAudio/Source/SteamAudioSDK/lib/osx", + "AndroidArmv7" : "src/SteamAudioUnreal/Plugins/SteamAudio/Source/SteamAudioSDK/lib/android/armeabi-v7a", + "AndroidArm64" : "src/SteamAudioUnreal/Plugins/SteamAudio/Source/SteamAudioSDK/lib/android/arm64-v8a", + "Androidx86" : "src/SteamAudioUnreal/Plugins/SteamAudio/Source/SteamAudioSDK/lib/android/x86" + }; + +argParsed = commons.getDefaultParser("Unreal", "").parse_args() + +rootPath = commons.download_steamaudioblobs(argParsed.force) + +commons.CopyFiles(rootPath, TargetDirectories) + +shutil.copy(rootPath + "lib/windows-x86/phonon.lib", TargetDirectories["Win32"]) +shutil.copy(rootPath + "lib/windows-x64/phonon.lib", TargetDirectories["Win64"]) + +print("Cleaning up...") +shutil.rmtree(rootPath) diff --git a/version.py b/version.py new file mode 100644 index 00000000..b7f2ecc1 --- /dev/null +++ b/version.py @@ -0,0 +1 @@ +version = "4.2.0" \ No newline at end of file