678557caf7
Adds --capture-mic/--mic-output for a second, independently-captured audio track (mic vs system, written to separate outputs to avoid interleaving corruption). Embeds Info.plist at link time so the binary carries a stable CFBundleIdentifier and the usage-description keys TCC requires, and adds scripts/build-signed.sh + scripts/create-signing-identity.sh so a rebuilt binary keeps the same signing identity instead of losing granted permissions on every rebuild. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
56 lines
1.4 KiB
Swift
56 lines
1.4 KiB
Swift
// swift-tools-version: 5.9
|
|
// The swift-tools-version declares the minimum version of Swift required to build this package.
|
|
|
|
import PackageDescription
|
|
|
|
let package = Package(
|
|
name: "audiotee",
|
|
platforms: [
|
|
.macOS("14.2")
|
|
],
|
|
products: [
|
|
// Library that can be imported by other packages
|
|
.library(
|
|
name: "AudioTeeCore",
|
|
targets: ["AudioTeeCore"]
|
|
),
|
|
// CLI executable
|
|
.executable(
|
|
name: "audiotee",
|
|
targets: ["AudioTeeCLI"]
|
|
)
|
|
],
|
|
targets: [
|
|
// Core library with all business logic
|
|
.target(
|
|
name: "AudioTeeCore",
|
|
path: "Sources/AudioTeeCore"
|
|
),
|
|
|
|
// CLI executable that uses the library
|
|
.executableTarget(
|
|
name: "AudioTeeCLI",
|
|
dependencies: ["AudioTeeCore"],
|
|
path: "Sources/AudioTeeCLI",
|
|
exclude: ["Info.plist"],
|
|
linkerSettings: [
|
|
// Embeds Info.plist directly into the Mach-O binary so it carries a
|
|
// stable CFBundleIdentifier and the usage-description keys TCC needs,
|
|
// without requiring a full .app bundle — see scripts/build-signed.sh.
|
|
.unsafeFlags([
|
|
"-Xlinker", "-sectcreate",
|
|
"-Xlinker", "__TEXT",
|
|
"-Xlinker", "__info_plist",
|
|
"-Xlinker", "Sources/AudioTeeCLI/Info.plist",
|
|
])
|
|
]
|
|
),
|
|
|
|
// Tests for the library
|
|
.testTarget(
|
|
name: "AudioTeeCoreTests",
|
|
dependencies: ["AudioTeeCore"],
|
|
path: "Tests/AudioTeeCoreTests"
|
|
)
|
|
]
|
|
) |