cabal-version:       >=1.10
-- Initial package description 'natpmp-static.cabal' generated by 'cabal
-- init'.  For further documentation, see
-- http://haskell.org/cabal/users-guide/

name:                natpmp-static
version:             0.1.0.0
synopsis:            Haskell bindings to libnatpmp
description:
            libnatpmp is a C library to communicate with routers and request
            that they port forward traffic from the outside internet to your
            program.
            .
            natpmp-static has Haskell bindings to libnatpmp to allow Haskell
            programs to punch NAT holes in routers, containing a vendored copy
            of the libnatpmp code so that we build Urbit's "almost static"
            builds which we distribute.
            .
            See <http://miniupnp.free.fr/libnatpmp.html> for upstream source.
            
-- bug-reports:
license:             BSD3
license-file:        LICENSE
author:              Elliot Glaysher
maintainer:          elliot@tlon.io
copyright:           (c) 2020 Tlon.
stability:           experimental
build-type:          Simple

library
  hs-Source-Dirs: hsrc_lib
  default-language: Haskell2010
  build-depends:       base
                     , network
                     , unliftio-core
  build-tools: hsc2hs

  Include-dirs: cbits
  Includes: natpmp.h getgateway.h
  C-Sources: cbits/natpmp.c cbits/getgateway.c cbits/binding.c
  cc-options: -Wall -Os -g -fPIC
  ghc-options: -Wall -fprof-auto -fPIC
    
  exposed-modules: Network.NatPmp
  -- other-modules:
  -- other-extensions:

 default-extensions: ApplicativeDo
                   , BangPatterns
                   , BlockArguments
                   , DataKinds
                   , DefaultSignatures
                   , DeriveAnyClass
                   , DeriveDataTypeable
                   , DeriveFoldable
                   , DeriveGeneric
                   , DeriveTraversable
                   , DerivingStrategies
                   , EmptyCase
                   , EmptyDataDecls
                   , FlexibleContexts
                   , FlexibleInstances
                   , FunctionalDependencies
                   , GADTs
                   , GeneralizedNewtypeDeriving
                   , LambdaCase
                   , MagicHash
                   , MultiParamTypeClasses
                   , NamedFieldPuns
                   , NoImplicitPrelude
                   , NumericUnderscores
                   , OverloadedStrings
                   , PartialTypeSignatures
                   , PatternSynonyms
                   , QuasiQuotes
                   , Rank2Types
                   , RankNTypes
                   , RecordWildCards
                   , ScopedTypeVariables
                   , StandaloneDeriving
                   , TemplateHaskell
                   , TupleSections
                   , TypeApplications
                   , TypeFamilies
                   , TypeOperators
                   , UnboxedTuples
                   , UnicodeSyntax
                   , ViewPatterns