mirror of
https://gitlab.com/kelteseth/ScreenPlay.git
synced 2024-10-06 09:17:07 +02:00
Merge remote-tracking branch 'origin/174-add-godot-wallpaper-support' into 174-add-godot-wallpaper-support
This commit is contained in:
commit
780fa8f60b
@ -25,10 +25,11 @@ QT_VERSION = "6.6.0"
|
|||||||
QT_BIN_PATH = QT_PATH.joinpath(f"{QT_VERSION}/{QT_PLATFORM}/bin")
|
QT_BIN_PATH = QT_PATH.joinpath(f"{QT_VERSION}/{QT_PLATFORM}/bin")
|
||||||
QT_TOOLS_PATH = QT_PATH.joinpath("Tools/")
|
QT_TOOLS_PATH = QT_PATH.joinpath("Tools/")
|
||||||
QT_IFW_VERSION = "4.6"
|
QT_IFW_VERSION = "4.6"
|
||||||
# 02.06.2023 https://gitlab.com/kelteseth/screenplay-vcpkg :
|
# 25.11.2023 https://gitlab.com/kelteseth/screenplay-vcpkg :
|
||||||
VCPKG_VERSION = "f06975f46d8c7a1dad916e1e997584f77ae0c34a"
|
VCPKG_VERSION = "cd5e746ec203c8c3c61647e0886a8df8c1e78e41"
|
||||||
VCPKG_BASE_PACKAGES = [
|
VCPKG_BASE_PACKAGES = [
|
||||||
"curl",
|
"curl",
|
||||||
|
"openssl",
|
||||||
"cpp-httplib",
|
"cpp-httplib",
|
||||||
"libarchive",
|
"libarchive",
|
||||||
"fmt",
|
"fmt",
|
||||||
|
95
Tools/macos_make_universal.py
Normal file
95
Tools/macos_make_universal.py
Normal file
@ -0,0 +1,95 @@
|
|||||||
|
#!/usr/bin/python3
|
||||||
|
# SPDX-License-Identifier: LicenseRef-EliasSteurerTachiom OR AGPL-3.0-only
|
||||||
|
from distutils.dir_util import mkpath
|
||||||
|
import os
|
||||||
|
import subprocess
|
||||||
|
from pathlib import Path
|
||||||
|
import util
|
||||||
|
from util import run, run_and_capture_output
|
||||||
|
from sys import stdout
|
||||||
|
|
||||||
|
stdout.reconfigure(encoding='utf-8')
|
||||||
|
|
||||||
|
|
||||||
|
def listfiles(path):
|
||||||
|
files = []
|
||||||
|
ignored = ('.DS_Store',) # Ignored files
|
||||||
|
print(f"WALK: {path}")
|
||||||
|
|
||||||
|
for dirName, _, fileList in os.walk(path):
|
||||||
|
for fname in fileList:
|
||||||
|
if fname in ignored:
|
||||||
|
continue # Skip ignored files
|
||||||
|
|
||||||
|
file_path = os.path.join(dirName, fname)
|
||||||
|
if os.path.isfile(file_path) and (fname.endswith('.a')):
|
||||||
|
files.append(file_path)
|
||||||
|
if os.path.islink(file_path):
|
||||||
|
print(f"Warning: file {file_path} is a symlink!")
|
||||||
|
print("Symlink target: ", os.readlink(file_path))
|
||||||
|
return files
|
||||||
|
|
||||||
|
def is_mach_o_binary(file_path):
|
||||||
|
"""
|
||||||
|
Check if a file is a Mach-O binary using the file command.
|
||||||
|
"""
|
||||||
|
try:
|
||||||
|
result = subprocess.run(["file", file_path], capture_output=True, text=True)
|
||||||
|
return 'Mach-O' in result.stdout
|
||||||
|
except Exception as e:
|
||||||
|
print(f"Error checking file type of {file_path}: {e}")
|
||||||
|
return False
|
||||||
|
|
||||||
|
# Merges x64 and arm64 vcpkg build into universal
|
||||||
|
def run_lipo():
|
||||||
|
workspace_path = util.workspace_path()
|
||||||
|
vcpkg_installed_path = str(Path(workspace_path).joinpath("vcpkg/installed/").absolute())
|
||||||
|
arm64_dir = f"{vcpkg_installed_path}/arm64-osx"
|
||||||
|
x64_dir = f"{vcpkg_installed_path}/x64-osx"
|
||||||
|
universal_dir = f"{vcpkg_installed_path}/64-osx-universal"
|
||||||
|
# Ensure the universal directory is created and empty
|
||||||
|
run(f"rm -rf {universal_dir}", workspace_path)
|
||||||
|
# Copy the x64 build as a base for the universal build
|
||||||
|
run(f"cp -a {arm64_dir} {universal_dir}", workspace_path)
|
||||||
|
|
||||||
|
files = listfiles(str(universal_dir))
|
||||||
|
|
||||||
|
for file in files:
|
||||||
|
# Extract the relative path for file
|
||||||
|
rel_path = os.path.relpath(file, universal_dir)
|
||||||
|
|
||||||
|
# Construct the corresponding arm64 and x64 file paths
|
||||||
|
arm64_file = os.path.join(arm64_dir, rel_path)
|
||||||
|
x64_file = os.path.join(x64_dir, rel_path)
|
||||||
|
universal_file = file # file is already in universal_dir
|
||||||
|
|
||||||
|
#and is_mach_o_binary(arm64_file)
|
||||||
|
if os.path.exists(x64_file) :
|
||||||
|
run(f"lipo -create {arm64_file} {x64_file} -output {universal_file}")
|
||||||
|
print(f"Processing binary file: {universal_file}")
|
||||||
|
run(f"lipo -info {universal_file}")
|
||||||
|
else:
|
||||||
|
print(f"Skipping non-binary file: {universal_file}")
|
||||||
|
|
||||||
|
def check_fat_binary():
|
||||||
|
# Ensure the script starts from the correct directory
|
||||||
|
workspace_path = Path(util.workspace_path())
|
||||||
|
|
||||||
|
dir = 'vcpkg/installed/64-osx-universal'
|
||||||
|
universal_dir = str(workspace_path.joinpath(dir))
|
||||||
|
print(f"check_fat_binary {universal_dir}")
|
||||||
|
files = listfiles(universal_dir)
|
||||||
|
|
||||||
|
for file in files:
|
||||||
|
out = run_and_capture_output(f"lipo -info {file}")
|
||||||
|
if out.startswith('Non-fat'):
|
||||||
|
out = out.replace("\n","")
|
||||||
|
print(f"❌ {out}")
|
||||||
|
else:
|
||||||
|
print(f"✅ {file}")
|
||||||
|
def execute():
|
||||||
|
run_lipo()
|
||||||
|
check_fat_binary()
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
execute()
|
@ -7,6 +7,7 @@ import download_ffmpeg
|
|||||||
import defines
|
import defines
|
||||||
import argparse
|
import argparse
|
||||||
import util
|
import util
|
||||||
|
import macos_make_universal
|
||||||
import datetime
|
import datetime
|
||||||
import setup_godot
|
import setup_godot
|
||||||
from sys import stdout
|
from sys import stdout
|
||||||
@ -62,9 +63,7 @@ def download(aqt_path: Path, qt_platform: Path):
|
|||||||
|
|
||||||
# Tools can only be installed one at the time:
|
# Tools can only be installed one at the time:
|
||||||
# see: python -m aqt list-tool windows desktop
|
# see: python -m aqt list-tool windows desktop
|
||||||
tools = ["tools_ifw", "tools_qtcreator", "tools_ninja", "tools_cmake"]
|
tools = ["tools_ifw"]
|
||||||
if system() == "Windows":
|
|
||||||
tools += ["tools_opensslv3_x64"]
|
|
||||||
for tool in tools:
|
for tool in tools:
|
||||||
execute(
|
execute(
|
||||||
f"{defines.PYTHON_EXECUTABLE} -m aqt install-tool -O {aqt_path} {os} desktop {tool}")
|
f"{defines.PYTHON_EXECUTABLE} -m aqt install-tool -O {aqt_path} {os} desktop {tool}")
|
||||||
@ -138,7 +137,7 @@ def main():
|
|||||||
platform_command.add("chmod +x bootstrap-vcpkg.sh", vcpkg_path)
|
platform_command.add("chmod +x bootstrap-vcpkg.sh", vcpkg_path)
|
||||||
platform_command.add("./bootstrap-vcpkg.sh", vcpkg_path, False)
|
platform_command.add("./bootstrap-vcpkg.sh", vcpkg_path, False)
|
||||||
platform_command.add("chmod +x vcpkg", vcpkg_path)
|
platform_command.add("chmod +x vcpkg", vcpkg_path)
|
||||||
vcpkg_triplet = ["64-osx-universal"]
|
vcpkg_triplet = ["x64-osx","arm64-osx"]
|
||||||
elif system() == "Linux":
|
elif system() == "Linux":
|
||||||
vcpkg_command = "./vcpkg"
|
vcpkg_command = "./vcpkg"
|
||||||
# vcpkg_packages_list.append("infoware[opengl]")
|
# vcpkg_packages_list.append("infoware[opengl]")
|
||||||
@ -151,7 +150,7 @@ def main():
|
|||||||
raise NotImplementedError("Unknown system: {}".format(system()))
|
raise NotImplementedError("Unknown system: {}".format(system()))
|
||||||
|
|
||||||
print(f"Clone into {vcpkg_path}")
|
print(f"Clone into {vcpkg_path}")
|
||||||
execute("git clone https://gitlab.com/kelteseth/screenplay-vcpkg vcpkg",
|
execute("git clone https://github.com/microsoft/vcpkg vcpkg",
|
||||||
project_source_parent_path, True)
|
project_source_parent_path, True)
|
||||||
execute("git fetch", vcpkg_path)
|
execute("git fetch", vcpkg_path)
|
||||||
execute(f"git checkout {defines.VCPKG_VERSION}", vcpkg_path)
|
execute(f"git checkout {defines.VCPKG_VERSION}", vcpkg_path)
|
||||||
@ -165,9 +164,15 @@ def main():
|
|||||||
vcpkg_packages = " ".join(vcpkg_packages_list)
|
vcpkg_packages = " ".join(vcpkg_packages_list)
|
||||||
execute(
|
execute(
|
||||||
f"{vcpkg_command} install {vcpkg_packages} --triplet {triplet} --recurse", vcpkg_path, False)
|
f"{vcpkg_command} install {vcpkg_packages} --triplet {triplet} --recurse", vcpkg_path, False)
|
||||||
|
|
||||||
|
# Combine x64 and arm
|
||||||
|
if system() == "Darwin":
|
||||||
|
macos_make_universal.execute()
|
||||||
|
|
||||||
if not args.skip_aqt:
|
if not args.skip_aqt:
|
||||||
setup_qt()
|
setup_qt()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
main()
|
main()
|
||||||
|
Loading…
Reference in New Issue
Block a user