packages feed

Box2D-0.1.0.0: Box2D.cabal

cabal-version: 2.2

-- This file has been generated from package.yaml by hpack version 0.39.6.
--
-- see: https://github.com/sol/hpack

name:           Box2D
version:        0.1.0.0
synopsis:       Low-level bindings to the Box2D physics engine
description:    Low-level FFI bindings to Box2D, Erin Catto's 2D rigid-body physics engine.
                The engine's C sources (v3.2.0, MIT licensed) are bundled and compiled with
                the package, so no system library is needed.
                .
                Each module follows one part of the C API, and each wrapper's documentation
                names the function it binds. See the README for an example and the rules on
                callbacks and object lifetimes.
category:       Physics
author:         IC Rainbow
maintainer:     aenor.realm@gmail.com
copyright:      2026 IC Rainbow
license:        BSD-3-Clause AND MIT
license-files:  LICENSE,
                upstream/LICENSE
build-type:     Simple
tested-with:
    GHC == 9.10.3
extra-source-files:
    cbits/box2d_gen_shim.h
    cbits/box2d_shim.h
    upstream/include/box2d/base.h
    upstream/include/box2d/box2d.h
    upstream/include/box2d/collision.h
    upstream/include/box2d/config.h
    upstream/include/box2d/constants.h
    upstream/include/box2d/id.h
    upstream/include/box2d/math_functions.h
    upstream/include/box2d/math_types.h
    upstream/include/box2d/types.h
    upstream/src/aabb.h
    upstream/src/arena_allocator.h
    upstream/src/bitset.h
    upstream/src/body.h
    upstream/src/broad_phase.h
    upstream/src/constraint_graph.h
    upstream/src/contact.h
    upstream/src/contact_solver.h
    upstream/src/container.h
    upstream/src/core.h
    upstream/src/dynamic_tree.h
    upstream/src/id_pool.h
    upstream/src/island.h
    upstream/src/joint.h
    upstream/src/parallel_for.h
    upstream/src/physics_world.h
    upstream/src/platform.h
    upstream/src/recording.h
    upstream/src/replay.h
    upstream/src/scheduler.h
    upstream/src/sensor.h
    upstream/src/shape.h
    upstream/src/simd.h
    upstream/src/snapshot.h
    upstream/src/solver.h
    upstream/src/solver_set.h
    upstream/src/table.h
    upstream/src/contact_solver_wide.inl
    upstream/src/recording_ops.inl
extra-doc-files:
    README.md
    CHANGELOG.md

source-repository head
  type: git
  location: https://gitlab.com/dpwiz/box-nd

flag assertions
  description: Keep the engine's internal assertions. A failed one stops the process with a trap.
  manual: True
  default: False

flag double-precision
  description: Store world positions as doubles (the engine's large world mode). Every package in a build shares this setting.
  manual: True
  default: False

library
  exposed-modules:
      Box2D.Base
      Box2D.Body
      Box2D.Callbacks
      Box2D.Chain
      Box2D.Collision
      Box2D.Contact
      Box2D.DebugDraw
      Box2D.Distance
      Box2D.DistanceJoint
      Box2D.DynamicTree
      Box2D.Events
      Box2D.Extra
      Box2D.FilterJoint
      Box2D.Geometry
      Box2D.Id
      Box2D.Internal
      Box2D.Internal.DrawClosure
      Box2D.Joint
      Box2D.MathFunctions
      Box2D.MathTypes
      Box2D.MotorJoint
      Box2D.Mover
      Box2D.MoverJoint
      Box2D.PogoJoint
      Box2D.PrismaticJoint
      Box2D.Recording
      Box2D.Replay
      Box2D.RevoluteJoint
      Box2D.Shape
      Box2D.Tags
      Box2D.UserData
      Box2D.WeldJoint
      Box2D.WheelJoint
      Box2D.World
  other-modules:
      Paths_Box2D
  autogen-modules:
      Paths_Box2D
  hs-source-dirs:
      src
  default-extensions:
      StrictData
      DuplicateRecordFields
      NoFieldSelectors
      OverloadedRecordDot
  ghc-options: -Wall -Wcompat -Widentities -Wincomplete-record-updates -Wincomplete-uni-patterns -Wmissing-export-lists -Wmissing-home-modules -Wpartial-fields -Wredundant-constraints
  cc-options: -std=c17
  include-dirs:
      cbits
      upstream/include
      upstream/src
  c-sources:
      cbits/box2d_shim.c
      cbits/box2d_gen_shim.c
      upstream/src/aabb.c
      upstream/src/arena_allocator.c
      upstream/src/bitset.c
      upstream/src/body.c
      upstream/src/broad_phase.c
      upstream/src/constraint_graph.c
      upstream/src/contact.c
      upstream/src/contact_solver.c
      upstream/src/contact_solver_w4.c
      upstream/src/contact_solver_w8.c
      upstream/src/core.c
      upstream/src/distance.c
      upstream/src/distance_joint.c
      upstream/src/dynamic_tree.c
      upstream/src/geometry.c
      upstream/src/hull.c
      upstream/src/id_pool.c
      upstream/src/island.c
      upstream/src/joint.c
      upstream/src/manifold.c
      upstream/src/math_functions.c
      upstream/src/motor_joint.c
      upstream/src/mover.c
      upstream/src/mover_joint.c
      upstream/src/parallel_for.c
      upstream/src/physics_world.c
      upstream/src/pogo_joint.c
      upstream/src/prismatic_joint.c
      upstream/src/recording.c
      upstream/src/replay.c
      upstream/src/revolute_joint.c
      upstream/src/scheduler.c
      upstream/src/sensor.c
      upstream/src/shape.c
      upstream/src/simd.c
      upstream/src/snapshot.c
      upstream/src/solver.c
      upstream/src/solver_set.c
      upstream/src/table.c
      upstream/src/timer.c
      upstream/src/types.c
      upstream/src/weld_joint.c
      upstream/src/wheel_joint.c
  build-depends:
      base >=4.16 && <5
    , vector ==0.13.*
  default-language: GHC2021
  if !flag(assertions)
    cc-options: -DNDEBUG
  if flag(double-precision)
    cc-options: -DBOX2D_DOUBLE_PRECISION

test-suite Box2D-test
  type: exitcode-stdio-1.0
  main-is: Spec.hs
  other-modules:
      Paths_Box2D
  autogen-modules:
      Paths_Box2D
  hs-source-dirs:
      test
  default-extensions:
      StrictData
      DuplicateRecordFields
      NoFieldSelectors
      OverloadedRecordDot
  ghc-options: -Wall -Wcompat -Widentities -Wincomplete-record-updates -Wincomplete-uni-patterns -Wmissing-export-lists -Wmissing-home-modules -Wpartial-fields -Wredundant-constraints -threaded -rtsopts -with-rtsopts=-N
  build-depends:
      Box2D
    , base >=4.16 && <5
    , tasty
    , tasty-hunit
    , vector ==0.13.*
  default-language: GHC2021

benchmark Box2D-bench
  type: exitcode-stdio-1.0
  main-is: Bench.hs
  other-modules:
      Paths_Box2D
  autogen-modules:
      Paths_Box2D
  hs-source-dirs:
      bench
  default-extensions:
      StrictData
      DuplicateRecordFields
      NoFieldSelectors
      OverloadedRecordDot
  ghc-options: -Wall -Wcompat -Widentities -Wincomplete-record-updates -Wincomplete-uni-patterns -Wmissing-export-lists -Wmissing-home-modules -Wpartial-fields -Wredundant-constraints -O2
  build-depends:
      Box2D
    , base >=4.16 && <5
    , tasty-bench
    , vector ==0.13.*
  default-language: GHC2021