packages feed

dear-imgui-3.0.0: dear-imgui.cabal

cabal-version: 3.0

name: dear-imgui
version: 3.0.0
author: Oliver Charles
maintainer: ollie@ocharles.org.uk, aenor.realm@gmail.com
license: BSD-3-Clause
license-file: LICENSE

category: Graphics
synopsis: Haskell bindings for Dear ImGui.
description:
  High-level layer over the generated dear-imgui-raw bindings.
  Platform and renderer backends are provided by the dear-imgui-impl-<backend> packages.

build-type: Simple
extra-doc-files:
  README.md,
  ChangeLog.md

common exe-flags
  if flag(debug)
    ghc-options: -Wall -g -rtsopts -dcore-lint -debug
  else
    ghc-options: -Wall -O2

source-repository head
  type: git
  location: https://github.com/haskell-game/dear-imgui.hs

flag debug
  description:
    Enable debug mode.
  default:
    False
  manual:
    True

flag examples
  description:
    Build executable examples.
  default:
    False
  manual:
    True

common common
  build-depends:
      base
        >= 4.18 && < 5
  default-language:
      Haskell2010

library
  import: common
  hs-source-dirs:
    src
  exposed-modules:
    DearImGui
    DearImGui.Enums
    DearImGui.FontAtlas
    DearImGui.Internal.Text
    DearImGui.Structs
  build-depends:
      dear-imgui-raw
        ^>= 1.0
    , managed
    , StateVar
    , unliftio
    , vector
    , text

executable test
  import: common, exe-flags
  main-is: Main.hs
  if !flag(examples)
    buildable: False
  else
    build-depends:
        sdl2
      , gl
      , dear-imgui
      , dear-imgui-raw
      , dear-imgui-impl-sdl2
      , dear-imgui-impl-opengl3
      , vector

executable glfw
  import: common, exe-flags
  main-is: Main.hs
  hs-source-dirs: examples/glfw
  if !flag(examples)
    buildable: False
  else
    build-depends:
        GLFW-b
      , gl
      , dear-imgui
      , dear-imgui-raw
      , dear-imgui-impl-glfw
      , dear-imgui-impl-opengl2
      , managed
      , text

executable readme
  import: common, exe-flags
  main-is: Readme.hs
  hs-source-dirs: examples
  if !flag(examples)
    buildable: False
  else
    build-depends:
        sdl2
      , gl
      , dear-imgui
      , dear-imgui-impl-sdl2
      , dear-imgui-impl-opengl3
      , managed

executable fonts
  import: common, exe-flags
  main-is: Main.hs
  hs-source-dirs: examples/fonts
  if !flag(examples)
    buildable: False
  else
    build-depends:
        sdl2
      , gl
      , dear-imgui
      , dear-imgui-impl-sdl2
      , dear-imgui-impl-opengl2
      , managed

executable image
  import: common, exe-flags
  main-is: Image.hs
  hs-source-dirs: examples/sdl
  if !flag(examples)
    buildable: False
  else
    build-depends:
        sdl2
      , gl
      , dear-imgui
      , dear-imgui-raw
      , dear-imgui-impl-sdl2
      , dear-imgui-impl-opengl3
      , managed
      , vector

executable sdlrenderer
  import: common, exe-flags
  main-is: Renderer.hs
  hs-source-dirs: examples/sdl
  if !flag(examples)
    buildable: False
  else
    build-depends:
        sdl2
      , dear-imgui
      , dear-imgui-impl-sdl2
      , dear-imgui-impl-sdlrenderer2
      , managed
      , text

executable vulkan
  import: common, exe-flags
  main-is: Main.hs
  hs-source-dirs: examples/vulkan
  if !flag(examples)
    buildable: False
  else
    build-depends:
        dear-imgui
      , dear-imgui-raw
      , dear-imgui-impl-glfw
      , dear-imgui-impl-vulkan
      , GLFW-b
      , JuicyPixels
      , resourcet
          >= 1.2.4.2 && < 1.4
      , vector
         >= 0.12.1.2 && < 0.14
      , vulkan
         >= 3.27
      , vulkan-init-glfw
         >= 0.1
      , vulkan-utils
         >= 0.5.11
      , VulkanMemoryAllocator
         >= 0.11