From 7ceec99c55c8534f6c0ec287e0ca7092a8c29ef5 Mon Sep 17 00:00:00 2001 From: Eli Schwartz Date: Sun, 3 Apr 2022 01:34:21 -0400 Subject: [PATCH] packaging: make sure pyinstaller sees our distributed data files Running pyinstaller to create a bundle, and using the resulting `pyinst-tmp/meson/meson setup ...` with the cmake module revealed that no data files were being bundled, unlike what we did for setup.cfg. Fix this oversight. Fixes #10163 --- packaging/hook-mesonbuild.py | 7 +++++++ setup.cfg | 1 + 2 files changed, 8 insertions(+) diff --git a/packaging/hook-mesonbuild.py b/packaging/hook-mesonbuild.py index b5f09effe88e..b076c506d17c 100644 --- a/packaging/hook-mesonbuild.py +++ b/packaging/hook-mesonbuild.py @@ -7,6 +7,9 @@ import os from glob import glob +from PyInstaller.utils.hooks import collect_data_files + +datas = [] hiddenimports = [] def get_all_modules_from_dir(dirname): @@ -18,6 +21,10 @@ def get_all_modules_from_dir(dirname): modules = ['mesonbuild.' + modname + '.' + x for x in modules if not x.startswith('_')] return modules +datas += collect_data_files('mesonbuild.scripts') +datas += collect_data_files('mesonbuild.cmake.data') +datas += collect_data_files('mesonbuild.dependencies.data') + hiddenimports += get_all_modules_from_dir('mesonbuild/modules') hiddenimports += get_all_modules_from_dir('mesonbuild/scripts') diff --git a/setup.cfg b/setup.cfg index b7d7c101fe62..4a0ffadbb18c 100644 --- a/setup.cfg +++ b/setup.cfg @@ -47,6 +47,7 @@ typing = mypy typing_extensions; python_version <"3.8" +# this must be synced with packaging/hook-mesonbuild.py [options.package_data] mesonbuild.scripts = cmd_or_ps.ps1 mesonbuild.cmake.data = *