packages feed

Box3D-0.1.0.0: Box3D.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:           Box3D
version:        0.1.0.0
synopsis:       Low-level bindings to the Box3D physics engine
description:    Low-level FFI bindings to Box3D, Erin Catto's 3D rigid-body physics engine.
                The engine's C sources (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, the exact engine
                revision 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/box3d_gen_shim.h
    cbits/box3d_shim.h
    upstream/include/box3d/base.h
    upstream/include/box3d/box3d.h
    upstream/include/box3d/collision.h
    upstream/include/box3d/config.h
    upstream/include/box3d/constants.h
    upstream/include/box3d/id.h
    upstream/include/box3d/math_functions.h
    upstream/include/box3d/types.h
    upstream/src/aabb.h
    upstream/src/algorithm.h
    upstream/src/arena_allocator.h
    upstream/src/bitset.h
    upstream/src/block_allocator.h
    upstream/src/body.h
    upstream/src/broad_phase.h
    upstream/src/compound.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/ctz.h
    upstream/src/hull.h
    upstream/src/id_pool.h
    upstream/src/island.h
    upstream/src/joint.h
    upstream/src/manifold.h
    upstream/src/math_internal.h
    upstream/src/name_cache.h
    upstream/src/parallel_for.h
    upstream/src/physics_world.h
    upstream/src/platform.h
    upstream/src/qsort.h
    upstream/src/rapidhash.h
    upstream/src/recording.h
    upstream/src/recording_replay.h
    upstream/src/scheduler.h
    upstream/src/sensor.h
    upstream/src/shape.h
    upstream/src/simd.h
    upstream/src/solver.h
    upstream/src/solver_set.h
    upstream/src/table.h
    upstream/src/verstable.h
    upstream/src/world_snapshot.h
    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:
      Box3D.Authoring
      Box3D.Base
      Box3D.Body
      Box3D.BoxMesh
      Box3D.Callbacks
      Box3D.Collision
      Box3D.Compound
      Box3D.Cone
      Box3D.Contact
      Box3D.Cylinder
      Box3D.DebugDraw
      Box3D.DebugShape
      Box3D.DistanceJoint
      Box3D.DynamicTree
      Box3D.Events
      Box3D.Extra
      Box3D.FilterJoint
      Box3D.Geometry
      Box3D.Grid
      Box3D.GridMesh
      Box3D.HeightField
      Box3D.HollowBoxMesh
      Box3D.Hull
      Box3D.Id
      Box3D.Internal
      Box3D.Internal.DrawClosure
      Box3D.Joint
      Box3D.Math
      Box3D.MathFunctions
      Box3D.MathTypes
      Box3D.Mesh
      Box3D.MotorJoint
      Box3D.Mover
      Box3D.ParallelJoint
      Box3D.PlatformMesh
      Box3D.Player
      Box3D.PrismaticJoint
      Box3D.Query
      Box3D.Recording
      Box3D.RecPlayer
      Box3D.RevoluteJoint
      Box3D.Rock
      Box3D.Shape
      Box3D.SphericalJoint
      Box3D.Tags
      Box3D.TorusMesh
      Box3D.UserData
      Box3D.Wave
      Box3D.WaveMesh
      Box3D.WeldJoint
      Box3D.WheelJoint
      Box3D.World
  other-modules:
      Paths_Box3D
  autogen-modules:
      Paths_Box3D
  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/box3d_shim.c
      cbits/box3d_gen_shim.c
      upstream/src/aabb.c
      upstream/src/arena_allocator.c
      upstream/src/bitset.c
      upstream/src/block_allocator.c
      upstream/src/body.c
      upstream/src/broad_phase.c
      upstream/src/capsule.c
      upstream/src/compound.c
      upstream/src/constraint_graph.c
      upstream/src/contact.c
      upstream/src/contact_solver.c
      upstream/src/convex_manifold.c
      upstream/src/core.c
      upstream/src/distance.c
      upstream/src/distance_joint.c
      upstream/src/dynamic_tree.c
      upstream/src/height_field.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/mesh.c
      upstream/src/mesh_contact.c
      upstream/src/motor_joint.c
      upstream/src/mover.c
      upstream/src/name_cache.c
      upstream/src/parallel_for.c
      upstream/src/parallel_joint.c
      upstream/src/physics_world.c
      upstream/src/prismatic_joint.c
      upstream/src/recording.c
      upstream/src/recording_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/solver.c
      upstream/src/solver_set.c
      upstream/src/sphere.c
      upstream/src/spherical_joint.c
      upstream/src/table.c
      upstream/src/timer.c
      upstream/src/triangle_manifold.c
      upstream/src/types.c
      upstream/src/weld_joint.c
      upstream/src/wheel_joint.c
      upstream/src/world_snapshot.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: -DBOX3D_DOUBLE_PRECISION

test-suite Box3D-test
  type: exitcode-stdio-1.0
  main-is: Spec.hs
  other-modules:
      Paths_Box3D
  autogen-modules:
      Paths_Box3D
  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:
      Box3D
    , base >=4.16 && <5
    , tasty
    , tasty-hunit
    , vector ==0.13.*
  default-language: GHC2021

benchmark Box3D-bench
  type: exitcode-stdio-1.0
  main-is: Bench.hs
  other-modules:
      Paths_Box3D
  autogen-modules:
      Paths_Box3D
  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:
      Box3D
    , base >=4.16 && <5
    , tasty-bench
    , vector ==0.13.*
  default-language: GHC2021