name: VulkanMemoryAllocator
version: "0.11.1.0"
synopsis: Bindings to the VulkanMemoryAllocator library
category: Graphics
maintainer: Ellie Hermaszewska <live.long.and.prosper@monoid.al>
github: expipiplus1/vulkan
extra-source-files:
- readme.md
- changelog.md
- package.yaml
- VulkanMemoryAllocator/include/vk_mem_alloc.h
library:
source-dirs:
- src
- src-manual
include-dirs:
VulkanMemoryAllocator/include
cxx-sources:
src/lib.cpp
dependencies:
- base <5
- vulkan >= 3.6 && < 3.28
- bytestring
- transformers
- vector
when:
- condition: flag(safe-foreign-calls)
cpp-options: -DSAFE_FOREIGN_CALLS
- condition: flag(vma-ndebug)
cxx-options: -DNDEBUG
- condition: flag(vma-recording)
cxx-options: -DVMA_RECORDING_ENABLED
- condition: flag(generic-instances)
cpp-options: -DGENERIC_INSTANCES
# Work around https://github.com/haskell/cabal/pull/7074
- condition: "impl(ghc >= 8.10)"
ghc-options:
- -optcxx -std=c++17
- condition: false
other-modules: Paths_VulkanMemoryAllocator
# C++ stdlib linking (mainly cribbed from text)
- condition: impl(ghc >= 9.4)
then:
dependencies: system-cxx-std-lib == 1.0
else:
when:
- condition: os(linux)
extra-libraries: stdc++
- condition: os(darwin) || os(freebsd)
extra-libraries: c++
- condition: os(openbsd)
extra-libraries: c++ c++abi pthread
- condition: os(windows)
when:
condition: impl(ghc < 9.3)
then:
extra-libraries: stdc++
else:
extra-libraries: c++ c++abi
ghc-options:
- -Wall
- -Wno-unticked-promoted-constructors
- -Wno-missing-pattern-synonym-signatures
- -Wno-unused-imports
- -Wno-missing-signatures
- -Wno-partial-type-signatures
cxx-options:
- -std=c++17
verbatim:
other-modules:
flags:
safe-foreign-calls:
description:
Do not mark foreign imports as 'unsafe'. This means that callbacks from
VulkanMemoryAllocator to Haskell will work. If you are using these then
make sure this flag is enabled.
default: no
manual: yes
generic-instances:
description:
Derive Generic instances for all structs. Disabled by default because of
code size and compile time impact.
default: no
manual: yes
vma-ndebug:
description:
Compile VulkanMemoryAllocator with NDEBUG to disable assertions.
default: no
manual: yes
vma-recording:
description:
Compile VulkanMemoryAllocator with VMA_RECORDING_ENABLED to enable
recording functionality.
default: no
manual: yes
default-extensions:
- AllowAmbiguousTypes
- CPP
- DataKinds
- DefaultSignatures
- DeriveAnyClass
- DeriveGeneric
- DerivingStrategies
- DuplicateRecordFields
- FlexibleContexts
- FlexibleInstances
- GADTs
- GeneralizedNewtypeDeriving
- InstanceSigs
- LambdaCase
- MagicHash
- NoMonomorphismRestriction
- OverloadedStrings
- PartialTypeSignatures
- PatternSynonyms
- PolyKinds
- QuantifiedConstraints
- RankNTypes
- RecordWildCards
- RoleAnnotations
- ScopedTypeVariables
- StandaloneDeriving
- Strict
- TypeApplications
- TypeFamilyDependencies
- TypeOperators
- TypeSynonymInstances
- UndecidableInstances
- ViewPatterns