103 lines
2.6 KiB
Swift
103 lines
2.6 KiB
Swift
// swift-tools-version: 6.0
|
|
// The swift-tools-version declares the minimum version of Swift required to build this package.
|
|
|
|
import PackageDescription
|
|
|
|
let package = Package(
|
|
name: "SportsBallEngine",
|
|
platforms: [
|
|
.macOS(.v14),
|
|
.linux
|
|
],
|
|
products: [
|
|
.executable(
|
|
name: "SportsBallEngine",
|
|
targets: ["SportsBallEngine"]
|
|
),
|
|
],
|
|
dependencies: [
|
|
// Add external dependencies here (e.g., GLFW/SDL bindings, Vulkan bindings)
|
|
// .package(url: "https://github.com/example/swift-vulkan.git", from: "1.0.0"),
|
|
],
|
|
targets: [
|
|
// Main executable target
|
|
.executableTarget(
|
|
name: "SportsBallEngine",
|
|
dependencies: [
|
|
"EngineCore",
|
|
"PlatformWin32",
|
|
"PlatformLinux"
|
|
]
|
|
),
|
|
|
|
// ====== PLATFORM-AGNOSTIC CORE MODULES ======
|
|
|
|
// Engine Core - Main loop and scene management
|
|
.target(
|
|
name: "EngineCore",
|
|
dependencies: [
|
|
"RendererAPI",
|
|
"PhysicsEngine",
|
|
"AssetLoader"
|
|
]
|
|
),
|
|
|
|
// Renderer API - Protocol definitions only
|
|
.target(
|
|
name: "RendererAPI",
|
|
dependencies: []
|
|
),
|
|
|
|
// Physics Engine - Sports-optimized physics simulation
|
|
.target(
|
|
name: "PhysicsEngine",
|
|
dependencies: []
|
|
),
|
|
|
|
// Asset Loader - 3D models, textures, animations
|
|
.target(
|
|
name: "AssetLoader",
|
|
dependencies: []
|
|
),
|
|
|
|
// ====== PLATFORM-SPECIFIC MODULES ======
|
|
|
|
// Windows Platform Layer
|
|
.target(
|
|
name: "PlatformWin32",
|
|
dependencies: [
|
|
"RendererAPI",
|
|
"DX12Renderer"
|
|
]
|
|
),
|
|
|
|
// Linux Platform Layer
|
|
.target(
|
|
name: "PlatformLinux",
|
|
dependencies: [
|
|
"RendererAPI",
|
|
"VulkanRenderer"
|
|
]
|
|
),
|
|
|
|
// Vulkan Renderer Implementation
|
|
.target(
|
|
name: "VulkanRenderer",
|
|
dependencies: ["RendererAPI"]
|
|
),
|
|
|
|
// DirectX 12 Renderer Implementation
|
|
.target(
|
|
name: "DX12Renderer",
|
|
dependencies: ["RendererAPI"]
|
|
),
|
|
|
|
// ====== TESTS ======
|
|
|
|
.testTarget(
|
|
name: "EngineCoreTests",
|
|
dependencies: ["EngineCore"]
|
|
),
|
|
]
|
|
)
|
|
|