packages feed

netw-0.1.0.0: netw.cabal

cabal-version:      3.4
name:               netw
version:            0.1.0.0
synopsis:           Binding to C socket API operating on bytearrays.
license:            GPL-3.0-or-later
license-file:       LICENSE
author:             Vu Hoang Hung
maintainer:         Vu Hoang Hung <hoanghung17jan@gmail.com>
stability:          experimental
homepage:           https://github.com/k355l3r-5yndr0m3/netw
bug-reports:        https://github.com/k355l3r-5yndr0m3/netw/issues

description:        Provide access to low-level socket api. Work with both bytearrays and pointers.

-- copyright:
category:           Network
build-type:         Simple

extra-doc-files:    CHANGELOG.md
tested-with:        GHC == 9.4.8

-- extra-source-files:

flag Debug
    description:    Enable debuging flags
    default:        False
    manual:         True

common warnings
    ghc-options: -Wall

library
    import:           warnings

    if flag(Debug)
      ghc-options:    -dth-dec-file
                      -ddump-splices
                      -ddump-to-file
                      -Wall

    exposed-modules:  Netw.Socket
                      Netw.SockAddr
                      Netw.Inet
                      Netw.Ancillary

    other-modules:    Netw.Internal
                      Netw.Internal.Port
                      Netw.Internal.Protocols
                      Netw.Internal.Ancillary
                      Netw.Internal.Socket
                      Netw.Internal.Enum
                      Netw.Internal.Cmsg
                      Netw.Internal.Type

    build-depends:    base ^>=4.17.2.1,
                      primitive >= 0.9.0 && < 0.10,
                      template-haskell >= 2.19.0 && < 2.20,
                      primitive-unaligned >= 0.1.1 && < 0.2,
                      unix >= 2.7.3 && < 2.8,

    hs-source-dirs:   src

    c-sources:        cbit/sendmsg.c
                      cbit/send.c
                      cbit/recvmsg.c
                      cbit/recv.c
                      cbit/cmsg.c
                      cbit/socket.c
                      cbit/static_assertion.c
    default-language: GHC2021

test-suite server-client-test
    import:           warnings
    default-language: GHC2021
    type:             exitcode-stdio-1.0
    hs-source-dirs:   test/server-client
    main-is:          Main.hs
    build-depends:
        base ^>=4.17.2.1,
        primitive,
        unix,
        netw

test-suite msgs-test
    import:           warnings
    default-language: GHC2021
    type:             exitcode-stdio-1.0
    hs-source-dirs:   test/msgs
    main-is:          Main.hs
    build-depends:
        base ^>=4.17.2.1,
        primitive,
        unix,
        netw

test-suite unix-scm-rights-test
    import:           warnings
    default-language: GHC2021
    type:             exitcode-stdio-1.0
    hs-source-dirs:   test/unix-scm-rights
    main-is:          Main.hs
    build-depends:
        base ^>=4.17.2.1,
        primitive,
        unix,
        netw

test-suite send-and-recv-msgs-test
    import:           warnings
    default-language: GHC2021
    type:             exitcode-stdio-1.0
    hs-source-dirs:   test/send-and-recv-msgs
    main-is:          Main.hs
    build-depends:
        base ^>=4.17.2.1,
        primitive,
        unix,
        netw

test-suite codegen-test
    import:           warnings
    default-language: GHC2021
    type:             exitcode-stdio-1.0
    hs-source-dirs:   test/codegen
    main-is:          Main.hs
    build-depends:
        base ^>=4.17.2.1,
        netw