packages feed

hs-tango-1.0.0: hs-tango.cabal

cabal-version:      3.6
name:               hs-tango
version:            1.0.0
synopsis:           Bindings to the Tango Controls system
description:
  Haskell bindings for Tango, part of the Tango Distributed Control System toolkit. Some general notes about this project:

  * There are raw C bindings inside the 'Tango.Raw' package. You shouldn't have to use these, but they might be a fallback if you need something very specific.
  * C types are mapped to sized Haskell types. For example, an attribute of type "Short" will be mapped to the @Int16@ type. The names of the value constructors will be called ...Short, still, to have some symmetry with the Tango user interfaces.
  * The implementation regarding some obscure types is lackluster: "encoded", "long string array" and "double string array" for example. Patches welcome!

  If you want to connect to some Tango devices, head over to 'Tango.Client', where you'll also find some examples.
homepage:           https://github.com/pmiddend/hs-tango
bug-reports:        https://github.com/pmiddend/hs-tango/issues
license:            MIT
license-file:       LICENSE
author:             DESY
maintainer:         philipp.middendorf@desy.de
copyright:          2024 Philipp Middendorf
category:           Bindings, Client, Distributed Systems, FFI, Foreign, Hardware, Science
build-type:         Simple
extra-doc-files:    Changelog
                  , README.org
extra-source-files: c_tango/src/c_tango_attribute.cpp
                  , c_tango/src/c_tango_command.cpp
                  , c_tango/src/c_tango_dbase.cpp
                  , c_tango/src/c_tango_proxy.cpp
                  , c_tango/src/c_tango.h

common warnings
    ghc-options: -Weverything -Wno-missing-safe-haskell-mode -Wno-unsafe -Wno-missing-deriving-strategies -Wno-all-missed-specialisations -Wno-monomorphism-restriction -Wno-safe -Wno-missing-local-signatures -Wno-prepositive-qualified-module -Wno-missing-kind-signatures -Wno-missed-specializations

source-repository head
  type: git
  location: https://github.com/pmiddend/hs-tango

    
library
    import:              warnings
    exposed-modules:     Tango.Raw.Common
                       , Tango.Client
    build-depends:       base >= 4.17.0 && < 5,
                         derive-storable >= 0.3.1 && < 0.4,
                         text >= 2.0.2 && < 3,
                         unliftio >= 0.2.25 && < 0.3
    hs-source-dirs:    lib
    ghc-options:       -threaded
    include-dirs:      c_tango/src
    hsc2hs-options:    -k --define=CABAL_BINDGEN=1
    pkgconfig-depends: tango
    default-language:  Haskell2010
    cxx-sources:       c_tango/src/c_tango_attribute.cpp
                     , c_tango/src/c_tango_command.cpp
                     , c_tango/src/c_tango_dbase.cpp
                     , c_tango/src/c_tango_proxy.cpp
    -- copied blindly from https://github.com/joe-warren/opencascade-hs/blob/5c087f893712585703eb8bb0ce017b6fa2a4b984/opencascade-hs/opencascade-hs.cabal
    other-modules:     Paths_hs_tango
                     -- This one seems to be giving problems for hackage: Hackage does not yet allow uploads of packages with autogenerated module PackageInfo_*
                     -- , PackageInfo_hs_tango
    -- copied blindly from https://github.com/joe-warren/opencascade-hs/blob/5c087f893712585703eb8bb0ce017b6fa2a4b984/opencascade-hs/opencascade-hs.cabal
    autogen-modules:   Paths_hs_tango
                     -- This one seems to be giving problems for hackage: Hackage does not yet allow uploads of packages with autogenerated module PackageInfo_*
                     -- , PackageInfo_hs_tango
    -- copied from https://github.com/joe-warren/opencascade-hs/blob/5c087f893712585703eb8bb0ce017b6fa2a4b984/opencascade-hs/opencascade-hs.cabal
    -- otherwise: undefined reference to operator new
    extra-libraries: stdc++

benchmark tango-read-test-device
  type: exitcode-stdio-1.0
  main-is: ReadTestDevice.hs
  
  ghc-options: -threaded -rtsopts -with-rtsopts=-N
  hs-source-dirs:
      app
  build-depends:
      base >=4.7 && <5
    , hs-tango
    , text