Skip to content

Commit b0f4a00

Browse files
committed
update links to mpy-cross
1 parent cf8644b commit b0f4a00

1 file changed

Lines changed: 35 additions & 19 deletions

File tree

build.py

Lines changed: 35 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,12 @@
1616
import requests
1717
import semver
1818

19+
if sys.argv and sys.argv[-1].upper() == "DEBUG":
20+
def debug(text):
21+
print(text)
22+
else:
23+
def debug(text):
24+
pass
1925

2026
def get_git_command(command):
2127
"""Execute and return the result of a git command without error."""
@@ -75,10 +81,9 @@ def date_to_version(tag):
7581
SET_VERSION_PATTERN = "\n__version__ = '{}'\n"
7682
THIS_REPOSITORY = "https://github.com/Neradoc/Circuitpython_Keyboard_Layouts.git"
7783

78-
PLATFORMS = ["mpy6", "mpy7", "mpy8"]
84+
PLATFORMS = ["mpy7", "mpy8"]
7985
PLATFORM_NAMES = {
8086
"py": "py",
81-
"mpy6": "6.x-mpy",
8287
"mpy7": "7.x-mpy",
8388
"mpy8": "8.x-mpy",
8489
}
@@ -88,28 +93,30 @@ def date_to_version(tag):
8893
MPYCROSS_URL = "https://adafruit-circuit-python.s3.amazonaws.com/bin/mpy-cross/"
8994
MPYCROSSES = {
9095
"darwin": {
91-
"mpy6": "mpy-cross-macos-catalina-6.3.0",
92-
"mpy7": "mpy-cross-macos-universal-7.3.0",
93-
"mpy8": "mpy-cross-macos-11-8.0.0-beta.0-x64",
96+
"mpy7": ["macos-11", "mpy-cross-macos-11-8.0.2-universal"],
97+
"mpy8": ["macos-11", "mpy-cross-macos-11-8.0.2-universal"],
9498
},
9599
"linux": {
96-
"mpy6": "mpy-cross.static-amd64-linux-6.3.0",
97-
"mpy7": "mpy-cross.static-amd64-linux-7.3.0",
98-
"mpy8": "mpy-cross.static-amd64-linux-8.0.0-beta.0",
100+
"mpy7": ["linux-amd64", "mpy-cross.static-amd64-linux-7.3.3"],
101+
"mpy8": ["linux-amd64", "mpy-cross.static-amd64-linux-8.0.2"],
99102
},
100103
"win32": {
101-
"mpy6": "mpy-cross.static-x64-windows-6.3.0.exe",
102-
"mpy7": "mpy-cross.static-x64-windows-7.3.0.exe",
103-
"mpy8": "mpy-cross.static-x64-windows-8.0.0-beta.0.exe",
104+
"mpy7": ["windows", "mpy-cross.static-x64-windows-7.3.3.exe"],
105+
"mpy8": ["windows", "mpy-cross-windows-8.1.0-beta.0.static.exe"],
104106
},
105107
"raspbian": {
106-
"mpy6": "mpy-cross.static-raspbian-6.3.0",
107-
"mpy7": "mpy-cross.static-raspbian-7.3.0",
108-
"mpy8": "mpy-cross.static-raspbian-8.0.0-beta.0",
108+
"mpy7": ["linux-raspbian", "mpy-cross.static-raspbian-7.3.0"],
109+
"mpy8": ["linux-raspbian", "mpy-cross.static-raspbian-8.0.2"],
109110
},
110111
}
111112
MPYCROSS = MPYCROSSES[sys.platform]
112113

114+
def MPYCROSS_LINK(version):
115+
return MPYCROSS_URL + "/".join(MPYCROSS[version])
116+
117+
def MPYCROSS_FILE(version):
118+
return os.path.join(BUILD_DEPS, MPYCROSS[version][-1])
119+
113120

114121
def file_version_tag(path):
115122
"""
@@ -180,9 +187,9 @@ def init_directories():
180187
for platform in ["py"] + PLATFORMS:
181188
bun_dir = BUNDLE_DIR.format(platform=PLATFORM_NAMES[platform])
182189
zip_file = BUNDLE_ZIP.format(platform=PLATFORM_NAMES[platform])
183-
if os.path.isdir(bun_dir):
190+
while os.path.isdir(bun_dir):
184191
shutil.rmtree(bun_dir)
185-
if os.path.isfile(zip_file):
192+
while os.path.isfile(zip_file):
186193
os.unlink(zip_file)
187194

188195

@@ -278,27 +285,34 @@ def make_the_mpy_bundles():
278285

279286
# download the mpycrosses
280287
for cross in MPYCROSS:
281-
cross_file = os.path.join(BUILD_DEPS, MPYCROSS[cross])
288+
cross_file = MPYCROSS_FILE(cross)
282289
if not os.path.isfile(cross_file):
283-
url = MPYCROSS_URL + MPYCROSS[cross]
290+
debug("Dowloading")
291+
debug(cross_file)
292+
url = MPYCROSS_LINK(cross)
284293
response = requests.get(url)
285294
with open(cross_file, "wb") as cross_fp:
286295
cross_fp.write(response.content)
287296
fstats = os.stat(cross_file)
288297
os.chmod(cross_file, fstats.st_mode | stat.S_IEXEC)
298+
else:
299+
debug("Exists: " + os.path.basename(cross_file))
289300

290301
# duplicate the py dir to mpy dirs
291302
pwd = os.getcwd()
292303
for platform in PLATFORMS:
293-
cross = os.path.join(BUILD_DEPS, MPYCROSS[platform])
304+
cross = MPYCROSS_FILE(platform)
294305
cross = os.path.abspath(cross)
295306
bun_dir = BUNDLE_DIR.format(platform=PLATFORM_NAMES[platform])
296307
lib_dir = BUNDLE_LIB_DIR.format(platform=PLATFORM_NAMES[platform])
308+
debug(f"{platform}: Duplicating")
309+
debug(f" {lib_dir}")
297310
shutil.copytree(fmt(BUNDLE_DIR), bun_dir)
298311
# run mpy-cross in each of those
299312
os.chdir(lib_dir)
300313
for lib_file in glob.glob(os.path.join("*.py")):
301314
mpy_file = lib_file.replace(".py", ".mpy")
315+
debug(f" • MPY file: {mpy_file}")
302316
subprocess.call([cross, lib_file, "-o", mpy_file])
303317
os.unlink(lib_file)
304318
os.chdir(pwd)
@@ -312,6 +326,8 @@ def do_the_zips():
312326
bun_dir = BUNDLE_DIR.format(platform=PLATFORM_NAMES[platform])
313327
zip_file = BUNDLE_ZIP.format(platform=PLATFORM_NAMES[platform])
314328
all_files = list_all_files(bun_dir)
329+
debug("Making zip")
330+
debug(f" {zip_file}")
315331
with zipfile.ZipFile(zip_file, "w") as bundle:
316332
# metadata (bundler version)
317333
# build_metadata = {"build-tools-version": build_tools_version}

0 commit comments

Comments
 (0)