mirror of
https://github.com/Drezil/dear-imgui.hs.git
synced 2024-11-24 01:27:00 +00:00
426 lines
9.3 KiB
Plaintext
426 lines
9.3 KiB
Plaintext
cabal-version: 3.0
|
|
|
|
name: dear-imgui
|
|
version: 2.2.0
|
|
author: Oliver Charles
|
|
maintainer: ollie@ocharles.org.uk, aenor.realm@gmail.com
|
|
license: BSD-3-Clause
|
|
|
|
category: Graphics
|
|
synopsis: Haskell bindings for Dear ImGui.
|
|
description:
|
|
The package supports multiple rendering backends.
|
|
Set package flags according to your needs.
|
|
|
|
build-type: Simple
|
|
|
|
extra-source-files:
|
|
README.md,
|
|
ChangeLog.md,
|
|
imgui/*.h,
|
|
imgui/backends/*.h,
|
|
imgui/backends/*.mm,
|
|
imgui/imconfig.h,
|
|
imgui/LICENSE.txt
|
|
|
|
common exe-flags
|
|
if flag(debug)
|
|
if os(linux)
|
|
ghc-options: -Wall -g -rtsopts -dcore-lint -debug
|
|
cc-options: -g -O0 -fsanitize=address -fno-omit-frame-pointer
|
|
cxx-options: -g -O0 -fsanitize=address -fno-omit-frame-pointer -std=c++11
|
|
if os(darwin)
|
|
ghc-options: -Wall -g -rtsopts -dcore-lint -debug
|
|
cc-options: -g -O0 -fsanitize=address -fno-omit-frame-pointer
|
|
cxx-options: -g -O0 -fsanitize=address -fno-omit-frame-pointer -std=c++11
|
|
if os(windows)
|
|
ghc-options: -Wall -g -rtsopts -dcore-lint -debug
|
|
cc-options: -g -O0
|
|
cxx-options: -g -O0 -std=c++11
|
|
else
|
|
if os(linux)
|
|
ghc-options: -Wall -O2
|
|
cc-options: -O2
|
|
cxx-options: -std=c++11 -O2
|
|
if os(darwin)
|
|
ghc-options: -Wall -O2
|
|
cc-options: -O2
|
|
if os(windows)
|
|
ghc-options: -Wall -O2
|
|
cc-options: -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 opengl2
|
|
description:
|
|
Enable OpenGL 2 backend.
|
|
default:
|
|
False
|
|
manual:
|
|
True
|
|
|
|
flag opengl3
|
|
description:
|
|
Enable OpenGL 3 backend.
|
|
default:
|
|
True
|
|
manual:
|
|
True
|
|
|
|
flag vulkan
|
|
description:
|
|
Enable Vulkan backend.
|
|
default:
|
|
False
|
|
manual:
|
|
True
|
|
|
|
flag sdl
|
|
description:
|
|
Enable SDL backend.
|
|
default:
|
|
True
|
|
manual:
|
|
True
|
|
|
|
flag sdl-renderer
|
|
description:
|
|
Enable SDL Renderer backend (requires the SDL_RenderGeometry function available in SDL 2.0.18+).
|
|
The sdl configuration flag must also be enabled when using this flag.
|
|
default:
|
|
False
|
|
manual:
|
|
True
|
|
|
|
flag glfw
|
|
description:
|
|
Enable GLFW backend.
|
|
default:
|
|
False
|
|
manual:
|
|
True
|
|
|
|
flag examples
|
|
description:
|
|
Build executable examples.
|
|
default:
|
|
False
|
|
manual:
|
|
True
|
|
|
|
flag disable-obsolete
|
|
description:
|
|
Don't define obsolete functions/enums/behaviors. Consider enabling from time to time after updating to avoid using soon-to-be obsolete function/names.
|
|
default:
|
|
False
|
|
manual:
|
|
True
|
|
|
|
flag use-wchar32
|
|
description:
|
|
Use 32-bit for ImWchar (default is 16-bit) to support unicode planes 1-16. (e.g. point beyond 0xFFFF like emoticons, dingbats, symbols, shapes, ancient languages, etc...)
|
|
default:
|
|
True
|
|
manual:
|
|
True
|
|
|
|
flag use-ImDrawIdx32
|
|
description:
|
|
Use 32-bit vertex indices (default is 16-bit) is one way to allow large meshes with more than 64K vertices.
|
|
Your renderer backend will need to support it (most example renderer backends support both 16/32-bit indices).
|
|
Another way to allow large meshes while keeping 16-bit indices is to handle ImDrawCmd::VtxOffset in your renderer.
|
|
Read about ImGuiBackendFlags_RendererHasVtxOffset for details.
|
|
default:
|
|
True
|
|
manual:
|
|
True
|
|
|
|
common common
|
|
build-depends:
|
|
base
|
|
>= 4.12 && < 4.19
|
|
default-language:
|
|
Haskell2010
|
|
|
|
library
|
|
import: common
|
|
hs-source-dirs:
|
|
src
|
|
generator
|
|
exposed-modules:
|
|
DearImGui
|
|
DearImGui.FontAtlas
|
|
DearImGui.Internal.Text
|
|
DearImGui.Raw
|
|
DearImGui.Raw.DrawList
|
|
DearImGui.Raw.Font
|
|
DearImGui.Raw.Font.Config
|
|
DearImGui.Raw.Font.GlyphRanges
|
|
DearImGui.Raw.IO
|
|
DearImGui.Raw.ListClipper
|
|
DearImGui.Raw.Context
|
|
other-modules:
|
|
DearImGui.Enums
|
|
DearImGui.Structs
|
|
DearImGui.Generator
|
|
DearImGui.Generator.Parser
|
|
DearImGui.Generator.Tokeniser
|
|
DearImGui.Generator.Types
|
|
ghc-options:
|
|
-static -dynamic-too
|
|
-- create both libHSdear-imgui... .a and .so
|
|
cxx-options: -std=c++11
|
|
cxx-sources:
|
|
imgui/imgui.cpp
|
|
imgui/imgui_demo.cpp
|
|
imgui/imgui_draw.cpp
|
|
imgui/imgui_tables.cpp
|
|
imgui/imgui_widgets.cpp
|
|
install-includes:
|
|
imgui.h
|
|
imgui_internal.h
|
|
imstb_rectpack.h
|
|
imstb_textedit.h
|
|
imstb_truetype.h
|
|
if impl(ghc >= 9.4)
|
|
build-depends: system-cxx-std-lib
|
|
else
|
|
extra-libraries: stdc++
|
|
include-dirs:
|
|
imgui
|
|
build-depends:
|
|
containers
|
|
, managed
|
|
, inline-c
|
|
, inline-c-cpp
|
|
, StateVar
|
|
, unliftio
|
|
, vector
|
|
-- for the generator:
|
|
, template-haskell
|
|
>= 2.15 && < 2.19
|
|
, containers
|
|
^>= 0.6.2.1
|
|
, directory
|
|
>= 1.3 && < 1.4
|
|
, filepath
|
|
>= 1.4 && < 1.5
|
|
, inline-c
|
|
>= 0.9.0.0 && < 0.10
|
|
, megaparsec
|
|
>= 9.0 && < 9.3
|
|
, parser-combinators
|
|
>= 1.2.0 && < 1.4
|
|
, scientific
|
|
>= 0.3.6.2 && < 0.3.8
|
|
, text
|
|
>= 1.2.4 && < 2.1
|
|
, th-lift
|
|
>= 0.7 && < 0.9
|
|
, transformers
|
|
>= 0.5.6 && < 0.6
|
|
, unordered-containers
|
|
>= 0.2.11 && < 0.3
|
|
|
|
if os(darwin)
|
|
ghc-options:
|
|
-optcxx-std=c++11
|
|
|
|
if flag(disable-obsolete)
|
|
cxx-options: -DIMGUI_DISABLE_OBSOLETE_FUNCTIONS
|
|
|
|
if flag(use-wchar32)
|
|
cxx-options: -DIMGUI_USE_WCHAR32
|
|
cpp-options: -DIMGUI_USE_WCHAR32
|
|
|
|
if flag(use-ImDrawIdx32)
|
|
cxx-options: "-DImDrawIdx=unsigned int"
|
|
cpp-options: "-DImDrawIdx=unsigned int"
|
|
|
|
if flag(opengl2)
|
|
exposed-modules:
|
|
DearImGui.OpenGL2
|
|
cxx-sources:
|
|
imgui/backends/imgui_impl_opengl2.cpp
|
|
build-depends:
|
|
gl
|
|
|
|
if flag(opengl3)
|
|
exposed-modules:
|
|
DearImGui.OpenGL3
|
|
cxx-sources:
|
|
imgui/backends/imgui_impl_opengl3.cpp
|
|
pkgconfig-depends:
|
|
glew
|
|
|
|
if flag(vulkan)
|
|
exposed-modules:
|
|
DearImGui.Vulkan
|
|
other-modules:
|
|
DearImGui.Vulkan.Types
|
|
build-depends:
|
|
vulkan
|
|
, unliftio
|
|
cxx-sources:
|
|
imgui/backends/imgui_impl_vulkan.cpp
|
|
if os(windows)
|
|
extra-libraries:
|
|
vulkan-1
|
|
else
|
|
if os(darwin)
|
|
extra-libraries:
|
|
vulkan
|
|
else
|
|
pkgconfig-depends:
|
|
vulkan
|
|
|
|
if flag(sdl)
|
|
exposed-modules:
|
|
DearImGui.SDL
|
|
build-depends:
|
|
sdl2
|
|
cxx-sources:
|
|
imgui/backends/imgui_impl_sdl2.cpp
|
|
|
|
if os(windows) || os(darwin)
|
|
extra-libraries:
|
|
SDL2
|
|
else
|
|
pkgconfig-depends:
|
|
sdl2
|
|
|
|
if flag(opengl2) || flag(opengl3)
|
|
exposed-modules:
|
|
DearImGui.SDL.OpenGL
|
|
|
|
if flag(vulkan)
|
|
exposed-modules:
|
|
DearImGui.SDL.Vulkan
|
|
|
|
if flag(sdl-renderer)
|
|
exposed-modules:
|
|
DearImGui.SDL.Renderer
|
|
cxx-sources:
|
|
imgui/backends/imgui_impl_sdlrenderer2.cpp
|
|
|
|
if flag(glfw)
|
|
exposed-modules:
|
|
DearImGui.GLFW
|
|
build-depends:
|
|
GLFW-b,
|
|
bindings-GLFW
|
|
cxx-sources:
|
|
imgui/backends/imgui_impl_glfw.cpp
|
|
|
|
if os(linux) || os(darwin)
|
|
pkgconfig-depends:
|
|
glfw3
|
|
|
|
if flag(opengl2) || flag(opengl3)
|
|
exposed-modules:
|
|
DearImGui.GLFW.OpenGL
|
|
|
|
if flag(vulkan)
|
|
exposed-modules:
|
|
DearImGui.GLFW.Vulkan
|
|
|
|
executable test
|
|
import: common, exe-flags
|
|
main-is: Main.hs
|
|
default-language: Haskell2010
|
|
if (!flag(examples) || !flag(sdl) || !flag(opengl2))
|
|
buildable: False
|
|
else
|
|
build-depends: base, sdl2, gl, dear-imgui, vector
|
|
|
|
executable glfw
|
|
import: common, exe-flags
|
|
main-is: Main.hs
|
|
hs-source-dirs: examples/glfw
|
|
default-language: Haskell2010
|
|
if (!flag(examples) || !flag(glfw) || !(flag(opengl3) || flag(opengl2)))
|
|
buildable: False
|
|
else
|
|
build-depends: base, GLFW-b, gl, dear-imgui, managed, text
|
|
|
|
executable readme
|
|
import: common, exe-flags
|
|
main-is: Readme.hs
|
|
hs-source-dirs: examples
|
|
build-depends: sdl2, gl, dear-imgui, managed
|
|
if (!flag(examples) || !flag(sdl) || !flag(opengl2))
|
|
buildable: False
|
|
|
|
executable fonts
|
|
import: common, exe-flags
|
|
main-is: Main.hs
|
|
hs-source-dirs: examples/fonts
|
|
build-depends: sdl2, gl, dear-imgui, managed
|
|
if (!flag(examples) || !flag(sdl) || !flag(opengl2))
|
|
buildable: False
|
|
|
|
executable image
|
|
import: common, exe-flags
|
|
main-is: Image.hs
|
|
hs-source-dirs: examples/sdl
|
|
build-depends: sdl2, gl, dear-imgui, managed, vector
|
|
if (!flag(examples) || !flag(sdl) || !flag(opengl3))
|
|
buildable: False
|
|
|
|
executable sdlrenderer
|
|
import: common, exe-flags
|
|
main-is: Renderer.hs
|
|
hs-source-dirs: examples/sdl
|
|
build-depends: sdl2, dear-imgui, managed, text
|
|
if (!flag(examples) || !flag(sdl) || !flag(sdl-renderer))
|
|
buildable: False
|
|
|
|
executable vulkan
|
|
import: common, exe-flags
|
|
main-is: Main.hs
|
|
other-modules: Attachments, Backend, Input, Util
|
|
hs-source-dirs: examples/vulkan
|
|
default-language: Haskell2010
|
|
if (!flag(examples) || !flag(sdl) || !flag(vulkan))
|
|
buildable: False
|
|
else
|
|
build-depends:
|
|
dear-imgui
|
|
, bytestring
|
|
>= 0.10.10.0 && < 0.13
|
|
, containers
|
|
>= 0.6.2.1 && < 0.7
|
|
, logging-effect
|
|
>= 1.3.12 && < 1.5
|
|
, resourcet
|
|
>= 1.2.4.2 && < 1.3
|
|
, sdl2
|
|
>= 2.5.3.0 && < 2.6
|
|
, text
|
|
>= 1.2.4 && < 2.1
|
|
, transformers
|
|
>= 0.5.6 && < 0.7
|
|
, unliftio
|
|
>= 0.2.13 && < 0.3
|
|
, unliftio-core
|
|
>= 0.2.0.1 && < 0.3
|
|
, vector
|
|
>= 0.12.1.2 && < 0.14
|
|
, vulkan
|
|
>= 3.12
|
|
, vulkan-utils
|
|
>= 0.5
|
|
, VulkanMemoryAllocator
|
|
>= 0.7.1
|
|
, JuicyPixels
|