-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsetup_app.py
More file actions
66 lines (60 loc) · 1.78 KB
/
setup_app.py
File metadata and controls
66 lines (60 loc) · 1.78 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
"""py2app build configuration for Harvest.app
Usage:
python setup_app.py py2app # build release .app
python setup_app.py py2app -A # alias mode (development, faster)
Output: dist/Harvest.app
Install: cp -r dist/Harvest.app /Applications/
"""
from pathlib import Path
from setuptools import setup
ASSETS = Path(__file__).parent / "assets"
APP = ["app_launcher.py"]
DATA_FILES = []
OPTIONS = {
"argv_emulation": False,
"iconfile": str(ASSETS / "harvest.icns"),
"plist": {
"CFBundleName": "Harvest",
"CFBundleDisplayName": "Harvest",
"CFBundleIdentifier": "com.devjoaocastro.harvest",
"CFBundleVersion": "0.1.0",
"CFBundleShortVersionString": "0.1.0",
"CFBundleSignature": "HVSТ",
# Menu bar app — no Dock icon, lives in status bar
"LSUIElement": True,
# Privacy strings (required for clipboard access on newer macOS)
"NSPasteboardUsageDescription": "Harvest reads URLs from your clipboard to extract content.",
# Allow running from Applications without quarantine issues
"LSMinimumSystemVersion": "13.0",
"NSHighResolutionCapable": True,
# Launch at login support
"LSBackgroundOnly": False,
},
"packages": [
"harvest",
"rumps",
"yt_dlp",
"pydantic",
"pydantic_settings",
"httpx",
"structlog",
"diskcache",
"platformdirs",
"anyio",
"rich",
"typer",
],
"excludes": [
"torch", "torchaudio", "faster_whisper",
"pytest", "mypy", "ruff",
],
"semi_standalone": False,
"site_packages": True,
}
setup(
app=APP,
name="Harvest",
data_files=DATA_FILES,
options={"py2app": OPTIONS},
setup_requires=["py2app"],
)