graphql-engine/cabal/dev-sh.project.local
Auke Booij f14b47cf42 chore(server): stricter GHC warnings for libraries
#7730 added some `package` stanzas to the Cabal project files so that we enable more GHC warnings.

#7761 recognized that these package stanzas used incorrect package names, and were therefore dysfunctional.

Simultaneously with that PR, #7758 renamed some of our Cabal packages, to the same ones used by #7730. However, it didn't change the names used by the package stanzas.

So finally, this reverts the names in the stanzas to the ones used by #7730 (and which are now correct).

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/8275
GitOrigin-RevId: 1a3748ed79d1fa699c5e543b1af16f359c35c028
2023-03-14 17:01:46 +00:00

129 lines
3.9 KiB
Plaintext

-- This is the local cabal configuration file used by the `scripts/dev.sh`
-- development script, which uses `... --project-file=cabal/dev-sh.project`
-- which in turn consults this file.
--
-- You can temporarily override values here rather than modifying 'dev.sh'
-- during development (although that might break certain things).
package *
-- build with DWARF support. This may not be very useful yet, but we want
-- to be able to experiment with it, and turning it from off to on requires
-- a massive rebuild. To start, see:
-- https://www.haskell.org/ghc/blog/20200403-dwarf-1.html
debug-info: 2
-- For compile-time performance (see cabal.project.ci.local):
ghc-options:
-- We compile with package-level parallelism, so just use a small amount
-- of module-level parallelism for dependencies:
-j2
+RTS -A64m -n2m -RTS
-- This guarantees that -Wredundant-contraints will properly fire, even with
-- optimizations disabled. See https://gitlab.haskell.org/ghc/ghc/-/issues/16932
ghc-options: -fsolve-constant-dicts
-- NOTE: new-build may report a misleading 'Build profile: -O1'
-- See:https://github.com/haskell/cabal/issues/6221
flags: -optimize-hasura
package graphql-engine
-- NOTE: 'cabal new-build --enable-coverage' seems to rebuild all deps with coverage
-- which is not what we originally wanted. But building the test modules
-- themselves with coverage is actually nice for validation.
coverage: true
-- to match CI:
ghc-options: -Werror
-- For compile-time performance (see cabal.project.ci.local):
ghc-options: -j
-- By default GHC is dynamically linked, so to run TemplateHaskell you need dynamic versions of
-- libraries. But, also by default, cabal links executables statically, which requires static
-- versions of the libraries. Therefore, by default, cabal builds with -dynamic-too to generate
-- static and dynamic versions of all object files.
-- Setting executable-dynamic: True forces cabal to build a dynamic executable; but it's not
-- enough on its own: since library-vanilla defaults to True, cabal would still build a static
-- library. With those two flags together, we can finally only build one version of the library,
-- which substentially improves compilation time.
executable-dynamic: True
library-vanilla: False
-- These packages link back into our fork of resource-pool, hence we need to
-- disable a statically linked library build
package hedis
library-vanilla: False
package Spock
library-vanilla: False
package hasql-pool
library-vanilla: False
-- Set common options to internal libraries
package aeson-ordered
ghc-options: -j -Werror
package api-tests
ghc-options: -j -Werror
package arrows-extra
ghc-options: -j -Werror
package dc-api
ghc-options: -j -Werror
package graphql-parser
ghc-options: -j -Werror
package error-message
ghc-options: -j -Werror
package incremental
ghc-options: -j -Werror
package hasura-prelude
ghc-options: -j -Werror
package schema-parsers
ghc-options: -j -Werror
package pg-client
ghc-options: -j -Werror
package resource-pool
ghc-options: -j -Werror
package test-harness
ghc-options: -j -Werror
package mysql
extra-include-dirs:
/opt/homebrew/opt/openssl/include
/opt/homebrew/opt/mysql-client@5.7/include
extra-lib-dirs:
/opt/homebrew/opt/openssl/lib
/opt/homebrew/opt/mysql-client@5.7/lib
package odbc
extra-include-dirs: /opt/homebrew/opt/unixodbc/include
extra-lib-dirs: /opt/homebrew/opt/unixodbc/lib
package pcre-light
extra-include-dirs: /opt/homebrew/opt/pcre/include
extra-lib-dirs: /opt/homebrew/opt/pcre/lib
package postgresql-libpq
extra-include-dirs:
/opt/homebrew/opt/libpq/include
/opt/homebrew/opt/openssl/include
extra-lib-dirs:
/opt/homebrew/opt/libpq/lib
/opt/homebrew/opt/openssl/lib
package pg-client
extra-include-dirs:
/opt/homebrew/opt/libpq/include
/opt/homebrew/opt/openssl/include
extra-lib-dirs:
/opt/homebrew/opt/libpq/lib
/opt/homebrew/opt/openssl/lib