packages feed

h-raylib-4.5.2.0: h-raylib.cabal

cabal-version:      2.4
name:               h-raylib
version:            4.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:    CONTRIBUTING.md README.md ROADMAP.md
extra-source-files:
  CHANGELOG.md
  lib/*.c
  lib/*.h
  lib/rglfw.m
  raylib/src/*.c
  raylib/src/*.h
  raylib/src/external/*.h
  raylib/src/external/*.c
  raylib/src/external/glfw/deps/*.c
  raylib/src/external/glfw/deps/*.h
  raylib/src/external/glfw/deps/glad/*.h
  raylib/src/external/glfw/deps/mingw/*.h
  raylib/src/external/glfw/deps/vs2008/*.h
  raylib/src/external/glfw/include/GLFW/*.h
  raylib/src/external/glfw/src/*.c
  raylib/src/external/glfw/src/*.h
  raylib/src/external/glfw/src/*.m

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 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

common example-options
  default-language: Haskell2010

  if !flag(examples)
    buildable: False

  else
    build-depends:
      , base
      , h-raylib

executable basic-window
  import:         example-options
  hs-source-dirs: examples/basic-window/src
  main-is:        Main.hs

executable basic-images
  import:         example-options
  hs-source-dirs: examples/basic-images/src
  main-is:        Main.hs

executable basic-models
  import:         example-options
  hs-source-dirs: examples/basic-models/src
  main-is:        Main.hs

executable basic-audio
  import:         example-options
  hs-source-dirs: examples/basic-audio/src
  main-is:        Main.hs

executable custom-font-text
  import:         example-options
  hs-source-dirs: examples/custom-font-text/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

library
  exposed-modules:
    Raylib.Audio
    Raylib.Colors
    Raylib.Core
    Raylib.Models
    Raylib.Shapes
    Raylib.Text
    Raylib.Textures
    Raylib.Types

  other-modules:
    Raylib.Native
    Raylib.Util
    Raylib.Internal

  build-depends:    base >=4.0 && <4.17.0
  hs-source-dirs:   src
  default-language: Haskell2010
  other-extensions: ForeignFunctionInterface, DeriveAnyClass

  if (flag(platform-windows) || (flag(detect-platform) && os(windows)))
    if flag(mingw-cross)
      extra-libraries:
        opengl32
        gdi32
        winmm
        shell32
        gcc
        gcc_eh

    else
      extra-libraries:
        opengl32
        gdi32
        winmm
        shell32
        gcc_eh

    cc-options: -DPLATFORM_DESKTOP -D_ftelli64=ftello64 -D_fseeki64=fseeko64

  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-unused-result -DPLATFORM_DESKTOP

  elif (flag(platform-mac) || (flag(detect-platform) && os(osx)))
    frameworks: OpenGL Cocoa IOKit CoreVideo CoreAudio CoreFoundation
    cc-options: -DPLATFORM_DESKTOP

  elif (flag(platform-bsd) || (flag(detect-platform) && ((os(freebsd) || os(netbsd)) || os(openbsd))))
    extra-libraries:
      GL
      pthread

    cc-options:      -DPLATFORM_DESKTOP

  else

  -- Unsupported OS, do nothing. If you can get it working on an
  -- OS that isn't on here, please add it here.
  if (flag(platform-mac) || (flag(detect-platform) && os(osx)))
    -- Use rgflw.m instead of .c on Mac to force objective-c
    c-sources:
      lib/rl_bindings.c
      lib/rglfw.m
      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

  else
    c-sources:
      lib/rl_bindings.c
      lib/rl_internal.c
      raylib/src/raudio.c
      raylib/src/rcore.c
      raylib/src/rglfw.c
      raylib/src/rmodels.c
      raylib/src/rshapes.c
      raylib/src/rtext.c
      raylib/src/rtextures.c
      raylib/src/utils.c

  include-dirs:     lib raylib/src raylib/src/external/glfw/include