diff --git a/res/msi/.gitignore b/res/msi/.gitignore index 44c377c55..d901aedc6 100644 --- a/res/msi/.gitignore +++ b/res/msi/.gitignore @@ -9,3 +9,5 @@ packages CustomActions/x64 CustomActions/*.user CustomActions/*.filters + +Package/Resources diff --git a/res/msi/Package/Resources/icon.ico b/res/msi/Package/Resources/icon.ico deleted file mode 100644 index eedb92614..000000000 Binary files a/res/msi/Package/Resources/icon.ico and /dev/null differ diff --git a/res/msi/preprocess.py b/res/msi/preprocess.py index 1d85efe21..7e6190ca7 100644 --- a/res/msi/preprocess.py +++ b/res/msi/preprocess.py @@ -9,6 +9,7 @@ import datetime import subprocess import re from pathlib import Path +import shutil g_indent_unit = "\t" g_version = "" @@ -391,6 +392,19 @@ def gen_content_between_tags(filename, tag_start, tag_end, func): return True +def prepare_resources(): + icon_src = Path(sys.argv[0]).parent.joinpath("../icon.ico") + icon_dst = Path(sys.argv[0]).parent.joinpath("Package/Resources/icon.ico") + if icon_src.exists(): + icon_dst.parent.mkdir(parents=True, exist_ok=True) + shutil.copy(icon_src, icon_dst) + return True + else: + # unreachable + print(f"Error: icon.ico not found in {icon_src}") + return False + + def init_global_vars(dist_dir, app_name, args): dist_app = dist_dir.joinpath(app_name + ".exe") @@ -446,6 +460,9 @@ if __name__ == "__main__": app_name = args.app_name dist_dir = Path(sys.argv[0]).parent.joinpath(args.dist_dir).resolve() + if not prepare_resources(): + sys.exit(-1) + if not init_global_vars(dist_dir, app_name, args): sys.exit(-1)