server/thrift-server.cabal (153 lines of code) (raw):
cabal-version: 3.6
-- Copyright (c) Facebook, Inc. and its affiliates.
name: thrift-server
version: 0.1.0.0
synopsis: Support for creating Thrift servers in Haskell
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
extra-source-files: CHANGELOG.md,
cpp/*.h,
cpp/*.cpp,
test/if/*.thrift
description:
Support for building 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
if flag(opt)
ghc-options: -O2
common fb-cpp
cxx-options: -std=c++17
if arch(x86_64)
cxx-options: -march=haswell
if flag(opt)
cxx-options: -O3
flag opt
default: False
library
import: fb-haskell, fb-cpp
exposed-modules:
Thrift.Server.Types
Thrift.Server.ProcessorCallback
Thrift.Server.CppServer
cxx-sources:
cpp/CppServer.cpp
cpp/HaskellProcessor.cpp
build-depends:
fb-util,
thrift-lib,
thrift-cpp-channel,
base >=4.11.1 && <4.15,
text ^>=1.2.3.0,
bytestring ^>=0.10.8.2,
async ^>=2.2.1,
utf8-string
default-language: Haskell2010
build-tool-depends: hsc2hs:hsc2hs
hsc2hs-options: --cc=g++ --lflag=-lstdc++ --cflag=-D__HSC2HS__=1 --cflag=-std=c++17
include-dirs: .
-- TODO: I needed this to satisfy an undefined reference to jump_fcontext
-- when running hsc2hs on Thrift.Server.ProcessorCallback
extra-libraries: boost_context
flag tests_use_ipv4
description: Force tests to use IPV4 whenever bringing thrift clients/servers up
default: False
manual: True
common test-deps
build-depends: aeson,
base,
bytestring,
data-default,
deepseq,
fb-stubs,
fb-util,
hashable,
hspec,
hspec-contrib,
HUnit ^>= 1.6.1,
STMonadTrans,
text,
thrift-lib,
thrift-lib:test-helpers,
thrift-server,
thrift-cpp-channel,
transformers,
unordered-containers
if flag(tests_use_ipv4)
-- for test/Network.hs
cpp-options: -DIPV4
library test-lib
import: fb-haskell, fb-cpp, test-deps
hs-source-dirs: test/common, test/gen-hs2
exposed-modules:
CalculatorHandler
EchoHandler
Echoer.Echoer.Client
Echoer.Echoer.Service
Echoer.Types
Math.Adder.Client
Math.Adder.Service
Math.Calculator.Client
Math.Calculator.Service
Math.Types
HashMap.HashMapService.Client
HashMap.HashMapService.Service
HashMap.Types
common test-common
import: test-deps
hs-source-dirs: test
build-depends: thrift-server:test-lib
ghc-options: -threaded
test-suite dangling-pointer
import: fb-haskell, test-common
type: exitcode-stdio-1.0
main-is: DanglingPointerTest.hs
ghc-options: -main-is DanglingPointerTest
test-suite handler
import: fb-haskell, test-common
type: exitcode-stdio-1.0
main-is: HandlerTest.hs
ghc-options: -main-is HandlerTest
test-suite server
import: fb-haskell, test-common
type: exitcode-stdio-1.0
main-is: ServerTest.hs
ghc-options: -main-is ServerTest