# ------------------------------------------------------------------ # Copyright (c) 2024 PyInstaller Development Team. # # This file is distributed under the terms of the GNU General Public # License (version 2.0 or later). # # The full license is available in LICENSE, distributed with # this software. # # SPDX-License-Identifier: GPL-2.0-or-later # ------------------------------------------------------------------ import os from PyInstaller.utils.hooks import collect_data_files, copy_metadata # Collect default icon from `resources`, and license/readme file from `toga_winforms/libs/WebView2`. Use the same call # to also collect bundled WebView2 DLLs from `toga_winforms/libs/WebView2`. include_patterns = [ 'resources/*', 'libs/WebView2/*.md', 'libs/WebView2/*.dll', ] # The package seems to bundle WebView2 runtimes for x86, x64, and arm64. We need to collect only the one for the # running platform, which can be reliably identified by `PROCESSOR_ARCHITECTURE` environment variable, which properly # reflects the processor architecture of running process (even if running x86 python on x64 machine, or x64 python on # arm64 machine). machine = os.environ["PROCESSOR_ARCHITECTURE"].lower() if machine == 'x86': include_patterns += ['libs/WebView2/runtimes/win-x86/*'] elif machine == 'amd64': include_patterns += ['libs/WebView2/runtimes/win-x64/*'] elif machine == 'arm64': include_patterns += ['libs/WebView2/runtimes/win-arm64/*'] datas = collect_data_files('toga_winforms', includes=include_patterns) # Collect metadata so that the backend can be discovered via `toga.backends` entry-point. datas += copy_metadata("toga-winforms")