Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
godotengine
GitHub Repository: godotengine/godot
Path: blob/master/misc/scripts/install_accesskit.py
45997 views
1
#!/usr/bin/env python3
2
3
if __name__ != "__main__":
4
raise SystemExit(f'Utility script "{__file__}" should not be used as a module!')
5
6
import os
7
import shutil
8
import sys
9
import urllib.request
10
11
sys.path.insert(0, os.path.join(os.path.dirname(os.path.abspath(__file__)), "../../"))
12
13
14
# Base Godot dependencies path
15
# If cross-compiling (no LOCALAPPDATA), we install in `bin`
16
deps_folder = os.getenv("LOCALAPPDATA")
17
if deps_folder:
18
deps_folder = os.path.join(deps_folder, "Godot", "build_deps")
19
else:
20
deps_folder = os.path.join("bin", "build_deps")
21
22
# AccessKit
23
ac_version = "0.21.2"
24
25
# Create dependencies folder
26
if not os.path.exists(deps_folder):
27
os.makedirs(deps_folder)
28
29
ac_filename = "accesskit-c-" + ac_version + ".zip"
30
ac_archive = os.path.join(deps_folder, "accesskit.zip")
31
ac_folder = os.path.join(deps_folder, "accesskit")
32
33
if os.path.isfile(ac_archive):
34
os.remove(ac_archive)
35
36
print(f"Downloading AccessKit {ac_filename} ...")
37
urllib.request.urlretrieve(
38
f"https://github.com/godotengine/godot-accesskit-c-static/releases/download/{ac_version}/{ac_filename}",
39
ac_archive,
40
)
41
if os.path.exists(ac_folder):
42
print(f"Removing existing local AccessKit installation in {ac_folder} ...")
43
shutil.rmtree(ac_folder)
44
print(f"Extracting AccessKit {ac_filename} to {ac_folder} ...")
45
shutil.unpack_archive(ac_archive, deps_folder)
46
os.remove(ac_archive)
47
os.rename(os.path.join(deps_folder, "accesskit-c-" + ac_version), ac_folder)
48
49
print("AccessKit installed successfully.\n")
50
51