glean.cabal (1,695 lines of code) (raw):

cabal-version: 3.6 -- Copyright (c) Facebook, Inc. and its affiliates. name: glean version: 0.1.0.0 synopsis: A system for collecting, deriving and working with facts about source code. homepage: https://github.com/facebookincubator/Glean bug-reports: https://github.com/facebookincubator/Glean/issues license: BSD-3-Clause license-file: LICENSE author: Facebook, Inc. maintainer: Glean-team@fb.com copyright: (c) Facebook, All Rights Reserved build-type: Simple extra-source-files: CHANGELOG.md 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 ghc-options: -Wall -Wno-orphans -Wno-name-shadowing 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 common exe ghc-options: -threaded flag opt default: False flag benchmarks default: False -- run tests that require hhvm, typically Linux/x86_64 flag hack-tests default: True common deps build-depends: fb-util, thrift-cpp-channel, thrift-lib, HUnit, safe, scientific, text-show, uuid, extra, aeson, data-default, temporary, clock, STMonadTrans, utf8-string, optparse-applicative, ansi-terminal, json, regex-base, regex-pcre, base >=4.11.1 && <4.15, array ^>=0.5.2.0, async ^>=2.2.1, attoparsec ^>=0.13.2.3, unordered-containers ^>=0.2.9.0, containers, contravariant ^>=1.5, text ^>=1.2.3.0, bytestring ^>=0.10.8.2, vector ^>=0.12.0.1, transformers ^>=0.5.5.0, network-uri ^>=2.6.1.0, stm ^>=2.5.0.0, directory ^>=1.3.1.5, filepath ^>=1.4.2, exceptions ^>=0.10.0, mtl ^>=2.2.2, unix ^>=2.7.2.2, process ^>=1.6.3.0, prettyprinter >=1.2.1 && <1.7, time >=1.8.0.2 && <1.12, binary ^>=0.8.5.1, deepseq ^>=1.4.3.0, hashable >=1.2.7.0 && <1.4, tar ^>=0.5.1.0, ghc-prim >=0.5.2.0 && <0.7, parsec ^>=3.1.13.0, haxl >= 2.1.2.0 && < 2.4, hinotify ^>= 0.4.1 common hsc2hs-cpp hsc2hs-options: --cc=g++ --lflag=-lstdc++ --cflag=-D__HSC2HS__=1 --cflag=-std=c++17 library stubs import: fb-haskell, fb-cpp, deps visibility: public hs-source-dirs: glean/github exposed-modules: Facebook.Fb303 Facebook.Service Glean.BuildInfo Glean.Datasource.Scribe.Write Glean.Init Glean.Server.Shard Glean.Index Glean.Username ServiceData.Types ServiceData.GlobalStats TestRunner build-depends: glean:if-fb303-hs, glean:if-glean-hs, glean:if-index-hs, mangle, thrift-server, template-haskell library tailer import: fb-haskell, fb-cpp, deps visibility: private hs-source-dirs: glean/github exposed-modules: Glean.Tailer build-depends: glean:util library logger import: fb-haskell, fb-cpp, deps visibility: private hs-source-dirs: glean/github exposed-modules: Logger.IO Logger.GleanDatabaseStats Logger.GleanServer Logger.GleanGlass Logger.GleanGlassErrors build-depends: glean:util library config import: fb-haskell, fb-cpp, deps visibility: public include-dirs: . hs-source-dirs: glean/config/gen-hs2 glean/config/recipes/gen-hs2 glean/config/server/gen-hs2 glean/config/client/gen-hs2 cxx-sources: glean/config/recipes/gen-cpp2/recipes_types.cpp glean/config/recipes/gen-cpp2/recipes_data.cpp exposed-modules: Glean.Recipes.Types Glean.Service.Types Glean.ClientConfig.Types Glean.ServerConfig.Types pkgconfig-depends: libfolly library defaultconfigs import: fb-haskell, fb-cpp, deps visibility: private hs-source-dirs: glean/github exposed-modules: Glean.DefaultConfigs build-depends: glean:config, glean:util library if-fb303-hs import: fb-haskell, fb-cpp, deps visibility: public hs-source-dirs: glean/github/if/gen-hs2 exposed-modules: Fb303Core.Types Fb303Core.BaseService.Client Fb303Core.BaseService.Service Fb303.Types Fb303.FacebookService.Client Fb303.FacebookService.Service library if-glean-hs import: fb-haskell, fb-cpp, deps visibility: public hs-source-dirs: glean/if/gen-hs2 exposed-modules: Glean.Types Glean.GleanService.Client Glean.GleanService.Service build-depends: glean:config, glean:if-fb303-hs library if-index-hs import: fb-haskell, deps visibility: public hs-source-dirs: glean/if/index/gen-hs2 exposed-modules: Glean.Index.Types Glean.Index.GleanIndexingService.Client Glean.Index.GleanIndexingService.Service build-depends: glean:if-glean-hs library if-internal-hs import: fb-haskell, fb-cpp, deps visibility: public hs-source-dirs: glean/if/internal/gen-hs2 exposed-modules: Glean.Internal.Types build-depends: glean:config, glean:if-glean-hs library if-search-hs import: fb-haskell, fb-cpp, deps visibility: public hs-source-dirs: glean/if/search/gen-hs2 exposed-modules: Glean.Search.Types build-depends: glean:config, glean:if-glean-hs, glean:schema -- fb303 library if-fb303-cpp import: fb-haskell, fb-cpp, deps visibility: public include-dirs: . cxx-sources: glean/github/if/gen-cpp2/fb303_core_types.cpp glean/github/if/gen-cpp2/fb303_core_data.cpp glean/github/if/gen-cpp2/fb303_types.cpp glean/github/if/gen-cpp2/fb303_data.cpp library if-glean-cpp import: fb-haskell, fb-cpp, deps visibility: public cxx-sources: glean/if/gen-cpp2/glean_types.cpp glean/if/gen-cpp2/glean_data.cpp build-depends: glean:if-fb303-cpp, glean:config library if-internal-cpp import: fb-haskell, fb-cpp, deps visibility: public cxx-sources: glean/if/gen-cpp2/internal_types.cpp glean/if/gen-cpp2/internal_data.cpp build-depends: glean:if-fb303-cpp, glean:if-glean-cpp, glean:config library rts import: fb-haskell, fb-cpp, deps visibility: public include-dirs: . cxx-sources: glean/rts/binary.cpp glean/rts/cache.cpp glean/rts/define.cpp glean/rts/error.cpp glean/rts/fact.cpp glean/rts/factset.cpp glean/rts/ffi.cpp glean/rts/inventory.cpp glean/rts/json.cpp glean/rts/lookup.cpp glean/rts/nat.cpp glean/rts/ownership.cpp glean/rts/ownership/derived.cpp glean/rts/ownership/setu32.cpp glean/rts/ownership/slice.cpp glean/rts/ownership/uset.cpp glean/rts/prim.cpp glean/rts/query.cpp glean/rts/sanity.cpp glean/rts/string.cpp glean/rts/substitution.cpp glean/rts/thrift.cpp glean/rts/timer.cpp glean/rts/validate.cpp glean/rts/bytecode/subroutine.cpp pkgconfig-depends: libfolly, libunwind, libglog, icu-uc, gflags, libxxhash cxx-options: -DOSS=1 build-depends: glean:if-internal-cpp, library rocksdb import: fb-haskell, fb-cpp, deps visibility: private cxx-sources: glean/rocksdb/ffi.cpp glean/rocksdb/rocksdb.cpp -- -fno-rtti is needed because RocksDB is compiled with it, and we -- get linker errors for references to missing typeinfo symbols if -- we don't. cxx-options: -fno-rtti extra-libraries: rocksdb build-depends: glean:rocksdb-stats, glean:rts, -- This needs to be separate from rocksdb because it can't be compiled with -fno-rtti library rocksdb-stats import: fb-haskell, fb-cpp, deps visibility: private cxx-sources: glean/rocksdb/stats.cpp build-depends: glean:rts, library util import: fb-haskell, fb-cpp, deps visibility: public hs-source-dirs: glean/util exposed-modules: Glean.Database.Backup.Backend Glean.Impl.ThriftService Glean.Impl.ConfigProvider Glean.Impl.TestConfigProvider Glean.Tailer.Types Glean.Util.Bisect Glean.Util.ConfigProvider Glean.Util.Cacher Glean.Util.HKD Glean.Util.IO Glean.Util.Metric Glean.Util.Mutex Glean.Util.Observed Glean.Util.Periodic Glean.Util.Process Glean.Util.Service Glean.Util.Some Glean.Util.ThriftService Glean.Util.ThriftSource Glean.Util.Throttle Glean.Util.Time Glean.Util.Trace Glean.Util.ValueBuffer Glean.Util.Warden build-depends: glean:stubs, glean:config, glean:if-glean-hs, primitive, network library core import: fb-haskell, fb-cpp, deps, hsc2hs-cpp visibility: public hs-source-dirs: glean/hs default-extensions: CPP hsc2hs-options: --cflag=-DOSS=1 exposed-modules: Glean.FFI Glean.RTS Glean.RTS.Builder Glean.RTS.Bytecode.Code Glean.RTS.Bytecode.Disassemble Glean.RTS.Bytecode.MonadInsn Glean.RTS.Constants Glean.RTS.Foreign.Bytecode Glean.RTS.Foreign.Define Glean.RTS.Foreign.FactSet Glean.RTS.Foreign.Inventory Glean.RTS.Foreign.JSON Glean.RTS.Foreign.LookupCache Glean.RTS.Foreign.Lookup Glean.RTS.Foreign.Ownership Glean.RTS.Foreign.Query Glean.RTS.Foreign.Stacked Glean.RTS.Foreign.Subst Glean.RTS.Foreign.Thrift Glean.RTS.Foreign.Typecheck Glean.RTS.Term Glean.RTS.Traverse Glean.RTS.Typecheck Glean.RTS.Types -- generated by bytecode-gen-hs Glean.RTS.Bytecode.Gen.Instruction Glean.RTS.Bytecode.Gen.Issue Glean.RTS.Bytecode.Gen.Version Glean.Typed Glean.Typed.Binary Glean.Typed.Build Glean.Typed.BuildFact Glean.Typed.Fact Glean.Typed.Id Glean.Typed.Predicate Glean.Typed.Prim Glean.Typed.Query Glean.Query.Thrift Glean.Query.Thrift.Internal Glean.Write.Async Glean.Write.Options Glean.Write.SendBatch Glean.Write.SendQueue Glean.Write.SendAndRebaseQueue Glean.Angle.Lexer Glean.Angle.Parser Glean.Angle.Types Glean.Query.Angle Glean.Query.Types Glean.Repo.Text Glean.Schema.Resolve Glean.Schema.Util Glean.Backend.Remote Glean.Util.PredMap Glean.Util.PredSet build-tool-depends: alex:alex, happy:happy build-depends: glean:bytecode, glean:config, glean:defaultconfigs, glean:util, glean:if-glean-hs, glean:if-internal-hs, glean:rts, glean:stubs, glean:tailer, glean:rocksdb, library db import: fb-haskell, fb-cpp, deps, hsc2hs-cpp visibility: public hs-source-dirs: glean/db default-extensions: CPP exposed-modules: Glean.Database.Backup Glean.Database.Backup.Locator Glean.Database.Backup.Mock Glean.Database.Catalog.Filter Glean.Database.Catalog Glean.Database.Catalog.Local.Files Glean.Database.Catalog.Store Glean.Database.CompletePredicates Glean.Database.Config Glean.Database.Data Glean.Database.Env Glean.Database.Exception Glean.Database.Open Glean.Database.Close Glean.Database.Restore Glean.Database.Delete Glean.Database.Create Glean.Database.List Glean.Database.Janitor Glean.Database.Logger Glean.Database.Meta Glean.Database.Ownership Glean.Database.Repo Glean.Database.Schema Glean.Database.Schema.Evolve Glean.Database.Schema.Types Glean.Database.Stats Glean.Database.Storage Glean.Database.Storage.Memory Glean.Database.Storage.RocksDB Glean.Database.Tailer Glean.Database.Types Glean.Database.Validate Glean.Database.Work.Controller Glean.Database.Work.Heartbeat Glean.Database.Work Glean.Database.Work.Queue Glean.Database.Writes Glean.Database.Write.Batch Glean.Write.JSON Glean.Query.BindOrder Glean.Query.Codegen Glean.Query.Evolve Glean.Query.Expand Glean.Query.Flatten Glean.Query.Flatten.Types Glean.Query.Opt Glean.Query.Reorder Glean.Query.Typecheck Glean.Query.Typecheck.Types Glean.Query.Vars Glean.Query.JSON Glean.Query.Nested.Types Glean.Query.Derive Glean.Query.Nested Glean.Query.Nested.Compile Glean.Query.UserQuery Glean.Backend Glean.Dump Glean.Logger build-depends: glean:bytecode, glean:config, glean:core, glean:defaultconfigs, glean:util, glean:if-glean-hs, glean:if-internal-hs, glean:rts, glean:logger, glean:stubs, glean:tailer, glean:rocksdb, library client-hs import: fb-haskell, fb-cpp, deps visibility: public hs-source-dirs: glean/client/hs exposed-modules: Glean Glean.Angle Glean.Write Glean.Haxl Glean.Repo Glean.Haxl.Repos Glean.Util.ShellPrint build-depends: pretty, aeson-pretty, glean:if-glean-hs, glean:util, glean:core, glean:config, glean:haxl-datasource, prettyprinter-ansi-terminal library client-hs-local import: fb-haskell, fb-cpp, deps visibility: public hs-source-dirs: glean/client/hs/local exposed-modules: Glean.LocalOrRemote build-depends: glean:if-glean-hs, glean:core, glean:client-hs, glean:db, -- things needed by glean-clang library client-cpp import: fb-cpp, deps visibility: public cxx-sources: glean/cpp/sender.cpp, glean/cpp/glean.cpp, glean/interprocess/cpp/worklist.cpp, glean/interprocess/cpp/counters.cpp cxx-options: -DOSS=1 if arch(x86_64) cxx-options: -DGLEAN_X86_64 include-dirs: . install-includes: glean/cpp/glean.h build-depends: glean:rts library schema import: fb-haskell, fb-cpp, deps visibility: public hs-source-dirs: glean/schema/hs glean/schema/thrift/gen-hs2 exposed-modules: Glean.Schema.Buck Glean.Schema.Builtin Glean.Schema.Code Glean.Schema.CodeCxx Glean.Schema.CodeErlang Glean.Schema.CodeHack Glean.Schema.CodeHs Glean.Schema.CodeJava Glean.Schema.Codemarkup Glean.Schema.CodePp Glean.Schema.CodePython Glean.Schema.CodeRust Glean.Schema.CodeThrift Glean.Schema.CodeBuck Glean.Schema.Cxx1 Glean.Schema.Docmarkup Glean.Schema.Erlang Glean.Schema.Flow Glean.Schema.GleanTest Glean.Schema.Graphql Glean.Schema.Hack Glean.Schema.Hs Glean.Schema.Java Glean.Schema.Lsif Glean.Schema.Pp1 Glean.Schema.Python Glean.Schema.Rust Glean.Schema.SearchCode Glean.Schema.SearchCxx Glean.Schema.SearchErlang Glean.Schema.SearchHack Glean.Schema.SearchHs Glean.Schema.SearchPp Glean.Schema.Src Glean.Schema.Sys Glean.Schema.Thrift Glean.Schema.Buck.Types Glean.Schema.Builtin.Types Glean.Schema.Code.Types Glean.Schema.CodeCxx.Types Glean.Schema.CodeErlang.Types Glean.Schema.CodeFlow.Types Glean.Schema.CodeHack.Types Glean.Schema.CodeHs.Types Glean.Schema.CodeJava.Types Glean.Schema.CodeRust.Types Glean.Schema.CodeThrift.Types Glean.Schema.CodeBuck.Types Glean.Schema.Codemarkup.Types Glean.Schema.CodePp.Types Glean.Schema.CodePython.Types Glean.Schema.Cxx1.Types Glean.Schema.Docmarkup.Types Glean.Schema.Erlang.Types Glean.Schema.Flow.Types Glean.Schema.GleanTest.Types Glean.Schema.Graphql.Types Glean.Schema.Hack.Types Glean.Schema.Hs.Types Glean.Schema.Java.Types Glean.Schema.Lsif.Types Glean.Schema.Pp1.Types Glean.Schema.Python.Types Glean.Schema.Rust.Types Glean.Schema.SearchCode.Types Glean.Schema.SearchCxx.Types Glean.Schema.SearchErlang.Types Glean.Schema.SearchHack.Types Glean.Schema.SearchHs.Types Glean.Schema.SearchPp.Types Glean.Schema.Src.Types Glean.Schema.Sys.Types Glean.Schema.Thrift.Types build-depends: glean:if-glean-hs, glean:config, glean:core, library schema-query import: fb-haskell, fb-cpp, deps visibility: public hs-source-dirs: glean/schema/thrift/query/gen-hs2 exposed-modules: Glean.Schema.Query.Buck.Types Glean.Schema.Query.Builtin.Types Glean.Schema.Query.Code.Types Glean.Schema.Query.CodeCxx.Types Glean.Schema.Query.CodeErlang.Types Glean.Schema.Query.CodeFlow.Types Glean.Schema.Query.CodeHack.Types Glean.Schema.Query.CodeHs.Types Glean.Schema.Query.CodeJava.Types Glean.Schema.Query.CodeRust.Types Glean.Schema.Query.CodeThrift.Types Glean.Schema.Query.CodeBuck.Types Glean.Schema.Query.Codemarkup.Types Glean.Schema.Query.CodePp.Types Glean.Schema.Query.CodePython.Types Glean.Schema.Query.Cxx1.Types Glean.Schema.Query.Docmarkup.Types Glean.Schema.Query.Erlang.Types Glean.Schema.Query.Flow.Types Glean.Schema.Query.GleanTest.Types Glean.Schema.Query.Graphql.Types Glean.Schema.Query.Hack.Types Glean.Schema.Query.Hs.Types Glean.Schema.Query.Java.Types Glean.Schema.Query.Lsif.Types Glean.Schema.Query.Pp1.Types Glean.Schema.Query.Python.Types Glean.Schema.Query.Rust.Types Glean.Schema.Query.SearchCxx.Types Glean.Schema.Query.SearchHack.Types Glean.Schema.Query.SearchPp.Types Glean.Schema.Query.Src.Types Glean.Schema.Query.Sys.Types Glean.Schema.Query.Thrift.Types build-depends: glean:if-glean-hs, glean:config, glean:core, glean:schema, -- library clang-test-xref -- import: fb-haskell, fb-cpp, deps -- visibility: public -- hs-source-dirs: lang/clang -- exposed-modules: -- Glean.Clang.Test.XRef library haxl-datasource import: fb-haskell, fb-cpp, deps hs-source-dirs: glean/haxl exposed-modules: Haxl.DataSource.Glean Haxl.DataSource.Glean.Backend Haxl.DataSource.Glean.Common Haxl.DataSource.Glean.Remote build-depends: glean:config, glean:core, glean:db, glean:if-glean-hs, glean:util, thrift-haxl executable gen-schema import: fb-haskell, fb-cpp, deps, exe main-is: Glean/Schema/Gen/Main.hs hs-source-dirs: glean/schema/gen ghc-options: -main-is Glean.Schema.Gen.Main other-modules: Glean.Schema.Gen.HackJson, Glean.Schema.Gen.Utils, Glean.Schema.Gen.Cpp, Glean.Schema.Gen.Haskell, Glean.Schema.Gen.Thrift build-depends: glean:core, glean:db, glean:config, aeson-pretty library bytecode-instruction import: fb-haskell, fb-cpp, deps visibility: private hs-source-dirs: glean/bytecode/def exposed-modules: Glean.Bytecode.Generate.Instruction build-depends: glean:bytecode library bytecode import: fb-haskell, fb-cpp, deps visibility: private hs-source-dirs: glean/bytecode exposed-modules: Glean.Bytecode.Types Glean.Bytecode.Decode executable gen-bytecode-cpp import: fb-haskell, fb-cpp, deps, exe main-is: Glean/Bytecode/Generate/Cpp.hs hs-source-dirs: glean/bytecode/gen ghc-options: -main-is Glean.Bytecode.Generate.Cpp build-depends: glean:bytecode, glean:bytecode-instruction executable gen-bytecode-hs import: fb-haskell, fb-cpp, deps, exe main-is: Glean/Bytecode/Generate/Haskell.hs hs-source-dirs: glean/bytecode/gen ghc-options: -main-is Glean.Bytecode.Generate.Haskell build-depends: glean:bytecode, glean:bytecode-instruction library lib import: fb-haskell, fb-cpp, deps visibility: public hs-source-dirs: glean/lib exposed-modules: Glean.Pretty.Code Glean.Pretty.Cxx Glean.Pretty.CxxAnn Glean.Pretty.Hack Glean.Pretty.HackAnn Glean.Pretty.Hs Glean.Pretty.Java Glean.Pretty.Src Glean.Pretty.Search Glean.Pretty.Shared Glean.Pretty.Style Glean.Pretty.Styles Glean.Search.EntityQuery Glean.Search.Graph Glean.Search.Search Glean.Derive Glean.Util.AnnMaker Glean.Util.CxxXRef Glean.Util.Declarations Glean.Util.URI Glean.Util.Range Glean.Util.XRefs Glean.Util.Same Glean.Util.SchemaRepos -- TODO: move into facebook/ ? -- Glean.Util.Buck Glean.Write.SimpleAsync build-depends: glean:client-hs, glean:core, glean:db, glean:if-glean-hs, glean:if-search-hs, glean:schema, glean:schema-query, glean:util, split library test-unit import: fb-haskell, fb-cpp, deps hs-source-dirs: glean/test/unit exposed-modules: Glean.Test.HUnit Glean.Test.Mock -- Stub for regression tests library handler import: fb-haskell, fb-cpp, deps hs-source-dirs: glean/server exposed-modules: Glean.Handler build-depends: glean:client-hs, glean:if-fb303-hs, glean:if-glean-hs, glean:stubs, glean:db, glean:config, executable glean-server import: fb-haskell, fb-cpp, deps, exe hs-source-dirs: glean/server main-is: Glean/Server.hs ghc-options: -main-is Glean.Server default-extensions: CPP other-modules: Glean.Handler Glean.Server.Config extra-libraries: stdc++ build-depends: glean:client-hs, glean:if-fb303-hs, glean:if-glean-hs, glean:if-index-hs, glean:stubs, glean:config, glean:core, glean:db, glean:util, haskeline >=0.7.3 && <0.8, json, thrift-server library shell-lib import: fb-haskell, fb-cpp, deps hs-source-dirs: glean/shell exposed-modules: Glean.Shell Glean.Shell.Error Glean.Shell.Index Glean.Shell.Terminal Glean.Shell.Types default-extensions: CPP extra-libraries: stdc++ build-depends: glean:cli-types, glean:if-glean-hs, glean:stubs, glean:config, glean:core, glean:db, glean:client-hs, glean:client-hs-local, glean:util, glean:lsif, haskeline >=0.7.3 && <0.8, json, monad-control, prettyprinter-ansi-terminal, split library cli-types import: fb-haskell, fb-cpp, deps hs-source-dirs: glean/tools/gleancli/plugin exposed-modules: GleanCLI.Types build-depends: glean:client-hs-local, glean:util, executable glean import: fb-haskell, fb-cpp, deps, exe hs-source-dirs: glean/tools/gleancli main-is: GleanCLI.hs other-modules: GleanCLI.Common GleanCLI.Complete GleanCLI.Derive GleanCLI.Finish GleanCLI.Query GleanCLI.Restore GleanCLI.Write ghc-options: -main-is GleanCLI extra-libraries: stdc++ build-depends: glean:cli-types, glean:client-hs, glean:client-hs-local, glean:db, glean:if-glean-hs, glean:shell-lib, glean:stubs, glean:config, glean:core, glean:lib, glean:util, json, split, executable glean-search import: fb-haskell, fb-cpp, deps, exe hs-source-dirs: glean/tools/search main-is: Search.hs ghc-options: -main-is Search extra-libraries: stdc++ build-depends: glean:client-hs, glean:lib, glean:schema, glean:stubs, glean:util, glean:if-search-hs, aeson-pretty, executable glean-hyperlink import: fb-haskell, fb-cpp, deps, exe hs-source-dirs: glean/demo main-is: Hyperlink.hs ghc-options: -main-is Hyperlink extra-libraries: stdc++ build-depends: glean:lib, glean:schema, glean:util, glean:client-hs, http-types, wai, warp library clang-derive-lib import: fb-haskell, fb-cpp, deps hs-source-dirs: glean/lang/clang exposed-modules: Derive.Env Derive.Lib Derive.Types other-modules: Derive.Common Derive.CxxDeclarationSources Derive.CxxDeclarationTargets Derive.CxxSame Derive.CxxTargetUses Derive.Generic build-depends: glean:client-hs, glean:client-hs-local, glean:core, glean:lib, glean:schema, glean:util, ghc-compact, vector-algorithms, library hack-derive-lib import: fb-haskell, fb-cpp, deps hs-source-dirs: glean/lang/hack exposed-modules: Derive.All Derive.Env Derive.HackDeclarationTarget Derive.Types build-depends: glean:client-hs, glean:core, glean:if-glean-hs, glean:lib, glean:schema, glean:util, IntervalMap, -- external hack deriver -- n.b in subdir to avoid recompilation of hack-derive-lib executable hack-derive import: fb-haskell, fb-cpp, deps, exe hs-source-dirs: glean/lang/hack/deriver main-is: Derive.hs ghc-options: -main-is Derive build-depends: glean:client-hs, glean:hack-derive-lib, glean:stubs, glean:util, -- ----------------------------------------------------------------------------- -- LSIF support library lsif import: fb-haskell, fb-cpp, deps hs-source-dirs: glean/lang/lsif exposed-modules: Data.LSIF.Angle Data.LSIF.Types Data.LSIF.JSON Glean.LSIF.Driver build-depends: aeson -- | A TypeScript indexer based on lsif-tsc executable glean-lsif-tsc import: fb-haskell, fb-cpp, deps, exe hs-source-dirs: glean/lang/typescript main-is: Main.hs ghc-options: -main-is Main build-depends: glean:lsif, glean:stubs, -- ----------------------------------------------------------------------------- -- Glass services -- Glass thrift service definition library if-glass-hs import: fb-haskell, fb-cpp, deps visibility: public hs-source-dirs: glean/glass/if/glass/gen-hs2 exposed-modules: Glean.Glass.Types Glean.Glass.GlassService.Client Glean.Glass.GlassService.Service build-depends: glean:config, glean:if-fb303-hs, glean:if-index-hs -- Glass core library library glass-lib import: fb-haskell, fb-cpp, deps visibility: public default-extensions: CPP hs-source-dirs: glean/glass exposed-modules: Glean.Glass.Annotations Glean.Glass.Attributes Glean.Glass.Attributes.Class Glean.Glass.Attributes.SymbolKind Glean.Glass.Base Glean.Glass.Comments Glean.Glass.Config Glean.Glass.Env Glean.Glass.Handler Glean.Glass.Logging Glean.Glass.Main Glean.Glass.Options Glean.Glass.Path Glean.Glass.Pretty.Annotations Glean.Glass.Pretty.Cxx Glean.Glass.Pretty.Hack Glean.Glass.Query Glean.Glass.Query.Cxx Glean.Glass.Range Glean.Glass.RepoMapping Glean.Glass.Repos Glean.Glass.Search Glean.Glass.Search.Class Glean.Glass.Search.Cxx Glean.Glass.Search.Erlang Glean.Glass.Search.Flow Glean.Glass.Search.Hack Glean.Glass.Search.Haskell Glean.Glass.Search.Python Glean.Glass.SearchRelated Glean.Glass.SymbolId Glean.Glass.SymbolId.Buck Glean.Glass.SymbolId.Class Glean.Glass.SymbolId.Cxx Glean.Glass.SymbolId.Erlang Glean.Glass.SymbolId.Flow Glean.Glass.SymbolId.Hack Glean.Glass.SymbolId.Hs Glean.Glass.SymbolId.Pp Glean.Glass.SymbolId.Python Glean.Glass.SymbolId.Rust Glean.Glass.SymbolId.Thrift Glean.Glass.SymbolKind Glean.Glass.SymbolMap Glean.Glass.SymbolSig Glean.Glass.Utils build-depends: glean:client-hs, glean:client-hs-local, glean:core, glean:if-glass-hs, glean:if-index-hs, glean:lib, glean:logger, glean:schema, glean:stubs, glean:util, thrift-server, uri-encode, executable glass-server import: fb-haskell, fb-cpp, deps, exe hs-source-dirs: glean/glass/server main-is: Server.hs ghc-options: -main-is Server -threaded extra-libraries: stdc++ build-depends: glean:glass-lib, executable glass-symbol import: fb-haskell, fb-cpp, deps, exe hs-source-dirs: glean/glass/tools/ main-is: Glean/Glass/Test/Symbol.hs ghc-options: -main-is Glean.Glass.Test.Symbol extra-libraries: stdc++ default-extensions: CPP build-depends: glean:glass-lib, glean:if-glass-hs, glean:stubs, -- Minimal glass client showing how to wire things up executable glass-democlient import: fb-haskell, fb-cpp, deps, exe hs-source-dirs: glean/glass/tools/ main-is: Glean/Glass/Test/DemoClient.hs ghc-options: -main-is Glean.Glass.Test.DemoClient extra-libraries: stdc++ build-depends: glean:if-glass-hs, glean:stubs, -- ----------------------------------------------------------------------------- -- Benchmarks library bench-util import: fb-haskell, fb-cpp, deps hs-source-dirs: glean/bench/lib exposed-modules: Glean.Util.Benchmark build-depends: glean:stubs, criterion executable query-bench import: fb-haskell, fb-cpp, deps, exe if !flag(benchmarks) buildable: False hs-source-dirs: glean/bench main-is: QueryBench.hs other-modules: BenchDB ghc-options: -main-is QueryBench build-depends: glean:bench-util, glean:client-hs, glean:core, glean:db, glean:if-glean-hs, glean:schema, glean:schema-query, glean:test-lib, glean:util, criterion executable rename-bench import: fb-haskell, fb-cpp, deps, exe if !flag(benchmarks) buildable: False hs-source-dirs: glean/bench main-is: RenameBench.hs ghc-options: -main-is RenameBench build-depends: glean:bench-util, glean:core, glean:db, glean:schema, glean:test-lib, glean:util, criterion executable user-query-bench import: fb-haskell, fb-cpp, deps, exe if !flag(benchmarks) buildable: False hs-source-dirs: glean/bench main-is: UserQueryBench.hs ghc-options: -main-is UserQueryBench build-depends: glean:bench-util, glean:client-hs, glean:db, glean:if-glean-hs, glean:schema, glean:test-lib, glean:util, criterion executable makefact-bench import: fb-haskell, deps, exe if !flag(benchmarks) buildable: False hs-source-dirs: glean/bench main-is: MakeFactBench.hs ghc-options: -main-is MakeFactBench build-depends: glean:bench-util, glean:client-hs, glean:core, glean:schema, glean:test-lib, criterion -- ----------------------------------------------------------------------------- -- Tests library test-lib import: fb-haskell, fb-cpp, deps visibility: private hs-source-dirs: glean/test/lib exposed-modules: TestBatch TestDB TestData Glean.Database.Catalog.Test Glean.Database.Test Glean.Query.Thrift.Test build-depends: glean:core, glean:db, glean:schema, glean:config, glean:if-glean-hs, glean:if-internal-hs, glean:stubs, glean:test-unit, glean:util -- snapshot and other regression tests against glean library regression-test-lib import: fb-haskell, fb-cpp, deps visibility: private hs-source-dirs: glean/test/regression glean/lang/flow glean/lang/hack exposed-modules: Glean.Regression.Config Glean.Regression.Driver.Args.Flow Glean.Regression.Driver.Args.Hack Glean.Regression.Driver.External Glean.Regression.Indexer Glean.Regression.Indexer.External Glean.Regression.Snapshot Glean.Regression.Snapshot.Driver Glean.Regression.Snapshot.Options Glean.Regression.Snapshot.Query Glean.Regression.Snapshot.Result Glean.Regression.Snapshot.Transform Glean.Regression.Test build-depends: glean:client-hs, glean:db, glean:handler, glean:if-glean-hs, glean:lib, glean:stubs, glean:test-lib, glean:util, split, thrift-server, yaml -- library clang-derive-test -- import: fb-haskell, fb-cpp, deps -- hs-source-dirs: glean/lang/clang/tests -- exposed-modules: -- Missing Glean.Clang.Test -- Glean.Clang.Test.DerivePass -- Glean.Regression.Driver.DeriveFunctionCalls -- Glean.Regression.Driver.DeriveDeclFamilies -- Glean.Regression.Driver.DeriveObjcInheritance -- Glean.Regression.Driver.DeriveDeclByName -- Glean.Regression.Driver.DocBlock -- Glean.Regression.Driver.Clang -- build-depends: -- glean:regression-test-lib, -- glean:clang-derive-lib, test-suite hack-derive-test import: fb-haskell, fb-cpp, deps hs-source-dirs: glean/lang/hack/tests type: exitcode-stdio-1.0 main-is: Main.hs ghc-options: -main-is Main other-modules: Driver build-depends: glean:regression-test-lib, glean:hack-derive-lib, if !flag(hack-tests) buildable: False library bench-lib import: fb-haskell, fb-cpp, deps visibility: private hs-source-dirs: glean/bench exposed-modules: BenchDB build-depends: glean:client-hs, glean:core, glean:db, glean:schema, glean:test-lib, -- Skip this one: it depends on the C++ code for the schema, and we -- don't want to generate and compile all that just for this one test. -- -- test-suite encoding -- import: test -- type: exitcode-stdio-1.0 -- main-is: EncodingTest.hs -- ghc-options: -main-is EncodingTest -- build-depends: -- base16-bytestring, -- test-compact, -- glean:stubs, -- glean:core, -- glean:schema -- -- library test-compact -- import: fb-haskell, fb-cpp, deps -- visibility: private -- include-dirs: . -- cxx-sources: -- glean/test/cpp/compact.cpp -- build-depends: -- schema-cpp -- -- library schema-cpp -- import: fb-haskell, fb-cpp, deps -- visibility: private -- include-dirs: . -- cxx-sources: -- glean/schema/gen-cpp2/glean_test_types.cpp -- glean/schema/gen-cpp2/glean_test_data.cpp -- glean/schema/gen-cpp2/builtin_types.cpp -- glean/schema/gen-cpp2/builtin_data.cpp -- glean/schema/gen-cpp2/sys_types.cpp -- glean/schema/gen-cpp2/sys_data.cpp -- ... etc. common test import: fb-haskell, fb-cpp, deps, exe hs-source-dirs: glean/test/tests build-depends: glean:test-lib, glean:test-unit, HUnit, test-suite jsonquery import: test type: exitcode-stdio-1.0 main-is: JSONQueryTest.hs ghc-options: -main-is JSONQueryTest build-depends: glean:stubs, glean:core, glean:db, glean:if-glean-hs, glean:schema, glean:schema-query, glean:config, test-suite angle import: test type: exitcode-stdio-1.0 main-is: AngleTest.hs ghc-options: -main-is AngleTest build-depends: glean:stubs, glean:core, glean:db, glean:if-glean-hs, glean:schema test-suite cppexception import: test type: exitcode-stdio-1.0 main-is: CppCatchTest.hs ghc-options: -main-is CppCatchTest build-depends: glean:stubs, glean:core, glean:db, glean:if-glean-hs, glean:schema test-suite timeout import: test type: exitcode-stdio-1.0 main-is: TimeoutTest.hs ghc-options: -main-is TimeoutTest build-depends: glean:client-hs, glean:stubs, glean:core, glean:schema, glean:bench-lib test-suite jsonwrite import: test type: exitcode-stdio-1.0 main-is: JSONWriteTest.hs ghc-options: -main-is JSONWriteTest build-depends: glean:client-hs, glean:stubs, glean:core, glean:db, glean:if-glean-hs, glean:schema, test-suite rtstest import: test type: exitcode-stdio-1.0 main-is: RTSTest.hs ghc-options: -main-is RTSTest build-depends: glean:client-hs, glean:stubs, glean:core, glean:schema, glean:config, glean:if-glean-hs, QuickCheck, quickcheck-text, test-suite rts-json import: test type: exitcode-stdio-1.0 main-is: RTSJSONTest.hs ghc-options: -main-is RTSJSONTest build-depends: glean:stubs, glean:core, QuickCheck, quickcheck-text, test-suite dbjanitor import: test type: exitcode-stdio-1.0 main-is: DatabaseJanitorTest.hs ghc-options: -main-is DatabaseJanitorTest build-depends: glean:stubs, glean:core, glean:db, glean:if-glean-hs, glean:if-internal-hs, glean:schema, glean:config, glean:util test-suite dbderive import: test type: exitcode-stdio-1.0 main-is: DbDeriveTest.hs ghc-options: -main-is DbDeriveTest build-depends: glean:client-hs, glean:db, glean:if-glean-hs, glean:if-internal-hs, glean:schema, glean:stubs test-suite backup import: test type: exitcode-stdio-1.0 main-is: BackupTest.hs ghc-options: -main-is BackupTest build-depends: glean:stubs, glean:core, glean:db, glean:if-glean-hs, glean:schema, glean:config, glean:util test-suite catalog import: test type: exitcode-stdio-1.0 main-is: CatalogTest.hs ghc-options: -main-is CatalogTest build-depends: glean:stubs, glean:core, glean:db, glean:if-glean-hs, glean:if-internal-hs, QuickCheck, quickcheck-io, glean:util test-suite lifecycle import: test type: exitcode-stdio-1.0 main-is: LifecycleTest.hs ghc-options: -main-is LifecycleTest build-depends: glean:client-hs, glean:stubs, glean:core, glean:db, glean:if-glean-hs, glean:if-internal-hs, glean:util, QuickCheck, quickcheck-io, test-suite worker import: test type: exitcode-stdio-1.0 main-is: WorkerTest.hs ghc-options: -main-is WorkerTest build-depends: glean:stubs, glean:core, glean:db, glean:if-glean-hs, glean:schema, glean:config, QuickCheck, test-suite shard import: test type: exitcode-stdio-1.0 main-is: TestShard.hs ghc-options: -main-is TestShard build-depends: glean:stubs, glean:core, glean:if-glean-hs, test-suite dbproperties import: test type: exitcode-stdio-1.0 main-is: DbPropertiesTest.hs ghc-options: -main-is DbPropertiesTest build-depends: glean:client-hs, glean:stubs, glean:core, test-suite parser import: test type: exitcode-stdio-1.0 main-is: ParserTest.hs ghc-options: -main-is ParserTest build-depends: glean:stubs, glean:core, test-suite schematest import: test type: exitcode-stdio-1.0 main-is: SchemaTest.hs ghc-options: -main-is SchemaTest build-depends: glean:stubs, glean:core, glean:db, glean:config, glean:if-glean-hs, glean:util, test-suite inventory import: test type: exitcode-stdio-1.0 main-is: InventoryTest.hs ghc-options: -main-is InventoryTest build-depends: glean:stubs, glean:core, glean:db test-suite external-controller import: test type: exitcode-stdio-1.0 main-is: ExternalControllerTest.hs ghc-options: -main-is ExternalControllerTest build-depends: glean:stubs, glean:core, glean:db, glean:if-glean-hs, glean:config test-suite continuation import: test type: exitcode-stdio-1.0 main-is: ContinuationTest.hs ghc-options: -main-is ContinuationTest build-depends: glean:stubs, glean:core, glean:if-glean-hs, glean:schema test-suite lookup import: test type: exitcode-stdio-1.0 main-is: LookupTest.hs ghc-options: -main-is LookupTest cxx-sources: glean/rts/tests/LookupInvariants.cpp build-depends: glean:stubs, glean:core, glean:db test-suite incremental import: test type: exitcode-stdio-1.0 main-is: IncrementalTest.hs ghc-options: -main-is IncrementalTest build-depends: glean:stubs, glean:client-hs, glean:core, glean:db, glean:lib, glean:schema if arch(x86_64) buildable: True else buildable: False test-suite glass-range import: fb-haskell, fb-cpp, deps, exe hs-source-dirs: glean/glass/test default-extensions: CPP type: exitcode-stdio-1.0 main-is: Glean/Glass/Test/Range.hs ghc-options: -main-is Glean.Glass.Test.Range build-depends: HUnit, glean:client-hs, glean:glass-lib, glean:if-glass-hs, glean:lib, glean:schema, glean:stubs, glean:test-lib, glean:test-unit, ------------------------------------------------------------------------ -- Regression tests for schemas, indexers and systems -- -- Glean snapshot regression tests, these require the indexers installed -- test-suite glean-snapshot-flow import: fb-haskell, deps hs-source-dirs: glean/lang/codemarkup/tests/flow type: exitcode-stdio-1.0 main-is: Glean/Regression/Flow/Main.hs ghc-options: -main-is Glean.Regression.Flow.Main build-depends: glean:regression-test-lib test-suite glean-snapshot-hack import: fb-haskell, deps hs-source-dirs: glean/lang/codemarkup/tests/hack type: exitcode-stdio-1.0 main-is: Glean/Regression/Hack/Main.hs ghc-options: -main-is Glean.Regression.Hack.Main build-depends: glean:regression-test-lib -- no regular hhvm builds for arm64 if !flag(hack-tests) buildable: False ------------------------------------------------------------------------ -- glass regression tests -- library glass-regression import: fb-haskell, fb-cpp, deps visibility: private hs-source-dirs: glean/glass/test/regression/lib exposed-modules: Glean.Glass.Regression.Tests Glean.Glass.Regression.Util build-depends: glean:client-hs, glean:glass-lib, glean:if-glass-hs, glean:logger, glean:stubs, glean:util, -- common to all regression tests common glass-regression-deps hs-source-dirs: glean/glass/test/regression build-depends: HUnit, glean:glass-lib, glean:glass-regression, glean:if-glass-hs, glean:regression-test-lib, test-suite glass-regression-buck import: glass-regression-deps, fb-haskell, deps type: exitcode-stdio-1.0 main-is: Glean/Glass/Regression/Buck.hs ghc-options: -main-is Glean.Glass.Regression.Buck buildable: False --test-suite glass-regression-cpp -- import: glass-regression, fb-haskell, deps -- type: exitcode-stdio-1.0 -- main-is: Glean/Glass/Regression/Cpp.hs -- ghc-options: -main-is Glean.Glass.Regression.Cpp -- build-depends: -- glean:clang-derive, -- glean:clang-derive-test, test-suite glass-regression-flow import: glass-regression-deps, fb-haskell, deps type: exitcode-stdio-1.0 main-is: Glean/Glass/Regression/Flow/Main.hs ghc-options: -main-is Glean.Glass.Regression.Flow.Main other-modules: Glean.Glass.Regression.Flow test-suite glass-regression-hack import: glass-regression-deps, fb-haskell, deps type: exitcode-stdio-1.0 main-is: Glean/Glass/Regression/Hack/Main.hs ghc-options: -main-is Glean.Glass.Regression.Hack.Main other-modules: Glean.Glass.Regression.Hack build-depends: glean:client-hs, glean:util, if !flag(hack-tests) buildable: False test-suite glass-regression-python import: glass-regression-deps, fb-haskell, deps type: exitcode-stdio-1.0 main-is: Glean/Glass/Regression/Python.hs ghc-options: -main-is Glean.Glass.Regression.Python buildable: False test-suite glass-regression-thrift import: glass-regression-deps, fb-haskell, deps type: exitcode-stdio-1.0 main-is: Glean/Glass/Regression/Thrift.hs ghc-options: -main-is Glean.Glass.Regression.Thrift buildable: False