cabal-version: 3.0 name: webgpu-dawn version: 0.1.1.0 synopsis: Haskell bindings to WebGPU Dawn for GPU computing and graphics description: This package provides Haskell bindings to Google's Dawn WebGPU implementation, enabling GPU computing and graphics programming from Haskell. It wraps the gpu.cpp library which provides a high-level C++ interface to Dawn. license: MIT author: Junji Hashimoto maintainer: junji.hashimoto@gmail.com homepage: https://github.com/junjihashimoto/webgpu-dawn category: Graphics, GPU build-type: Custom extra-source-files: README.md source-repository head type: git location: https://github.com/junjihashimoto/webgpu-dawn flag glfw description: Enable GLFW support for windowed graphics applications default: True manual: True custom-setup setup-depends: base >= 4.14 && < 5, Cabal >= 3.0 && < 3.13, directory >= 1.3 && < 1.4, filepath >= 1.4 && < 1.6, process >= 1.6 && < 1.7, http-conduit >= 2.3 && < 2.4, bytestring >= 0.10 && < 0.13, zip-archive >= 0.4 && < 0.5, temporary >= 1.3 && < 1.4 library exposed-modules: Graphics.WebGPU.Dawn Graphics.WebGPU.Dawn.Types Graphics.WebGPU.Dawn.Context Graphics.WebGPU.Dawn.Tensor Graphics.WebGPU.Dawn.Kernel Graphics.WebGPU.Dawn.ContT Graphics.WebGPU.Dawn.Float16 Graphics.WebGPU.GLTF WGSL.AST WGSL.Monad WGSL.CodeGen WGSL.DSL WGSL.Execute WGSL.Kernel WGSL.Layout WGSL.Struct WGSL.API WGSL.Profile WGSL.Profile.Execute WGSL.Profile.Trace WGSL.Debug WGSL.Analyze WGSL.Async.Pipeline other-modules: Graphics.WebGPU.Dawn.Internal WGSL.Optimize if flag(glfw) exposed-modules: Graphics.WebGPU.Dawn.GLFW other-modules: Graphics.WebGPU.Dawn.GLFW.Internal Graphics.WebGPU.Dawn.GLFW.ContT hs-source-dirs: src default-language: Haskell2010 build-depends: base >= 4.14 && < 5, bytestring >= 0.10 && < 0.13, vector >= 0.12 && < 0.14, transformers >= 0.5 && < 0.7, mtl >= 2.2 && < 2.4, aeson >= 2.0 && < 2.3, text >= 1.2 && < 2.1, unordered-containers >= 0.2.14 && < 0.3, base64-bytestring >= 1.0 && < 1.3, binary >= 0.8 && < 0.9, filepath >= 1.4 && < 1.6, containers >= 0.6 && < 0.8, stm >= 2.5 && < 2.6 c-sources: cbits/gpu_wrapper.c cxx-sources: cbits/gpu_cpp_bridge.cpp cbits/numeric_types/half.cpp if flag(glfw) cxx-sources: cbits/gpu_glfw_wrapper.cpp install-includes: cbits/gpu_wrapper.h cbits/gpu.hpp cbits/numeric_types/half.hpp cbits/utils/array_utils.hpp cbits/utils/logging.hpp cxx-options: -std=c++17 -Wall if flag(glfw) cxx-options: -DENABLE_GLFW include-dirs: cbits cbits/numeric_types cbits/utils -- These will be populated by Setup.hs based on platform -- extra-lib-dirs: -- extra-include-dirs: extra-libraries: stdc++ if flag(glfw) cpp-options: -DENABLE_GLFW if os(darwin) extra-libraries: c++ frameworks: Metal, Foundation, QuartzCore, IOKit, IOSurface if flag(glfw) frameworks: Cocoa if os(linux) extra-libraries: stdc++ ghc-options: -Wall -- DSL examples (using WGSL.DSL) executable shared-memory-reduction main-is: SharedMemoryReduction.hs hs-source-dirs: examples/dsl default-language: Haskell2010 build-depends: base >= 4.14 && < 5, webgpu-dawn, vector >= 0.12 && < 0.14 ghc-options: -Wall executable matmul-subgroup-dsl main-is: MatmulSubgroupDSL.hs hs-source-dirs: examples/dsl default-language: Haskell2010 build-depends: base >= 4.14 && < 5, webgpu-dawn, vector >= 0.12 && < 0.14, clock >= 0.8 && < 0.9 ghc-options: -Wall executable vector-add-dsl main-is: VectorAddDSL.hs hs-source-dirs: examples/dsl default-language: Haskell2010 build-depends: base >= 4.14 && < 5, webgpu-dawn, vector >= 0.12 && < 0.14 ghc-options: -Wall executable struct-generics-dsl main-is: StructGenericsDSL.hs hs-source-dirs: examples/dsl default-language: Haskell2010 build-depends: base >= 4.14 && < 5, webgpu-dawn ghc-options: -Wall executable layout-demo main-is: LayoutDemo.hs hs-source-dirs: examples/dsl default-language: Haskell2010 build-depends: base >= 4.14 && < 5, webgpu-dawn ghc-options: -Wall executable kernel-fusion main-is: KernelFusion.hs hs-source-dirs: examples/dsl default-language: Haskell2010 build-depends: base >= 4.14 && < 5, webgpu-dawn, vector >= 0.12 && < 0.14 ghc-options: -Wall executable particle-system main-is: ParticleSystem.hs hs-source-dirs: examples/dsl default-language: Haskell2010 build-depends: base >= 4.14 && < 5, webgpu-dawn, bytestring >= 0.10 && < 0.13 ghc-options: -Wall executable struct-field-offset main-is: StructFieldOffset.hs hs-source-dirs: examples/dsl default-language: Haskell2010 build-depends: base >= 4.14 && < 5, webgpu-dawn, vector >= 0.12 && < 0.14, bytestring >= 0.10 && < 0.13 ghc-options: -Wall executable high-level-api main-is: HighLevelAPI.hs hs-source-dirs: examples/dsl default-language: Haskell2010 build-depends: base >= 4.14 && < 5, webgpu-dawn, vector >= 0.12 && < 0.14 ghc-options: -Wall executable chrome-tracing-demo main-is: ChromeTracingDemo.hs hs-source-dirs: examples/dsl default-language: Haskell2010 build-depends: base >= 4.14 && < 5, webgpu-dawn, vector >= 0.12 && < 0.14 ghc-options: -Wall executable async-pipeline-demo main-is: AsyncPipelineDemo.hs hs-source-dirs: examples/dsl default-language: Haskell2010 build-depends: base >= 4.14 && < 5, webgpu-dawn, vector >= 0.12 && < 0.14, clock >= 0.8 && < 0.9 ghc-options: -Wall -- Benchmark executables executable bench-linear main-is: LinearBench.hs hs-source-dirs: benchmarks default-language: Haskell2010 build-depends: base >= 4.14 && < 5, webgpu-dawn, vector >= 0.12 && < 0.14, clock >= 0.8 && < 0.9 ghc-options: -Wall -O2 -threaded executable bench-subgroup-matmul main-is: SubgroupMatmulBench.hs hs-source-dirs: benchmarks default-language: Haskell2010 build-depends: base >= 4.14 && < 5, webgpu-dawn, vector >= 0.12 && < 0.14, clock >= 0.8 && < 0.9 ghc-options: -Wall -O2 -threaded executable bench-optimized-matmul main-is: OptimizedMatmulBench.hs hs-source-dirs: benchmarks default-language: Haskell2010 build-depends: base >= 4.14 && < 5, webgpu-dawn, vector >= 0.12 && < 0.14, clock >= 0.8 && < 0.9 ghc-options: -Wall -O2 -threaded executable bench-async-matmul main-is: AsyncMatmulBench.hs hs-source-dirs: benchmarks default-language: Haskell2010 build-depends: base >= 4.14 && < 5, webgpu-dawn, vector >= 0.12 && < 0.14, clock >= 0.8 && < 0.9 ghc-options: -Wall -O2 -threaded test-suite webgpu-dawn-tests type: exitcode-stdio-1.0 main-is: Main.hs hs-source-dirs: test default-language: Haskell2010 build-depends: base, webgpu-dawn, hspec >= 2.7 ghc-options: -Wall -threaded