Repository navigation
Expand file tree
/
Copy pathproject.yml
More file actions
153 lines (148 loc) · 5.5 KB
/
Copy pathproject.yml
File metadata and controls
153 lines (148 loc) · 5.5 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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
name: Tinycast
options:
bundleIdPrefix: com.tinycast
deploymentTarget:
macOS: "26.0"
createIntermediateGroups: true
developmentLanguage: en
groupSortPosition: top
settings:
base:
MARKETING_VERSION: "0.1.0"
CURRENT_PROJECT_VERSION: "1"
SWIFT_VERSION: "6.0"
DEVELOPMENT_TEAM: ""
CODE_SIGN_STYLE: Manual
# A stable self-signed identity keeps the Accessibility grant across rebuilds. docs/signing.md
CODE_SIGN_IDENTITY: "Tinycast Self-Signed"
SWIFT_STRICT_CONCURRENCY: complete
TINYCAST_BUNDLE_IDENTIFIER: com.tinycast.app
configs:
Debug:
TINYCAST_BUNDLE_IDENTIFIER: com.tinycast.app.dev
DICTATION_EXECUTABLE_NAME: Tinycast Dev Dictation
Release:
DICTATION_EXECUTABLE_NAME: Tinycast Dictation
# Release-only: library validation refuses Debug's `.debug.dylib`, whose team never matches.
ENABLE_HARDENED_RUNTIME: YES
# Strip the shipped binary (dSYM is still generated first) and drop unused code.
DEPLOYMENT_POSTPROCESSING: YES
STRIP_INSTALLED_PRODUCT: YES
STRIP_SWIFT_SYMBOLS: YES
DEAD_CODE_STRIPPING: YES
targets:
Tinycast:
type: application
platform: macOS
sources:
- path: Tinycast
# Helper-only sources: compiling them in would link Vision and PDFKit into the app.
excludes:
- Features/Clipboard/Service/ClipboardTextExtractor.swift
- Features/Clipboard/Service/ClipboardTextHelper.swift
- Features/Dictation/Helper
- Features/FileSearch/Helper
- Resources/EmojiKeywords
# A folder reference keeps the packs in their own directory, which `EmojiIndex` lists.
- path: Tinycast/Resources/EmojiKeywords
type: folder
# The MIT mark's licence asks the notice to travel with the binary, not just the repo.
- path: NOTICE.md
buildPhase: resources
dependencies:
- target: DictationHelper
link: false
embed: false
# Resolve the embedded helper against the active channel, not Xcode's default configuration.
- framework: "$(BUILT_PRODUCTS_DIR)/$(DICTATION_EXECUTABLE_NAME).app"
link: false
embed: true
codeSign: true
copy:
destination: wrapper
subpath: Contents/Helpers
- target: ClipboardTextHelper
link: false
embed: true
codeSign: true
copy:
destination: wrapper
subpath: Contents/Helpers
# The crawl runs out of process, so its memory is returned when the helper exits.
- target: FileIndexHelper
link: false
embed: true
codeSign: true
copy:
destination: wrapper
subpath: Contents/Helpers
settings:
base:
PRODUCT_BUNDLE_IDENTIFIER: "$(TINYCAST_BUNDLE_IDENTIFIER)"
INFOPLIST_FILE: Tinycast/Info.plist
CODE_SIGN_ENTITLEMENTS: Tinycast/Tinycast.entitlements
ASSETCATALOG_COMPILER_APPICON_NAME: tinycast
LOCALIZATION_PREFERS_STRING_CATALOGS: YES
SWIFT_EMIT_LOC_STRINGS: YES
COMBINE_HIDPI_IMAGES: YES
LD_RUNPATH_SEARCH_PATHS:
- "$(inherited)"
- "@executable_path/../Frameworks"
configs:
# Debug is its own channel, so a local build never corrupts the installed app's state.
Debug:
PRODUCT_NAME: Tinycast Dev
ClipboardTextHelper:
type: tool
platform: macOS
sources:
- Tinycast/Features/Clipboard/Service/ClipboardTextExtractor.swift
- Tinycast/Features/Clipboard/Service/ClipboardTextHelper.swift
settings:
base:
# Pinned, or release.yml's PRODUCT_NAME renames the binary `ClipboardTextWorker` looks for.
EXECUTABLE_NAME: ClipboardTextHelper
PRODUCT_MODULE_NAME: ClipboardTextHelper
SKIP_INSTALL: YES
FileIndexHelper:
type: tool
platform: macOS
sources:
- Tinycast/Features/FileSearch/Helper/FileIndexHelper.swift
- Tinycast/Features/FileSearch/Model/FileSearchIgnoreList.swift
- Tinycast/Features/FileSearch/Model/FileSearchPolicy.swift
- Tinycast/Features/FileSearch/Model/FileSearchQuery.swift
- Tinycast/Features/FileSearch/Model/FileSearchScope.swift
- Tinycast/Features/FileSearch/Service/FileIndexCrawler.swift
- Tinycast/Features/FileSearch/Service/FileIndexSnapshot.swift
settings:
base:
# Pinned like ClipboardTextHelper's: release.yml's PRODUCT_NAME would otherwise rename it.
EXECUTABLE_NAME: FileIndexHelper
PRODUCT_MODULE_NAME: FileIndexHelper
SKIP_INSTALL: YES
SWIFT_OPTIMIZATION_LEVEL: -O
DictationHelper:
type: application
platform: macOS
info:
path: Tinycast/Features/Dictation/Helper/Info.plist
properties:
CFBundleName: "$(DICTATION_EXECUTABLE_NAME)"
CFBundleDisplayName: "$(DICTATION_EXECUTABLE_NAME)"
LSUIElement: true
sources:
- Tinycast/Features/Dictation/Helper
- Tinycast/Features/Dictation/Model/DictationModel.swift
- Tinycast/Features/Dictation/Model/DictationAudioChunks.swift
- Tinycast/Features/Dictation/Model/DictationLanguage.swift
- Tinycast/Features/Dictation/Service/DictationWire.swift
settings:
base:
EXECUTABLE_NAME: "$(DICTATION_EXECUTABLE_NAME)"
PRODUCT_NAME: "$(DICTATION_EXECUTABLE_NAME)"
WRAPPER_NAME: "$(DICTATION_EXECUTABLE_NAME).app"
PRODUCT_MODULE_NAME: DictationHelper
PRODUCT_BUNDLE_IDENTIFIER: "$(TINYCAST_BUNDLE_IDENTIFIER).dictation"
SKIP_INSTALL: YES
SWIFT_OPTIMIZATION_LEVEL: -O