lib/thrift-lib.cabal (214 lines of code) (raw):
cabal-version: 3.6
-- Copyright (c) Facebook, Inc. and its affiliates.
name: thrift-lib
version: 0.1.0.0
synopsis: Libraries for Haskell Thrift
homepage: https://github.com/facebookincubator/hsthrift
bug-reports: https://github.com/facebookincubator/hsthrift/issues
license: BSD-3-Clause
license-file: LICENSE
author: Facebook, Inc.
maintainer: hsthrift-team@fb.com
copyright: (c) Facebook, All Rights Reserved
category: Thrift
build-type: Simple
extra-source-files: CHANGELOG.md,
if/*.thrift,
test/if/*.thrift
description:
Support for building client and server applications that
communicate using the Thrift protocols.
.
NOTE: for build instructions and documentation, see
https://github.com/facebookincubator/hsthrift
source-repository head
type: git
location: https://github.com/facebookincubator/hsthrift.git
common fb-haskell
default-language: Haskell2010
default-extensions:
BangPatterns
BinaryLiterals
DataKinds
DeriveDataTypeable
DeriveGeneric
EmptyCase
ExistentialQuantification
FlexibleContexts
FlexibleInstances
GADTs
GeneralizedNewtypeDeriving
LambdaCase
MultiParamTypeClasses
MultiWayIf
NoMonomorphismRestriction
OverloadedStrings
PatternSynonyms
RankNTypes
RecordWildCards
ScopedTypeVariables
StandaloneDeriving
TupleSections
TypeFamilies
TypeSynonymInstances
NondecreasingIndentation
build-tool-depends: thrift-compiler:thrift-compiler
library
import: fb-haskell
exposed-modules:
Thrift.HasFields
Thrift.Monad
Thrift.CodegenTypesOnly
Thrift.Processor
Thrift.Api
Thrift.Codegen
Thrift.Channel
Thrift.Channel.SocketChannel
Thrift.Channel.SocketChannel.Server
Thrift.Protocol
Thrift.Protocol.Compact
Thrift.Protocol.Id
Thrift.Protocol.JSON
Thrift.Protocol.Binary
Thrift.Protocol.Binary.Internal
Thrift.Protocol.JSON.Base64
Thrift.Protocol.JSON.String
Thrift.Binary.Parser
Thrift.Protocol.ApplicationException.Types
Thrift.Protocol.RpcOptions.Types
hs-source-dirs: . gen-hs2
-- needed for fb-utils
extra-libraries: stdc++
build-depends:
dependent-sum >= 0.6 && <= 0.6.2.0,
-- TODO: Data.Some was split out into package some at 0.6.2.2,
-- deprecated 'This' was removed.
containers,
deepseq,
STMonadTrans,
data-default,
fb-util,
bytestring-lexing,
scientific,
ghc,
aeson >= 1,
word8,
aeson-pretty,
text-show,
base >=4.11.1 && <4.15,
async ^>= 2.2,
transformers ^>=0.5.5.0,
bytestring ^>=0.10.8.2,
network,
text ^>=1.2.3.0,
unordered-containers ^>=0.2.9.0,
hashable >=1.2.7.0 && <1.4,
vector ^>=0.12.0.1
if flag(tests_use_ipv4)
-- for SocketChannel.hs
cpp-options: -DIPV4
flag tests_use_ipv4
description: Force tests to use IPV4 whenever bringing thrift clients/servers up
default: False
manual: True
-- This will be used by other packages
library test-helpers
import: fb-haskell
visibility: public
hs-source-dirs: test/helpers
exposed-modules:
Network
TestChannel
if flag(tests_use_ipv4)
-- for test/Network.hs
cpp-options: -DIPV4
build-depends: base,
bytestring,
network,
thrift-lib,
common test-deps
if flag(tests_use_ipv4)
-- for test/Network.hs
cpp-options: -DIPV4
-- for test/cpp/MathServer.cpp
cxx-options: -DIPV4
build-depends: async ^>= 2.2,
base,
bytestring,
dependent-sum,
fb-stubs,
fb-util,
filepath,
hspec,
hspec-contrib,
HUnit ^>= 1.6.1,
network,
text,
thrift-lib,
-- vvv for HsTest.Types
deepseq,
transformers,
aeson,
data-default,
unordered-containers,
hashable,
containers,
vector,
QuickCheck,
STMonadTrans,
thrift-lib:test-helpers,
-- This is used by local tests only
library test-lib
import: fb-haskell, test-deps
hs-source-dirs:
test/lib,
test/gen-hs2,
exposed-modules:
TestCommon
Math.Types
Math.Adder.Client
Math.Calculator.Client
Math.Adder.Service
Math.Calculator.Service
HsTest.Types
common test-common
import: test-deps
hs-source-dirs: test
build-depends:
thrift-lib:test-helpers,
thrift-lib:test-lib
test-suite channel
import: fb-haskell, test-common
type: exitcode-stdio-1.0
main-is: ChannelTest.hs
ghc-options: -main-is ChannelTest
test-suite socket-channel
import: fb-haskell, test-common
type: exitcode-stdio-1.0
main-is: SocketChannelTest.hs
ghc-options: -main-is SocketChannelTest
test-suite client
import: fb-haskell, test-common
type: exitcode-stdio-1.0
main-is: ClientTest.hs
ghc-options: -main-is ClientTest
test-suite binary-parser
import: fb-haskell, test-common
type: exitcode-stdio-1.0
main-is: BinaryParserTest.hs
ghc-options: -main-is BinaryParserTest
test-suite json-parsing
import: fb-haskell, test-common
type: exitcode-stdio-1.0
main-is: JSONStringTest.hs
ghc-options: -main-is JSONStringTest
test-suite json-num
import: fb-haskell, test-common
type: exitcode-stdio-1.0
main-is: JSONNumTest.hs
ghc-options: -main-is JSONNumTest
test-suite json-null
import: fb-haskell, test-common
type: exitcode-stdio-1.0
main-is: JSONNullTest.hs
ghc-options: -main-is JSONNullTest