common/util/fb-util.cabal (402 lines of code) (raw):

cabal-version: 3.6 -- Copyright (c) Facebook, Inc. and its affiliates. name: fb-util version: 0.1.0.0 synopsis: Various utility libraries 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: Utilities build-type: Simple extra-source-files: CHANGELOG.md, cpp/*.h, tests/DynamicHelper.h, tests/HsStructHelper.h, hsc.h description: NOTE: for build instructions, 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: Control.Concurrent.Stream Data.MovingAverageRateLimiter Data.RateLimiterMap Foreign.CPP.Addressable Foreign.CPP.Dynamic Foreign.CPP.HsStruct Foreign.CPP.HsStruct.HsArray Foreign.CPP.HsStruct.HsOption Foreign.CPP.HsStruct.HsStdVariant Foreign.CPP.HsStruct.Types Foreign.CPP.HsStruct.Unsafe Foreign.CPP.HsStruct.Utils Foreign.CPP.Marshallable Foreign.CPP.Marshallable.TH Util.ASan Util.Async Util.Aeson Util.AllocLimit Util.Applicative Util.Bag Util.Binary.Parser Util.Bits Util.Buffer Util.Build Util.ByteString Util.Concurrent Util.Control.Exception Util.Control.Monad Util.Defer Util.Dll Util.Encoding Util.Err Util.EventBase Util.Executor Util.Fd Util.FilePath Util.Function Util.Graph Util.GFlags Util.HSE Util.HUnit Util.HashMap.Strict Util.IO Util.IOBuf Util.JSON.Pretty Util.Lens Util.Linter Util.List Util.List.HigherOrder Util.Log Util.Log.Text Util.Log.Internal Util.Log.String Util.LogIfSlow Util.Logger Util.MD5 Util.Memory Util.Monoid Util.Network Util.OptParse Util.Predicate Util.PrettyPrint Util.RWVar Util.Reader Util.STM Util.Show Util.String Util.String.Quasi Util.Testing Util.Text Util.TimeSec Util.Timing Util.ToExp Util.Typeable Util.WBVar cxx-sources: cpp/cdynamic.cpp cpp/ffi.cpp cpp/logging.cpp cpp/HsStruct.cpp cpp/IOBuf.cpp cpp/EventBaseDataplane.cpp -- Util/GFlags.cpp install-includes: cpp/HsOption.h cpp/HsStdVariant.h cpp/HsStruct.h cpp/HsStructDefines.h cpp/ffi.h cpp/memory.h cpp/wrap.h include-dirs: . hs-source-dirs: . build-depends: atomic-primops, aeson, attoparsec, bytestring-lexing, concurrent-extra, exceptions, ghc, HUnit ^>= 1.6.1, json, lens, lifted-base, mangle, monad-control, primitive, text-show, optparse-applicative, extra, aeson-pretty, either, QuickCheck, mysql-simple, scientific, haskell-src-exts, stm, base >=4.11.1.0 && <4.15, containers >=0.5.11 && <0.7, text ^>=1.2.3.0, ghci >=8.4.3 && <9, binary ^>=0.8.5.1, bytestring ^>=0.10.8.2, hashable >=1.2.7.0 && <1.4, unordered-containers ^>=0.2.9.0, transformers ^>=0.5.5.0, time >=1.8.0.2 && <1.12, deepseq ^>=1.4.3.0, filepath ^>=1.4.2, async ^>=2.2.1, split ^>=0.2.3.3, directory ^>=1.3.1.5, unix ^>=2.7.2.2, process ^>=1.6.3.0, vector >=0.12.0.1 && <0.12.3.0, pretty ^>=1.1.3.6, template-haskell >=2.13 && <2.17, integer-gmp ^>=1.0.2.0, mtl ^>=2.2.2, array ^>=0.5.2.0, prettyprinter >=1.2.1 && <1.7, data-default, build-tool-depends: hsc2hs:hsc2hs -- We use hsc2hs with C++ headers, so we need to compile the -- generated code with g++. The hsc2hs-generated binary is linked -- by ghc, because we depend on a Haskell package (mangle). hsc2hs-options: --cc=g++ --lflag=-lstdc++ --cflag=-D__HSC2HS__=1 --cflag=-std=c++17 pkgconfig-depends: libfolly, libglog extra-libraries: double-conversion, gflags common test-common extra-libraries: stdc++ ghc-options: -threaded hs-source-dirs: tests, tests/github other-modules: SpecRunner build-depends: base, aeson, async, binary, bytestring, containers, directory, fb-util, fb-stubs, filepath, hspec, hspec-contrib, HUnit ^>= 1.6.1, json, lens, mtl, optparse-applicative, prettyprinter, QuickCheck, regex-base, regex-pcre, scientific, template-haskell, temporary, text, text-show, transformers, unordered-containers, vector, vector-fftw build-tool-depends: hsc2hs:hsc2hs -- We use hsc2hs with C++ headers, so we need to compile the -- generated code with g++. The hsc2hs-generated binary is linked -- by ghc. hsc2hs-options: --cc=g++ --lflag=-lstdc++ --cflag=-D__HSC2HS__=1 --cflag=-std=c++17 test-suite stream import: fb-haskell, fb-cpp, test-common type: exitcode-stdio-1.0 main-is: StreamTest.hs ghc-options: -main-is StreamTest test-suite movavgrl import: fb-haskell, fb-cpp, test-common type: exitcode-stdio-1.0 main-is: MovingAverageRateLimiterTest.hs ghc-options: -main-is MovingAverageRateLimiterTest test-suite rlmap import: fb-haskell, fb-cpp, test-common type: exitcode-stdio-1.0 main-is: RateLimiterMapTest.hs ghc-options: -main-is RateLimiterMapTest test-suite iobuf import: fb-haskell, fb-cpp, test-common type: exitcode-stdio-1.0 main-is: IOBufTest.hs ghc-options: -main-is IOBufTest cxx-sources: tests/IOBufTest.cpp test-suite alloc-limit import: fb-haskell, fb-cpp, test-common type: exitcode-stdio-1.0 main-is: AllocLimitTest.hs ghc-options: -main-is AllocLimitTest test-suite unit-tests import: fb-haskell, fb-cpp, test-common type: exitcode-stdio-1.0 main-is: UnitTests.hs ghc-options: -main-is UnitTests test-suite rwvar import: fb-haskell, fb-cpp, test-common type: exitcode-stdio-1.0 main-is: RWVarTest.hs ghc-options: -main-is RWVarTest test-suite th import: fb-haskell, fb-cpp, test-common type: exitcode-stdio-1.0 main-is: THTest.hs ghc-options: -main-is THTest test-suite filepath import: fb-haskell, fb-cpp, test-common type: exitcode-stdio-1.0 main-is: FilePathTest.hs ghc-options: -main-is FilePathTest test-suite optparse import: fb-haskell, fb-cpp, test-common type: exitcode-stdio-1.0 main-is: OptParseTest.hs ghc-options: -main-is OptParseTest test-suite lens import: fb-haskell, fb-cpp, test-common type: exitcode-stdio-1.0 main-is: LensTest.hs ghc-options: -main-is LensTest test-suite toexp import: fb-haskell, fb-cpp, test-common type: exitcode-stdio-1.0 main-is: ToExpTest.hs ghc-options: -main-is ToExpTest test-suite aeson import: fb-haskell, fb-cpp, test-common type: exitcode-stdio-1.0 main-is: AesonTest.hs ghc-options: -main-is AesonTest test-suite buffer import: fb-haskell, fb-cpp, test-common type: exitcode-stdio-1.0 main-is: BufferTest.hs ghc-options: -main-is BufferTest test-suite exception import: fb-haskell, fb-cpp, test-common type: exitcode-stdio-1.0 main-is: ExceptionTest.hs ghc-options: -main-is ExceptionTest test-suite control-exception import: fb-haskell, fb-cpp, test-common type: exitcode-stdio-1.0 main-is: ControlExceptionTest.hs ghc-options: -main-is ControlExceptionTest test-suite json-pretty import: fb-haskell, fb-cpp, test-common type: exitcode-stdio-1.0 main-is: JSONPrettyTest.hs ghc-options: -main-is JSONPrettyTest test-suite io import: fb-haskell, fb-cpp, test-common type: exitcode-stdio-1.0 main-is: IOTest.hs ghc-options: -main-is IOTest test-suite time-sec import: fb-haskell, fb-cpp, test-common type: exitcode-stdio-1.0 main-is: TimeSecTest.hs ghc-options: -main-is TimeSecTest test-suite list import: fb-haskell, fb-cpp, test-common type: exitcode-stdio-1.0 main-is: ListTest.hs ghc-options: -main-is ListTest test-suite graph import: fb-haskell, fb-cpp, test-common type: exitcode-stdio-1.0 main-is: GraphTest.hs ghc-options: -main-is GraphTest test-suite concurrent import: fb-haskell, fb-cpp, test-common type: exitcode-stdio-1.0 main-is: ConcurrentTest.hs ghc-options: -main-is ConcurrentTest test-suite md5 import: fb-haskell, fb-cpp, test-common type: exitcode-stdio-1.0 main-is: MD5Test.hs ghc-options: -main-is MD5Test test-suite control-monad import: fb-haskell, fb-cpp, test-common type: exitcode-stdio-1.0 main-is: Control/MonadTest.hs ghc-options: -main-is Control.MonadTest test-suite string-quasi import: fb-haskell, fb-cpp, test-common type: exitcode-stdio-1.0 main-is: StringQuasiTest.hs ghc-options: -main-is StringQuasiTest test-suite dynamic import: fb-haskell, fb-cpp, test-common type: exitcode-stdio-1.0 main-is: DynamicTest.hs cxx-sources: tests/DynamicHelper.cpp ghc-options: -main-is DynamicTest test-suite hs-struct import: fb-haskell, fb-cpp, test-common type: exitcode-stdio-1.0 main-is: HsStructTest.hs other-modules: HsStructTestTypes cxx-sources: tests/HsStructHelper.cpp ghc-options: -main-is HsStructTest -- TODO: commented out because of a linker problem -- test-suite gflags -- import: fb-haskell, fb-cpp, test-common -- type: exitcode-stdio-1.0 -- main-is: GFlagsTest.hs -- ghc-options: -main-is GFlagsTest -- cxx-sources: tests/GFlagsTest.cpp