]> git.immae.eu Git - perso/Immae/Projets/Python/MusicSampler.git/blobdiff - music_sampler.spec
Add config
[perso/Immae/Projets/Python/MusicSampler.git] / music_sampler.spec
index a56c2dd0f051076f11b63c9a8e64b68a6594aa58..844ac4b6a6b1e166a6d124f7352fa4483e8da593 100644 (file)
@@ -1,17 +1,74 @@
 # -*- mode: python -*-
-from kivy.tools.packaging.pyinstaller_hooks import  get_deps_minimal, hookspath, runtime_hooks
+import os
+import setuptools_scm
+from kivy.tools.packaging.pyinstaller_hooks import get_deps_minimal,\
+        hookspath, runtime_hooks
 
-excluded_and_hidden_modules = get_deps_minimal(video=None, camera=None, audio=None, clipboard=None, spelling=None)
-excluded_and_hidden_modules['hiddenimports'] += [ 'six', 'packaging', 'packaging.version', 'packaging.specifiers', 'packaging.requirements']
+import importlib.machinery
+sysfont = importlib.machinery\
+        .SourceFileLoader('sysfont', os.getcwd()+'/music_sampler/sysfont.py') \
+        .load_module()
 
-a = Analysis(['music_sampler.py'],
-             binaries=None,
-             datas=[
-              ('fonts/*', 'fonts'),
-              ('musicsampler.kv', '.')
-             ],
+excluded_and_hidden_modules = get_deps_minimal(
+        video=None,
+        camera=None,
+        audio=None,
+        clipboard=None,
+        spelling=None)
+
+excluded_and_hidden_modules['hiddenimports'] += [
+        'six',
+        'packaging',
+        'packaging.version',
+        'packaging.specifiers',
+        'packaging.requirements' ]
+
+commit_message = setuptools_scm.get_version()
+pyinstaller_file = open(".pyinstaller_commit", "w")
+pyinstaller_file.write(commit_message)
+pyinstaller_file.close()
+
+data = [
+  ('music_sampler/music_sampler.kv', '.'),
+  ('.pyinstaller_commit', '.'),
+  ('music_sampler/locales', 'locales')
+]
+
+a = Analysis(['run.py'],
+             datas=data,
              hookspath=hookspath(),
              runtime_hooks=runtime_hooks(),
              **excluded_and_hidden_modules)
+
+fonts = [
+  ("Ubuntu", sysfont.STYLE_NORMAL),
+  ("Ubuntu", sysfont.STYLE_BOLD),
+  ("Symbola", sysfont.STYLE_NONE)
+]
+
+for fontname, style in fonts:
+    font = sysfont.get_font(fontname, style=style)
+    a.datas.append((
+        'fonts/{}_{}.ttf'.format(fontname, style),
+        font[4],
+        'DATA'
+        ))
+
 pyz = PYZ(a.pure, a.zipped_data)
-exe = EXE(pyz, a.scripts, a.binaries, a.zipfiles, a.datas, name='music_sampler')
+
+# Single file
+exe = EXE(pyz, a.scripts, a.binaries, a.zipfiles, a.datas,
+        name='music_sampler')
+
+# Directory
+# exe = EXE(pyz, a.scripts,
+#     exclude_binaries=True,
+#     name='music_sampler_dir',
+#     debug=False,
+#     strip=False,
+#     upx=True,
+#     console=True)
+# coll = COLLECT(exe, a.binaries, a.zipfiles, a.datas,
+#     strip=False,
+#     upx=True,
+#     name='music_sampler_dir')