89 lines
2.2 KiB
Python
89 lines
2.2 KiB
Python
# -*- mode: python ; coding: utf-8 -*-
|
|
# spec file for pyinstaller
|
|
# run `pyinstaller osxphotos.spec`
|
|
|
|
|
|
import os
|
|
import importlib
|
|
|
|
pathex = os.getcwd()
|
|
|
|
from PyInstaller.utils.hooks import collect_data_files
|
|
|
|
# include necessary data files
|
|
datas = collect_data_files("osxphotos")
|
|
datas.extend(
|
|
[
|
|
("osxphotos/templates/xmp_sidecar.mako", "osxphotos/templates"),
|
|
("osxphotos/templates/xmp_sidecar_beta.mako", "osxphotos/templates"),
|
|
("osxphotos/phototemplate.tx", "osxphotos"),
|
|
("osxphotos/phototemplate.md", "osxphotos"),
|
|
("osxphotos/tutorial.md", "osxphotos"),
|
|
("osxphotos/exiftool_filetypes.json", "osxphotos"),
|
|
("osxphotos/docs", "osxphotos/docs"),
|
|
]
|
|
)
|
|
|
|
package_imports = [
|
|
["photoscript", ["photoscript.applescript"]],
|
|
]
|
|
for package, files in package_imports:
|
|
proot = os.path.dirname(importlib.import_module(package).__file__)
|
|
datas.extend((os.path.join(proot, f), package) for f in files)
|
|
|
|
# Add attribute data files for osxmetadata
|
|
# There is probably a better way to do this but this works
|
|
proot = os.path.dirname(importlib.import_module("osxmetadata").__file__)
|
|
for attribute_data in [
|
|
"audio_attributes.json",
|
|
"common_attributes.json",
|
|
"filesystem_attributes.json",
|
|
"image_attributes.json",
|
|
"mdimporter_constants.json",
|
|
"nsurl_resource_keys.json",
|
|
"video_attributes.json",
|
|
]:
|
|
datas.append(
|
|
(
|
|
os.path.join(proot, "attribute_data", attribute_data),
|
|
"osxmetadata/attribute_data",
|
|
)
|
|
)
|
|
|
|
block_cipher = None
|
|
|
|
a = Analysis(
|
|
["cli.py"],
|
|
pathex=[pathex],
|
|
binaries=[],
|
|
datas=datas,
|
|
hiddenimports=["pkg_resources.py2_warn"],
|
|
hookspath=[],
|
|
runtime_hooks=[],
|
|
excludes=[],
|
|
win_no_prefer_redirects=False,
|
|
win_private_assemblies=False,
|
|
cipher=block_cipher,
|
|
noarchive=False,
|
|
)
|
|
|
|
pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher)
|
|
|
|
exe = EXE(
|
|
pyz,
|
|
a.scripts,
|
|
a.binaries,
|
|
a.zipfiles,
|
|
a.datas,
|
|
[],
|
|
name="osxphotos",
|
|
debug=False,
|
|
bootloader_ignore_signals=False,
|
|
strip=False,
|
|
upx=True,
|
|
upx_exclude=[],
|
|
runtime_tmpdir=None,
|
|
console=True,
|
|
target_architecture="universal2",
|
|
)
|