aboutsummaryrefslogtreecommitdiff
path: root/packaging
diff options
context:
space:
mode:
authorEli Schwartz <eschwartz@archlinux.org>2022-04-03 01:34:21 -0400
committerNirbheek Chauhan <nirbheek@centricular.com>2022-04-19 22:32:51 +0530
commit8cec2de805c2363039f403497f1ab2edf20a6e94 (patch)
tree8a121b52e6d38a4e1f81fa67350b5f9ff084211e /packaging
parent2d8c4f44b347ce4d4373027b6386fc6379a5b870 (diff)
downloadmeson-8cec2de805c2363039f403497f1ab2edf20a6e94.zip
meson-8cec2de805c2363039f403497f1ab2edf20a6e94.tar.gz
meson-8cec2de805c2363039f403497f1ab2edf20a6e94.tar.bz2
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
Diffstat (limited to 'packaging')
-rw-r--r--packaging/hook-mesonbuild.py7
1 files changed, 7 insertions, 0 deletions
diff --git a/packaging/hook-mesonbuild.py b/packaging/hook-mesonbuild.py
index b5f09ef..b076c50 100644
--- a/packaging/hook-mesonbuild.py
+++ b/packaging/hook-mesonbuild.py
@@ -7,6 +7,9 @@ PyInstaller hook to make mesonbuild include everything it needs to.
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')