mirror of
https://github.com/lvgl/lvgl.git
synced 2025-01-14 06:42:58 +08:00
ec80fe49fa
Co-authored-by: Liam <30486941+liamHowatt@users.noreply.github.com>
67 lines
1.7 KiB
Python
67 lines
1.7 KiB
Python
# -*- coding: utf-8 -*-
|
|
|
|
import zipfile
|
|
import io
|
|
import os
|
|
|
|
|
|
SDL2_URL = 'https://github.com/libsdl-org/SDL/releases/download/release-2.26.5/SDL2-devel-2.26.5-VC.zip' # NOQA
|
|
|
|
|
|
def get_path(name: str, p: str) -> str:
|
|
for file in os.listdir(p):
|
|
file = os.path.join(p, file)
|
|
|
|
if file.endswith(name):
|
|
return file
|
|
|
|
if os.path.isdir(file):
|
|
if res := get_path(name, file):
|
|
return res
|
|
|
|
|
|
def get_sdl2(path, url=SDL2_URL):
|
|
import requests # NOQA
|
|
|
|
stream = io.BytesIO()
|
|
|
|
with requests.get(url, stream=True) as r:
|
|
r.raise_for_status()
|
|
|
|
content_length = int(r.headers['Content-Length'])
|
|
chunks = 0
|
|
# print()
|
|
# sys.stdout.write('\r' + str(chunks) + '/' + str(content_length))
|
|
# sys.stdout.flush()
|
|
|
|
for chunk in r.iter_content(chunk_size=1024):
|
|
stream.write(chunk)
|
|
chunks += len(chunk)
|
|
# sys.stdout.write('\r' + str(chunks) + '/' + str(content_length))
|
|
# sys.stdout.flush()
|
|
|
|
# print()
|
|
stream.seek(0)
|
|
zf = zipfile.ZipFile(stream)
|
|
|
|
for z_item in zf.infolist():
|
|
for ext in ('.h', '.dll', '.lib'):
|
|
if not z_item.filename.endswith(ext):
|
|
continue
|
|
|
|
zf.extract(z_item, path=path)
|
|
break
|
|
|
|
include_path = get_path('include', path)
|
|
lib_path = get_path('lib\\x64', path)
|
|
dll_path = get_path('SDL2.dll', lib_path)
|
|
|
|
sdl_include_path = os.path.split(include_path)[0]
|
|
if not os.path.exists(os.path.join(sdl_include_path, 'SDL2')):
|
|
os.rename(include_path, os.path.join(sdl_include_path, 'SDL2'))
|
|
|
|
zf.close()
|
|
stream.close()
|
|
|
|
return os.path.abspath(sdl_include_path), dll_path
|