cabal-version: >=1.10
Name: hsc2hs
Version: 0.68.7

Copyright: 2000, Marcin Kowalczyk
License: BSD3
License-File: LICENSE
Author: Marcin Kowalczyk <qrczak@knm.org.pl>
Maintainer: ghc-devs@haskell.org
Synopsis: A preprocessor that helps with writing Haskell bindings to C code
Bug-Reports: https://github.com/haskell/hsc2hs/issues
Description:
    The hsc2hs program can be used to automate some parts of the
    process of writing Haskell bindings to C code.  It reads an
    almost-Haskell source file with embedded special constructs, and
    outputs a real Haskell file with these constructs processed, based
    on information taken from some C headers.  The extra constructs
    provide Haskell counterparts of C types, values of C constants,
    including sizes of C types, and access to fields of C structs.
    .
    For more details, see the
    <http://downloads.haskell.org/~ghc/master/users-guide/utils.html#writing-haskell-interfaces-to-c-code-hsc2hs hsc2hs section>
    in the GHC User's Guide.
Category: Development
Data-Files: template-hsc.h
build-type: Simple
tested-with: GHC==8.10.1, GHC==8.8.3, GHC==8.6.5, GHC==8.4.4, GHC==8.2.2, GHC==8.0.2, GHC==7.10.3, GHC==7.8.4, GHC==7.6.3, GHC==7.4.2, GHC==7.2.2, GHC==7.0.4

extra-source-files:
  changelog.md
  test/asm/*.s

flag in-ghc-tree
  description: Are we in a GHC tree?
  default: False
  manual: True

source-repository head
    Type: git
    Location: https://github.com/haskell/hsc2hs.git

Executable hsc2hs
    Default-Language: Haskell2010
    Main-Is: Main.hs
    Other-Modules:
        C
        Common
        CrossCodegen
        DirectCodegen
        Flags
        HSCParser
        ATTParser
        UtilsCodegen
        Compat.ResponseFile
        Compat.TempFile
        Paths_hsc2hs

    c-sources:
        cbits/utils.c

    Other-Extensions: CPP, NoMonomorphismRestriction

    Build-Depends: base       >= 4.3.0 && < 4.15,
                   containers >= 0.4.0 && < 0.7,
                   directory  >= 1.1.0 && < 1.4,
                   filepath   >= 1.2.0 && < 1.5,
                   process    >= 1.1.0 && < 1.7

    if os(windows)
      -- N.B. Job object support was irreparably broken prior to 1.6.8.
      -- See https://github.com/haskell/process/issues/167.
      Build-Depends: process  >= 1.6.8 && < 1.7

    ghc-options:   -Wall
    if flag(in-ghc-tree)
       cpp-options: -DIN_GHC_TREE

test-suite spec
  main-is:           Spec.hs
  hs-source-dirs:    .
  other-modules:     ATTParser
  ghc-options:       -Wall -threaded
  type:              exitcode-stdio-1.0
  build-depends:       base
                     , tasty
                     , tasty-hspec
  default-language: Haskell2010