mirror of
https://github.com/ScrelliCopter/NeHe-SDL_GPU.git
synced 2025-06-19 21:49:17 +10:00
65 lines
2.9 KiB
Swift
65 lines
2.9 KiB
Swift
// swift-tools-version: 6.0
|
|
|
|
import PackageDescription
|
|
|
|
func resources(shaders: [String], data: [String] = []) -> [PackageDescription.Resource] {
|
|
shaders.flatMap { name in
|
|
#if os(macOS)
|
|
[ .process("../../../data/shaders/\(name).metallib") ]
|
|
#else
|
|
[
|
|
.process("../../../data/shaders/\(name).vtx.spv"),
|
|
.process("../../../data/shaders/\(name).frg.spv"),
|
|
]
|
|
#endif
|
|
} + data.map { resource in .process("../../../data/\(resource)") }
|
|
}
|
|
|
|
let package = Package(
|
|
name: "NeHe-SDL_GPU",
|
|
products: [
|
|
.executable(name: "Lesson1", targets: [ "Lesson1" ]),
|
|
.executable(name: "Lesson2", targets: [ "Lesson2" ]),
|
|
.executable(name: "Lesson3", targets: [ "Lesson3" ]),
|
|
.executable(name: "Lesson4", targets: [ "Lesson4" ]),
|
|
.executable(name: "Lesson5", targets: [ "Lesson5" ]),
|
|
.executable(name: "Lesson6", targets: [ "Lesson6" ]),
|
|
.executable(name: "Lesson7", targets: [ "Lesson7" ]),
|
|
.executable(name: "Lesson8", targets: [ "Lesson8" ]),
|
|
.executable(name: "Lesson9", targets: [ "Lesson9" ]),
|
|
.executable(name: "Lesson10", targets: [ "Lesson10" ]),
|
|
],
|
|
dependencies: [
|
|
.package(url: "https://github.com/GayPizzaSpecifications/SDL3Swift.git", branch: "main"),
|
|
.package(url: "https://github.com/keyvariable/kvSIMD.swift.git", .upToNextMajor(from: "1.1.0")),
|
|
],
|
|
targets: [
|
|
.target(
|
|
name: "NeHe",
|
|
dependencies: [
|
|
.product(name: "SDLSwift", package: "SDL3Swift"),
|
|
.product(name: "kvSIMD", package: "kvSIMD.swift"),
|
|
],
|
|
path: "src/swift/NeHe"),
|
|
.executableTarget(name: "Lesson1", dependencies: [ "NeHe" ], path: "src/swift/Lesson1"),
|
|
.executableTarget(name: "Lesson2", dependencies: [ "NeHe" ], path: "src/swift/Lesson2", resources:
|
|
resources(shaders: [ "lesson2" ])),
|
|
.executableTarget(name: "Lesson3", dependencies: [ "NeHe" ], path: "src/swift/Lesson3", resources:
|
|
resources(shaders: [ "lesson3" ])),
|
|
.executableTarget(name: "Lesson4", dependencies: [ "NeHe" ], path: "src/swift/Lesson4", resources:
|
|
resources(shaders: [ "lesson3" ])),
|
|
.executableTarget(name: "Lesson5", dependencies: [ "NeHe" ], path: "src/swift/Lesson5", resources:
|
|
resources(shaders: [ "lesson3" ])),
|
|
.executableTarget(name: "Lesson6", dependencies: [ "NeHe" ], path: "src/swift/Lesson6", resources:
|
|
resources(shaders: [ "lesson6" ], data: [ "NeHe.bmp" ])),
|
|
.executableTarget(name: "Lesson7", dependencies: [ "NeHe" ], path: "src/swift/Lesson7", resources:
|
|
resources(shaders: [ "lesson6", "lesson7" ], data: [ "Crate.bmp" ])),
|
|
.executableTarget(name: "Lesson8", dependencies: [ "NeHe" ], path: "src/swift/Lesson8", resources:
|
|
resources(shaders: [ "lesson7", "lesson8" ], data: [ "Glass.bmp" ])),
|
|
.executableTarget(name: "Lesson9", dependencies: [ "NeHe" ], path: "src/swift/Lesson9", resources:
|
|
resources(shaders: [ "lesson9" ], data: [ "Star.bmp" ])),
|
|
.executableTarget(name: "Lesson10", dependencies: [ "NeHe" ], path: "src/swift/Lesson10", resources:
|
|
resources(shaders: [ "lesson6" ], data: [ "Mud.bmp", "World.txt" ])),
|
|
]
|
|
)
|