h-raylib-5.5.2.0: h-raylib.cabal
cabal-version: 2.4
name: h-raylib
version: 5.5.2.0
synopsis: Raylib bindings for Haskell
category: graphics
description:
This library contains Haskell bindings to the Raylib library. It supports Windows, Mac, Linux, and BSD.
bug-reports: https://github.com/Anut-py/h-raylib/issues
license: Apache-2.0
license-file: LICENSE
author: Anut
maintainer: Anut
extra-doc-files:
CHANGELOG.md
CONTRIBUTING.md
DOCUMENTATION.md
README.md
-- Requires >= 9.6.5 on Mac because this bug fix is required: https://gitlab.haskell.org/ghc/ghc/-/merge_requests/12079
-- Works with >= 9.2.8 on Windows
tested-with: GHC >= 9.6.5
extra-source-files:
default.nix
flake.nix
lib/**/*.c
lib/**/*.h
lib/**/*.m
raygui/src/*.h
raygui/styles/**/*.h
raylib/**/*.c
raylib/**/*.h
raylib/**/*.m
data-files:
examples/**/*.frag
examples/**/*.mtl
examples/**/*.obj
examples/**/*.png
examples/**/*.ttf
examples/**/*.txt
examples/**/*.vert
examples/**/*.xm
source-repository head
type: git
location: git://github.com/Anut-py/h-raylib.git
flag detect-platform
description:
Detect platform and automatically add platform-specific configuration
default: True
manual: True
flag platform-windows
description: Build for Windows
default: False
manual: True
flag platform-mac
description: Build for macOS/OSX
default: False
manual: True
flag platform-linux
description: Build for Linux
default: False
manual: True
flag platform-bsd
description: Build for FreeBSD, OpenBSD, or NetBSD
default: False
manual: True
flag platform-nixos
description: Build for Nix (use external GLFW)
default: False
manual: True
flag platform-web
description: Build for web
default: False
manual: True
flag mingw-cross
description:
Cross-compiling for mingw (used in combination with Windows)
default: False
manual: True
flag examples
description: Build the example projects
default: False
manual: True
flag ghci
description: Used when running the program in GHCi
default: False
manual: True
common example-options
default-language: Haskell2010
if !flag(examples)
buildable: False
else
build-depends:
, base
, h-raylib
other-modules: Paths_h_raylib
autogen-modules: Paths_h_raylib
other-extensions:
BangPatterns
TemplateHaskell
ghc-options: -Wall
if flag(platform-web)
ghc-options:
-no-hs-main -optl-mexec-model=reactor
"-optl-Wl,--export=hs_init,--import-memory,--shared-memory,--max-memory=67108864,--no-check-features"
"-optl-Wl,--export=startup,--export=mainLoop,--export=shouldClose,--export=teardown"
-- core
executable basic-window
import: example-options
hs-source-dirs: examples/basic-window/src
main-is: Main.hs
executable basic-callbacks
import: example-options
hs-source-dirs: examples/basic-callbacks/src
main-is: Main.hs
executable basic-automation-events
import: example-options
hs-source-dirs: examples/basic-automation-events/src
main-is: Main.hs
executable first-person-camera
import: example-options
hs-source-dirs: examples/first-person-camera/src
main-is: Main.hs
executable camera-ray-collision
import: example-options
hs-source-dirs: examples/camera-ray-collision/src
main-is: Main.hs
-- textures
executable basic-images
import: example-options
hs-source-dirs: examples/basic-images/src
main-is: Main.hs
executable bunnymark
import: example-options
hs-source-dirs: examples/bunnymark/src
main-is: Main.hs
-- text
executable custom-font-text
import: example-options
hs-source-dirs: examples/custom-font-text/src
main-is: Main.hs
-- models
executable basic-models
import: example-options
hs-source-dirs: examples/basic-models/src
main-is: Main.hs
-- shaders
executable basic-shaders
import: example-options
hs-source-dirs: examples/basic-shaders/src
main-is: Main.hs
executable postprocessing-effects
import: example-options
hs-source-dirs: examples/postprocessing-effects/src
main-is: Main.hs
-- audio
executable basic-audio
import: example-options
hs-source-dirs: examples/basic-audio/src
main-is: Main.hs
-- rlgl
executable basic-rlgl
import: example-options
hs-source-dirs: examples/basic-rlgl/src
main-is: Main.hs
-- raygui
executable raygui-suite
import: example-options
hs-source-dirs: examples/raygui-suite/src
main-is: Main.hs
library
exposed-modules:
Raylib.Core
Raylib.Core.Audio
Raylib.Core.Camera
Raylib.Core.Models
Raylib.Core.Shapes
Raylib.Core.Text
Raylib.Core.Textures
Raylib.Internal
Raylib.Internal.Foreign
Raylib.Types
Raylib.Types.Core
Raylib.Types.Core.Audio
Raylib.Types.Core.Camera
Raylib.Types.Core.Models
Raylib.Types.Core.Text
Raylib.Types.Core.Textures
Raylib.Types.Util.GUI
Raylib.Types.Util.RLGL
Raylib.Util
Raylib.Util.Camera
Raylib.Util.Colors
Raylib.Util.GUI
Raylib.Util.GUI.Styles
Raylib.Util.Lenses
Raylib.Util.Math
Raylib.Util.RLGL
other-modules:
Raylib.Internal.TH
Raylib.Internal.Web.Native
Raylib.Internal.Web.Processable
build-depends:
, base >=4.0 && <4.21
, bytestring >=0.11.0 && <0.13
, containers >=0.6.0 && <0.7.0
, exceptions >=0.10.4 && <0.10.8
, lens >=4.0 && <5.2.4
, linear >=1.22 && <1.23
, template-haskell >=2.16.0.0 && <2.22.0.0
, text >=2.0 && <2.2
hs-source-dirs: src
default-language: Haskell2010
other-extensions:
CPP
ConstrainedClassMethods
DeriveAnyClass
FlexibleInstances
ForeignFunctionInterface
PatternSynonyms
ScopedTypeVariables
TemplateHaskell
TemplateHaskellQuotes
ghc-options: -Wall
if (flag(platform-windows) || (flag(detect-platform) && os(windows)))
if flag(mingw-cross)
extra-libraries:
opengl32
gdi32
winmm
shell32
gcc
if impl(ghc <9.4.1)
extra-libraries: gcc_eh
else
extra-libraries:
opengl32
gdi32
winmm
shell32
if impl(ghc <9.4.1)
extra-libraries: gcc_eh
elif (flag(platform-linux) || (flag(detect-platform) && os(linux)))
extra-libraries:
GL
c
m
pthread
dl
rt
X11
Xinerama
Xcursor
Xrandr
Xi
Xext
cc-options:
-Wno-implicit-function-declaration -Wno-unused-result -D_GLFW_X11
elif (flag(platform-mac) || (flag(detect-platform) && os(osx)))
frameworks: OpenGL Cocoa IOKit CoreVideo CoreAudio CoreFoundation
elif (flag(platform-bsd) || (flag(detect-platform) && ((os(freebsd) || os(netbsd)) || os(openbsd))))
extra-libraries:
GL
pthread
else
-- Unsupported OS, do nothing. If you can get it working on an
-- OS that isn't listed here, please add it here.
if flag(platform-nixos)
extra-libraries: raylib
include-dirs: lib
if flag(platform-web)
cpp-options: -DWEB_FFI
c-sources: lib/web.c
else
cc-options:
-DPLATFORM_DESKTOP_GLFW -Wno-int-to-void-pointer-cast
c-sources:
lib/rgui_bindings.c
lib/rl_bindings.c
lib/rl_internal.c
lib/rlgl_bindings.c
if !flag(platform-nixos)
include-dirs:
raylib/src raylib/src/external/glfw/src
raylib/src/external/glfw/include raygui/src raygui/styles/amber
raygui/styles/ashes raygui/styles/bluish raygui/styles/candy
raygui/styles/cherry raygui/styles/cyber raygui/styles/dark
raygui/styles/enefete raygui/styles/jungle raygui/styles/lavanda
raygui/styles/sunny raygui/styles/terminal
c-sources:
raylib/src/raudio.c
raylib/src/rcore.c
raylib/src/rmodels.c
raylib/src/rshapes.c
raylib/src/rtext.c
raylib/src/rtextures.c
raylib/src/utils.c
if (flag(platform-mac) || (flag(detect-platform) && os(osx)))
-- Use rgflw.m instead of .c on Mac to force objective-c
c-sources: lib/rglfw.m
elif (flag(ghci) && (flag(platform-windows) || (flag(detect-platform) && os(windows))))
c-sources: lib/glfw_patch/rglfw_patch.c
else
c-sources: raylib/src/rglfw.c
if flag(ghci)
cpp-options: -DGHCI