packages feed

synapse-cc-0.4.0: synapse-cc.cabal

cabal-version:      3.0
name:               synapse-cc
version:            0.4.0
synopsis:           Unified compiler toolchain for Plexus backends
description:
  synapse-cc orchestrates the complete pipeline from backend schema
  discovery to compiled, ready-to-use client libraries.
license:            MIT
author:             Hypermemetic
maintainer:         dev@hypermemetic.com
category:           Development
build-type:         Simple
extra-doc-files:    PLAN.md, README.md, CHANGELOG.md

flag live-tests
  description: Build synapse-cc-test, which needs a substrate backend
               registered at 127.0.0.1:4444. Opt-in, so a default
               `cabal test` needs nothing running.
               Enable with: cabal test -f live-tests
  default:     False
  manual:      True

common warnings
    ghc-options: -Wall

library
    import:           warnings
    exposed-modules:  SynapseCC.Types
                    , SynapseCC.Auth
                    , SynapseCC.AuthCheck
                    , SynapseCC.RegistryResolve
                    , SynapseCC.CLI
                    , SynapseCC.Config
                    , SynapseCC.Detect
                    , SynapseCC.Discover
                    , SynapseCC.Lock
                    , SynapseCC.Merge
                    , SynapseCC.Pipeline
                    , SynapseCC.Process
                    , SynapseCC.Cache
                    , SynapseCC.Dependency
                    , SynapseCC.Language
                    , SynapseCC.Logging
                    , SynapseCC.Benchmark
                    , SynapseCC.Wait
                    , SynapseCC.Watch
    build-depends:    base >= 4.14 && < 5
                    , optparse-applicative >= 0.18
                    , process >= 1.6
                    , aeson >= 2.0
                    , aeson-pretty >= 0.8
                    , bytestring >= 0.11
                    , text >= 1.2
                    , filepath >= 1.4
                    , directory >= 1.3
                    , async >= 2.2
                    , ansi-terminal >= 0.11
                    , time >= 1.9
                    , cryptohash-sha256 >= 0.11
                    , base16-bytestring >= 1.0
                    , containers >= 0.6
                    , stm >= 2.5
                    , mtl >= 2.3
                    , transformers >= 0.6
                    , unordered-containers >= 0.2
                    , fsnotify >= 0.4
                    , plexus-protocol >= 0.6 && < 0.7
                    , plexus-synapse >= 4.0 && < 5
                    , katip >= 0.8 && < 0.9
    autogen-modules:  Paths_synapse_cc
    other-modules:    Paths_synapse_cc
    hs-source-dirs:   src
    default-language: Haskell2010
    default-extensions: OverloadedStrings
                      , RecordWildCards
                      , LambdaCase
                      , TypeApplications
                      , DeriveAnyClass
                      , DeriveGeneric
                      , ScopedTypeVariables
                      , DerivingStrategies

executable synapse-cc
    import:           warnings
    main-is:          Main.hs
    build-depends:    base >= 4.14 && < 5
                    , synapse-cc
                    , text
                    , plexus-synapse >= 4.0 && < 5
    hs-source-dirs:   app
    default-language: Haskell2010
    ghc-options:      -threaded -rtsopts -with-rtsopts=-N
    default-extensions: OverloadedStrings

test-suite synapse-cc-test
    import:           warnings
    default-language: Haskell2010
    type:             exitcode-stdio-1.0
    hs-source-dirs:   test
    main-is:          Main.hs
    build-depends:    base >= 4.14 && < 5
                    , synapse-cc
                    , hspec >= 2.0
                    , QuickCheck >= 2.14
                    , text >= 1.2
                    , directory >= 1.3
                    , filepath >= 1.4
                    , process >= 1.6
                    , aeson >= 2.0
                    , aeson-pretty >= 0.8
                    , bytestring >= 0.11
                    , containers >= 0.6
                    , optparse-applicative >= 0.18
                    , plexus-protocol >= 0.6 && < 0.7
                    , plexus-synapse >= 4.0 && < 5
                    , stm >= 2.5
    default-extensions: OverloadedStrings
                      , LambdaCase
                      , ScopedTypeVariables
    if !flag(live-tests)
        buildable: False

test-suite safe6-authcheck
    default-language: Haskell2010
    type:             exitcode-stdio-1.0
    hs-source-dirs:   test
    main-is:          AuthCheckSpec.hs
    build-depends:    base >= 4.14 && < 5
                    , synapse-cc
                    , aeson >= 2.0
                    , aeson-qq >= 0.8
                    , bytestring >= 0.11
                    , filepath >= 1.4
                    , temporary >= 1.3
                    , text >= 1.2
    default-extensions: OverloadedStrings, QuasiQuotes
    ghc-options:      -threaded

-- NAMING-10: the naming gate and the old names read but never written.
-- Hermetic (no backend), unlike synapse-cc-test.
test-suite naming
    default-language: Haskell2010
    type:             exitcode-stdio-1.0
    hs-source-dirs:   test
    main-is:          NamingSpec.hs
    build-depends:    base >= 4.14 && < 5
                    , synapse-cc
                    , hspec >= 2.0
                    , aeson >= 2.0
                    , bytestring >= 0.11
                    , directory >= 1.3
                    , filepath >= 1.4
                    , optparse-applicative >= 0.18
                    , process >= 1.6
                    , temporary >= 1.3
                    , text >= 1.2
    default-extensions: OverloadedStrings
    ghc-options:      -threaded