packages feed

i2c-bus-0.1.0: i2c-bus.cabal

cabal-version: 1.12

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

name:           i2c-bus
version:        0.1.0
synopsis:       Typed I2C communication
description:    Library for I2C communication with utilities for working with registers, etc.
                .
                Just import the module "I2C", and you will typically get everything you need.
                .
                == Features
                * Connections to chips on I2C buses.
                * An exception type 'I2C.Exception.I2CErr'
                * A module "I2C.Raw" to perform direct write and read using 'Storable' types.
                * A module "I2C.Register" to work with chips that use registers. 
                * Types for binary serialization between host architecture and chip hardware.
                * Handy utilities through Template Haskell to define chips, registers and 
                  (sub)fields of registers.
                * Settings to control the code generation by Template Haskell.
                * An API specification for backend implementations. Currently, only a 
                  Linux backend is implemented.
category:       hardware,
                chip,
                i2c,
                raspberrypi
homepage:       https://github.com/karamellpelle/i2c-bus
bug-reports:    https://github.com/karamellpelle/i2c-bus/issues
author:         karamellpelle@hotmail.com
maintainer:     karamellpelle@hotmail.com
copyright:      karamellpelle@hotmail.com
license:        MIT
license-file:   LICENSE
build-type:     Simple
extra-source-files:
    README.md
    CHANGELOG.md
    cbits/foreign.h
    tests/GHCI.hs
    tests/ssd1306/haskell-128x32.gif

source-repository head
  type: git
  location: https://github.com/karamellpelle/i2c-bus

library
  exposed-modules:
      I2C.Chip
      I2C.Exception
      I2C.Internal
      I2C.Types
      I2C.Raw
      I2C.Register
      I2C.TH
      I2C
  other-modules:
      Paths_i2c_bus
  hs-source-dirs:
      source-lib
  default-extensions:
      NoImplicitPrelude
      OverloadedStrings
  other-extensions:
      CPP
  ghc-options: -Wall -Wcompat -Widentities -Wincomplete-record-updates -Wincomplete-uni-patterns -Wmissing-export-lists -Wmissing-home-modules -Wpartial-fields -Wredundant-constraints -Wprepositive-qualified-module -Wno-name-shadowing -Wno-unused-top-binds -Wno-unused-matches -Wno-unused-imports
  cpp-options: -DARCH_IS_UNKNOWN -DINTERNAL_USE_EMPTY
  build-depends:
      base >=4.20 && <4.23
    , data-default ==0.8.*
    , relude ==1.2.*
    , template-haskell >=2.22 && <2.25
  default-language: GHC2024
  if os( linux )
    cpp-options: -UINTERNAL_USE_EMPTY -DINTERNAL_USE_LINUX
  if arch( aarch64 ) || arch( i386 ) || arch( x86_64 )
    cpp-options: -UARCH_IS_UNKNOWN -DARCH_IS_LITTLE_ENDIAN
  if os(linux)
    exposed-modules:
        I2C.Internal.Linux
    include-dirs:
        /usr/include
        cbits
    c-sources:
        cbits/foreign.c
    build-depends:
        unix ==2.8.*

test-suite ssd1306
  type: exitcode-stdio-1.0
  main-is: Main.hs
  other-modules:
      SSD1306
      Paths_i2c_bus
  hs-source-dirs:
      tests/ssd1306/
  default-extensions:
      NoImplicitPrelude
      OverloadedStrings
  ghc-options: -Wall -Wcompat -Widentities -Wincomplete-record-updates -Wincomplete-uni-patterns -Wmissing-export-lists -Wmissing-home-modules -Wpartial-fields -Wredundant-constraints -Wprepositive-qualified-module -Wno-name-shadowing -Wno-unused-top-binds -Wno-unused-matches -Wno-unused-imports -threaded -rtsopts -with-rtsopts "-N -T"
  cpp-options: -DARCH_IS_UNKNOWN -DINTERNAL_USE_EMPTY
  build-depends:
      JuicyPixels >=3.3.7 && <3.4
    , base >=4.20 && <4.23
    , data-default ==0.8.*
    , i2c-bus
    , relude ==1.2.*
    , template-haskell >=2.22 && <2.25
  default-language: GHC2024
  if os( linux )
    cpp-options: -UINTERNAL_USE_EMPTY -DINTERNAL_USE_LINUX
  if arch( aarch64 ) || arch( i386 ) || arch( x86_64 )
    cpp-options: -UARCH_IS_UNKNOWN -DARCH_IS_LITTLE_ENDIAN