Workspace rules (Nixpkgs)
Bazel

Workspace rules (Nixpkgs)


haskell_register_ghc_nixpkgs

haskell_register_ghc_nixpkgs(version, is_static, static_runtime, fully_static_link, build_file,
                             build_file_content, compiler_flags, compiler_flags_select, haddock_flags,
                             repl_ghci_args, cabalopts, locale_archive, attribute_path,
                             sh_posix_attributes, nix_file, nix_file_deps, nixopts, locale,
                             repositories, repository, nix_file_content)

Register a package from Nixpkgs as a toolchain.

Toolchains can be used to compile Haskell code. To have this toolchain selected during toolchain resolution, set a host platform that includes the @io_tweag_rules_nixpkgs//nixpkgs/constraints:support_nix constraint value.

Examples

haskell_register_ghc_nixpkgs(
    locale_archive = "@glibc_locales//:locale-archive",
    atttribute_path = "haskellPackages.ghc",
    version = "1.2.3",   # The version of GHC
)

Setting the host platform can be done on the command-line like in the following:

--host_platform=@io_tweag_rules_nixpkgs//nixpkgs/platforms:host

Attributes

version required
is_static optional; default is None

Deprecated. The functionality it previously gated (supporting GHC versions with static runtime systems) now sits under static_runtime, a name chosen to avoid confusion with the new flag fully_static_link, which controls support for fully-statically-linked binaries. During the deprecation period, we rewrite is_static to static_runtime in this macro as long as the new attributes aren’t also used. This argument and supporting code should be removed in a future release.

static_runtime optional; default is None

True if and only if a static GHC runtime is to be used. This is required in order to use statically-linked Haskell libraries with GHCi and Template Haskell.

build_file optional; default is None
build_file_content optional; default is None
compiler_flags optional; default is None
compiler_flags_select optional; default is None

temporary workaround to pass conditional arguments. See https://github.com/bazelbuild/bazel/issues/9199 for details.

haddock_flags optional; default is None
repl_ghci_args optional; default is None
cabalopts optional; default is None
locale_archive optional; default is None
attribute_path optional; default is "haskellPackages.ghc"
sh_posix_attributes optional; default is None

List of attribute paths to extract standard Unix shell tools from. Passed to nixpkgs_sh_posix_configure.

nix_file optional; default is None
nix_file_deps optional; default is []
nixopts optional; default is None
locale optional; default is None
repositories optional; default is {}
repository optional; default is None
nix_file_content optional; default is None