scaffold multi-platform xcode project with xcodegen

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-13 21:17:11 +01:00
parent 21227b3c78
commit 1b915fc9ab
5 changed files with 108 additions and 0 deletions

1
.gitignore vendored
View File

@@ -6,3 +6,4 @@
*.sync-conflict-* *.sync-conflict-*
node_modules/ node_modules/
.env .env
*.xcodeproj

View File

@@ -0,0 +1,13 @@
import SwiftUI
struct ContentView: View {
var body: some View {
NavigationSplitView {
Text("Sidebar")
} content: {
Text("Thread List")
} detail: {
Text("Detail")
}
}
}

View File

@@ -0,0 +1,13 @@
import SwiftUI
@main
struct MagnumOpusApp: App {
var body: some Scene {
WindowGroup {
ContentView()
}
#if os(macOS)
.defaultSize(width: 1200, height: 800)
#endif
}
}

View File

@@ -0,0 +1,9 @@
import Testing
@Suite("App")
struct AppTests {
@Test("placeholder")
func placeholder() {
#expect(true)
}
}

72
Apps/project.yml Normal file
View File

@@ -0,0 +1,72 @@
name: MagnumOpus
options:
bundleIdPrefix: de.felixfoertsch
deploymentTarget:
macOS: "15.0"
iOS: "18.0"
xcodeVersion: "16.0"
indentWidth: 4
tabWidth: 4
usesTabs: true
packages:
MagnumOpusCore:
path: ../Packages/MagnumOpusCore
targets:
MagnumOpus-macOS:
type: application
platform: macOS
sources:
- path: MagnumOpus
settings:
base:
PRODUCT_NAME: MagnumOpus
PRODUCT_BUNDLE_IDENTIFIER: de.felixfoertsch.MagnumOpus
DEVELOPMENT_TEAM: NG5W75WE8U
SWIFT_STRICT_CONCURRENCY: complete
SWIFT_VERSION: "6.0"
MACOSX_DEPLOYMENT_TARGET: "15.0"
GENERATE_INFOPLIST_FILE: YES
dependencies:
- package: MagnumOpusCore
product: Models
- package: MagnumOpusCore
product: MailStore
- package: MagnumOpusCore
product: IMAPClient
- package: MagnumOpusCore
product: SyncEngine
MagnumOpus-iOS:
type: application
platform: iOS
sources:
- path: MagnumOpus
settings:
base:
PRODUCT_NAME: MagnumOpus
PRODUCT_BUNDLE_IDENTIFIER: de.felixfoertsch.MagnumOpus
DEVELOPMENT_TEAM: NG5W75WE8U
SWIFT_STRICT_CONCURRENCY: complete
SWIFT_VERSION: "6.0"
IPHONEOS_DEPLOYMENT_TARGET: "18.0"
TARGETED_DEVICE_FAMILY: "1,2"
GENERATE_INFOPLIST_FILE: YES
dependencies:
- package: MagnumOpusCore
product: Models
- package: MagnumOpusCore
product: MailStore
- package: MagnumOpusCore
product: IMAPClient
- package: MagnumOpusCore
product: SyncEngine
MagnumOpusTests:
type: bundle.unit-test
platform: macOS
sources:
- path: MagnumOpusTests
dependencies:
- target: MagnumOpus-macOS
settings:
base:
SWIFT_VERSION: "6.0"
GENERATE_INFOPLIST_FILE: YES