| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- #!/usr/bin/env python
- import os
- import shutil
- import sys
- import tempfile
- import urllib.request
- from zipfile import ZipFile
- sys.path.insert(0, os.path.join(os.path.dirname(os.path.abspath(__file__)), "../../"))
- from misc.utility.color import Ansi, color_print
- # Swappy
- # Check for latest version: https://github.com/godotengine/godot-swappy/releases/latest
- swappy_tag = "from-source-2025-01-31"
- swappy_filename = "godot-swappy.zip"
- swappy_folder = "thirdparty/swappy-frame-pacing"
- swappy_archs = [
- "arm64-v8a",
- "armeabi-v7a",
- "x86",
- "x86_64",
- ]
- swappy_archive_destination = os.path.join(tempfile.gettempdir(), swappy_filename)
- if os.path.isfile(swappy_archive_destination):
- os.remove(swappy_archive_destination)
- print(f"Downloading Swappy {swappy_tag} ...")
- urllib.request.urlretrieve(
- f"https://github.com/godotengine/godot-swappy/releases/download/{swappy_tag}/{swappy_filename}",
- swappy_archive_destination,
- )
- for arch in swappy_archs:
- folder = os.path.join(swappy_folder, arch)
- if os.path.exists(folder):
- print(f"Removing existing local Swappy installation in {folder} ...")
- shutil.rmtree(folder)
- print(f"Extracting Swappy {swappy_tag} to {swappy_folder} ...")
- with ZipFile(swappy_archive_destination, "r") as zip_file:
- for arch in swappy_archs:
- zip_file.getinfo(f"{arch}/libswappy_static.a").filename = os.path.join(
- swappy_folder, f"{arch}/libswappy_static.a"
- )
- zip_file.extract(f"{arch}/libswappy_static.a")
- os.remove(swappy_archive_destination)
- print("Swappy installed successfully.\n")
- # Complete message
- color_print(f'{Ansi.GREEN}Swappy was installed to "{swappy_folder}" successfully!')
- color_print(
- f'{Ansi.GREEN}You can now build Godot with Swappy support enabled by running "scons platform=android swappy=yes".'
- )
|