2017-08-01 18:44:08 +02:00
|
|
|
# TODO(@Ericson2314): Remove `pkgs` param, which is only used for
|
2017-08-30 14:40:54 +02:00
|
|
|
# `buildStackProject`, `justStaticExecutables` and `checkUnusedPackages`
|
2017-08-01 18:44:08 +02:00
|
|
|
{ pkgs, lib }:
|
2015-01-10 20:26:08 +01:00
|
|
|
|
|
|
|
rec {
|
2021-10-26 07:26:30 +02:00
|
|
|
/* The same functionality as this haskell.lib, except that the derivation
|
|
|
|
being overridden is always the last parameter. This permits more natural
|
|
|
|
composition of several overrides, i.e. without having to nestle one call
|
|
|
|
between the function name and argument of another. haskell.lib.compose is
|
|
|
|
preferred for any new code.
|
|
|
|
*/
|
2022-01-22 21:38:03 +01:00
|
|
|
compose = import ./compose.nix { inherit pkgs lib; };
|
2021-10-26 07:26:30 +02:00
|
|
|
|
2017-10-31 21:50:23 +01:00
|
|
|
/* This function takes a file like `hackage-packages.nix` and constructs
|
|
|
|
a full package set out of that.
|
|
|
|
*/
|
2021-10-26 07:26:30 +02:00
|
|
|
makePackageSet = compose.makePackageSet;
|
2015-01-07 20:31:32 +01:00
|
|
|
|
2017-10-31 21:50:23 +01:00
|
|
|
/* The function overrideCabal lets you alter the arguments to the
|
|
|
|
mkDerivation function.
|
|
|
|
|
|
|
|
Example:
|
|
|
|
|
|
|
|
First, note how the aeson package is constructed in hackage-packages.nix:
|
|
|
|
|
|
|
|
"aeson" = callPackage ({ mkDerivation, attoparsec, <snip>
|
|
|
|
}:
|
|
|
|
mkDerivation {
|
|
|
|
pname = "aeson";
|
|
|
|
<snip>
|
|
|
|
homepage = "https://github.com/bos/aeson";
|
|
|
|
})
|
|
|
|
|
|
|
|
The mkDerivation function of haskellPackages will take care of putting
|
|
|
|
the homepage in the right place, in meta.
|
|
|
|
|
|
|
|
> haskellPackages.aeson.meta.homepage
|
|
|
|
"https://github.com/bos/aeson"
|
|
|
|
|
|
|
|
> x = haskell.lib.overrideCabal haskellPackages.aeson (old: { homepage = old.homepage + "#readme"; })
|
|
|
|
> x.meta.homepage
|
|
|
|
"https://github.com/bos/aeson#readme"
|
|
|
|
|
|
|
|
*/
|
2021-10-26 07:26:30 +02:00
|
|
|
overrideCabal = drv: f: compose.overrideCabal f drv;
|
2015-01-07 20:31:32 +01:00
|
|
|
|
2018-01-18 22:37:47 +01:00
|
|
|
# : Map Name (Either Path VersionNumber) -> HaskellPackageOverrideSet
|
|
|
|
# Given a set whose values are either paths or version strings, produces
|
|
|
|
# a package override set (i.e. (self: super: { etc. })) that sets
|
|
|
|
# the packages named in the input set to the corresponding versions
|
2021-10-26 07:26:30 +02:00
|
|
|
packageSourceOverrides = compose.packageSourceOverrides;
|
2018-01-18 22:37:47 +01:00
|
|
|
|
2017-10-31 21:50:23 +01:00
|
|
|
/* doCoverage modifies a haskell package to enable the generation
|
|
|
|
and installation of a coverage report.
|
|
|
|
|
|
|
|
See https://wiki.haskell.org/Haskell_program_coverage
|
|
|
|
*/
|
2021-10-26 07:26:30 +02:00
|
|
|
doCoverage = compose.doCoverage;
|
2017-10-31 21:50:23 +01:00
|
|
|
|
|
|
|
/* dontCoverage modifies a haskell package to disable the generation
|
|
|
|
and installation of a coverage report.
|
|
|
|
*/
|
2021-10-26 07:26:30 +02:00
|
|
|
dontCoverage = compose.dontCoverage;
|
2017-02-14 16:17:40 +01:00
|
|
|
|
2017-10-31 21:50:23 +01:00
|
|
|
/* doHaddock modifies a haskell package to enable the generation and
|
|
|
|
installation of API documentation from code comments using the
|
|
|
|
haddock tool.
|
|
|
|
*/
|
2021-10-26 07:26:30 +02:00
|
|
|
doHaddock = compose.doHaddock;
|
2017-10-31 21:50:23 +01:00
|
|
|
|
|
|
|
/* dontHaddock modifies a haskell package to disable the generation and
|
|
|
|
installation of API documentation from code comments using the
|
|
|
|
haddock tool.
|
|
|
|
*/
|
2021-10-26 07:26:30 +02:00
|
|
|
dontHaddock = compose.dontHaddock;
|
2015-01-10 20:26:08 +01:00
|
|
|
|
2017-10-31 21:50:23 +01:00
|
|
|
/* doJailbreak enables the removal of version bounds from the cabal
|
|
|
|
file. You may want to avoid this function.
|
|
|
|
|
|
|
|
This is useful when a package reports that it can not be built
|
|
|
|
due to version mismatches. In some cases, removing the version
|
|
|
|
bounds entirely is an easy way to make a package build, but at
|
|
|
|
the risk of breaking software in non-obvious ways now or in the
|
|
|
|
future.
|
|
|
|
|
|
|
|
Instead of jailbreaking, you can patch the cabal file.
|
2020-11-07 06:03:29 +01:00
|
|
|
|
2020-04-19 09:47:06 +02:00
|
|
|
Note that jailbreaking at this time, doesn't lift bounds on
|
2020-11-07 06:03:29 +01:00
|
|
|
conditional branches.
|
2020-04-19 09:47:06 +02:00
|
|
|
https://github.com/peti/jailbreak-cabal/issues/7 has further details.
|
2020-11-07 06:03:29 +01:00
|
|
|
|
2017-10-31 21:50:23 +01:00
|
|
|
*/
|
2021-10-26 07:26:30 +02:00
|
|
|
doJailbreak = compose.doJailbreak;
|
2017-10-31 21:50:23 +01:00
|
|
|
|
|
|
|
/* dontJailbreak restores the use of the version bounds the check
|
|
|
|
the use of dependencies in the package description.
|
|
|
|
*/
|
2021-10-26 07:26:30 +02:00
|
|
|
dontJailbreak = compose.dontJailbreak;
|
2015-01-10 20:26:08 +01:00
|
|
|
|
2017-10-31 21:50:23 +01:00
|
|
|
/* doCheck enables dependency checking, compilation and execution
|
|
|
|
of test suites listed in the package description file.
|
|
|
|
*/
|
2021-10-26 07:26:30 +02:00
|
|
|
doCheck = compose.doCheck;
|
2017-10-31 21:50:23 +01:00
|
|
|
/* dontCheck disables dependency checking, compilation and execution
|
|
|
|
of test suites listed in the package description file.
|
|
|
|
*/
|
2021-10-26 07:26:30 +02:00
|
|
|
dontCheck = compose.dontCheck;
|
2015-01-10 20:26:08 +01:00
|
|
|
|
2017-10-31 21:50:23 +01:00
|
|
|
/* doBenchmark enables dependency checking, compilation and execution
|
|
|
|
for benchmarks listed in the package description file.
|
|
|
|
*/
|
2021-10-26 07:26:30 +02:00
|
|
|
doBenchmark = compose.doBenchmark;
|
2017-10-31 21:50:23 +01:00
|
|
|
/* dontBenchmark disables dependency checking, compilation and execution
|
|
|
|
for benchmarks listed in the package description file.
|
|
|
|
*/
|
2021-10-26 07:26:30 +02:00
|
|
|
dontBenchmark = compose.dontBenchmark;
|
2017-09-19 15:55:16 +02:00
|
|
|
|
2017-10-31 21:50:23 +01:00
|
|
|
/* doDistribute enables the distribution of binaries for the package
|
|
|
|
via hydra.
|
|
|
|
*/
|
2021-10-26 07:26:30 +02:00
|
|
|
doDistribute = compose.doDistribute;
|
2017-10-31 21:50:23 +01:00
|
|
|
/* dontDistribute disables the distribution of binaries for the package
|
|
|
|
via hydra.
|
|
|
|
*/
|
2021-10-26 07:26:30 +02:00
|
|
|
dontDistribute = compose.dontDistribute;
|
2015-01-10 20:26:08 +01:00
|
|
|
|
2017-10-31 21:50:23 +01:00
|
|
|
/* appendConfigureFlag adds a single argument that will be passed to the
|
|
|
|
cabal configure command, after the arguments that have been defined
|
|
|
|
in the initial declaration or previous overrides.
|
|
|
|
|
|
|
|
Example:
|
|
|
|
|
|
|
|
> haskell.lib.appendConfigureFlag haskellPackages.servant "--profiling-detail=all-functions"
|
|
|
|
*/
|
2021-10-26 07:26:30 +02:00
|
|
|
appendConfigureFlag = drv: x: compose.appendConfigureFlag x drv;
|
|
|
|
appendConfigureFlags = drv: xs: compose.appendConfigureFlags xs drv;
|
2017-10-31 21:50:23 +01:00
|
|
|
|
2021-10-26 07:26:30 +02:00
|
|
|
appendBuildFlag = drv: x: compose.appendBuildFlag x drv;
|
|
|
|
appendBuildFlags = drv: xs: compose.appendBuildFlags xs drv;
|
2018-08-20 23:26:42 +02:00
|
|
|
|
2017-10-31 21:50:23 +01:00
|
|
|
/* removeConfigureFlag drv x is a Haskell package like drv, but with
|
|
|
|
all cabal configure arguments that are equal to x removed.
|
|
|
|
|
|
|
|
> haskell.lib.removeConfigureFlag haskellPackages.servant "--verbose"
|
|
|
|
*/
|
2021-10-26 07:26:30 +02:00
|
|
|
removeConfigureFlag = drv: x: compose.removeConfigureFlag x drv;
|
2015-01-10 20:26:08 +01:00
|
|
|
|
2021-10-26 07:26:30 +02:00
|
|
|
addBuildTool = drv: x: compose.addBuildTool x drv;
|
|
|
|
addBuildTools = drv: xs: compose.addBuildTools xs drv;
|
2015-01-19 14:59:04 +01:00
|
|
|
|
2021-10-26 07:26:30 +02:00
|
|
|
addExtraLibrary = drv: x: compose.addExtraLibrary x drv;
|
|
|
|
addExtraLibraries = drv: xs: compose.addExtraLibraries xs drv;
|
2015-02-03 12:24:13 +01:00
|
|
|
|
2021-10-26 07:26:30 +02:00
|
|
|
addBuildDepend = drv: x: compose.addBuildDepend x drv;
|
|
|
|
addBuildDepends = drv: xs: compose.addBuildDepends xs drv;
|
2015-01-20 23:50:38 +01:00
|
|
|
|
2021-10-26 07:26:30 +02:00
|
|
|
addTestToolDepend = drv: x: compose.addTestToolDepend x drv;
|
|
|
|
addTestToolDepends = drv: xs: compose.addTestToolDepends xs drv;
|
2020-11-07 05:36:06 +01:00
|
|
|
|
2021-10-26 07:26:30 +02:00
|
|
|
addPkgconfigDepend = drv: x: compose.addPkgconfigDepend x drv;
|
|
|
|
addPkgconfigDepends = drv: xs: compose.addPkgconfigDepends xs drv;
|
2015-08-06 12:37:46 +02:00
|
|
|
|
2021-10-26 07:26:30 +02:00
|
|
|
addSetupDepend = drv: x: compose.addSetupDepend x drv;
|
|
|
|
addSetupDepends = drv: xs: compose.addSetupDepends xs drv;
|
2017-03-25 05:23:01 +01:00
|
|
|
|
2021-10-26 07:26:30 +02:00
|
|
|
enableCabalFlag = drv: x: compose.enableCabalFlag x drv;
|
|
|
|
disableCabalFlag = drv: x: compose.disableCabalFlag x drv;
|
2015-01-10 20:26:08 +01:00
|
|
|
|
2021-10-26 07:26:30 +02:00
|
|
|
markBroken = compose.markBroken;
|
|
|
|
unmarkBroken = compose.unmarkBroken;
|
|
|
|
markBrokenVersion = compose.markBrokenVersion;
|
|
|
|
markUnbroken = compose.markUnbroken;
|
2015-01-12 16:12:33 +01:00
|
|
|
|
2021-10-26 07:26:30 +02:00
|
|
|
enableLibraryProfiling = compose.enableLibraryProfiling;
|
|
|
|
disableLibraryProfiling = compose.disableLibraryProfiling;
|
2015-01-13 12:28:17 +01:00
|
|
|
|
2021-10-26 07:26:30 +02:00
|
|
|
enableExecutableProfiling = compose.enableExecutableProfiling;
|
|
|
|
disableExecutableProfiling = compose.disableExecutableProfiling;
|
2018-03-29 19:32:17 +02:00
|
|
|
|
2021-10-26 07:26:30 +02:00
|
|
|
enableSharedExecutables = compose.enableSharedExecutables;
|
|
|
|
disableSharedExecutables = compose.disableSharedExecutables;
|
2015-01-13 12:28:17 +01:00
|
|
|
|
2021-10-26 07:26:30 +02:00
|
|
|
enableSharedLibraries = compose.enableSharedLibraries;
|
|
|
|
disableSharedLibraries = compose.disableSharedLibraries;
|
2015-01-13 12:28:17 +01:00
|
|
|
|
2021-10-26 07:26:30 +02:00
|
|
|
enableDeadCodeElimination = compose.enableDeadCodeElimination;
|
|
|
|
disableDeadCodeElimination = compose.disableDeadCodeElimination;
|
2015-01-13 12:28:17 +01:00
|
|
|
|
2021-10-26 07:26:30 +02:00
|
|
|
enableStaticLibraries = compose.enableStaticLibraries;
|
|
|
|
disableStaticLibraries = compose.disableStaticLibraries;
|
2015-01-13 12:28:17 +01:00
|
|
|
|
2021-10-26 07:26:30 +02:00
|
|
|
enableSeparateBinOutput = compose.enableSeparateBinOutput;
|
2019-03-29 09:10:42 +01:00
|
|
|
|
2021-10-26 07:26:30 +02:00
|
|
|
appendPatch = drv: x: compose.appendPatch x drv;
|
|
|
|
appendPatches = drv: xs: compose.appendPatches xs drv;
|
2015-01-23 10:47:55 +01:00
|
|
|
|
2021-04-23 21:55:38 +02:00
|
|
|
/* Set a specific build target instead of compiling all targets in the package.
|
|
|
|
* For example, imagine we have a .cabal file with a library, and 2 executables "dev" and "server".
|
2021-04-25 09:16:25 +02:00
|
|
|
* We can build only "server" and not wait on the compilation of "dev" by using setBuildTarget as follows:
|
2021-04-23 21:55:38 +02:00
|
|
|
*
|
|
|
|
* setBuildTarget (callCabal2nix "thePackageName" thePackageSrc {}) "server"
|
|
|
|
*
|
|
|
|
*/
|
2021-10-26 07:26:30 +02:00
|
|
|
setBuildTargets = drv: xs: compose.setBuildTargets xs drv;
|
|
|
|
setBuildTarget = drv: x: compose.setBuildTarget x drv;
|
2021-04-23 21:55:38 +02:00
|
|
|
|
2021-10-26 07:26:30 +02:00
|
|
|
doHyperlinkSource = compose.doHyperlinkSource;
|
|
|
|
dontHyperlinkSource = compose.dontHyperlinkSource;
|
2015-04-01 16:42:52 +02:00
|
|
|
|
2021-10-26 07:26:30 +02:00
|
|
|
disableHardening = drv: flags: compose.disableHardening flags drv;
|
2016-09-14 18:58:46 +02:00
|
|
|
|
2017-10-31 21:50:23 +01:00
|
|
|
/* Let Nix strip the binary files.
|
|
|
|
* This removes debugging symbols.
|
|
|
|
*/
|
2021-10-26 07:26:30 +02:00
|
|
|
doStrip = compose.doStrip;
|
2017-10-31 21:50:23 +01:00
|
|
|
|
|
|
|
/* Stop Nix from stripping the binary files.
|
|
|
|
* This keeps debugging symbols.
|
|
|
|
*/
|
2021-10-26 07:26:30 +02:00
|
|
|
dontStrip = compose.dontStrip;
|
2017-09-01 16:49:50 +02:00
|
|
|
|
2017-10-31 21:50:23 +01:00
|
|
|
/* Useful for debugging segfaults with gdb.
|
|
|
|
* This includes dontStrip.
|
|
|
|
*/
|
2021-10-26 07:26:30 +02:00
|
|
|
enableDWARFDebugging = compose.enableDWARFDebugging;
|
2017-09-01 16:49:50 +02:00
|
|
|
|
2017-10-31 21:50:23 +01:00
|
|
|
/* Create a source distribution tarball like those found on hackage,
|
|
|
|
instead of building the package.
|
|
|
|
*/
|
2021-10-26 07:26:30 +02:00
|
|
|
sdistTarball = compose.sdistTarball;
|
2015-06-02 13:58:57 +02:00
|
|
|
|
2020-11-07 10:50:17 +01:00
|
|
|
/* Create a documentation tarball suitable for uploading to Hackage instead
|
|
|
|
of building the package.
|
|
|
|
*/
|
2021-10-26 07:26:30 +02:00
|
|
|
documentationTarball = compose.documentationTarball;
|
2020-11-07 10:50:17 +01:00
|
|
|
|
2017-10-31 21:50:23 +01:00
|
|
|
/* Use the gold linker. It is a linker for ELF that is designed
|
|
|
|
"to run as fast as possible on modern systems"
|
|
|
|
*/
|
2021-10-26 07:26:30 +02:00
|
|
|
linkWithGold = compose.linkWithGold;
|
2017-04-07 01:28:44 +02:00
|
|
|
|
2017-10-31 21:50:23 +01:00
|
|
|
/* link executables statically against haskell libs to reduce
|
|
|
|
closure size
|
|
|
|
*/
|
2021-10-26 07:26:30 +02:00
|
|
|
justStaticExecutables = compose.justStaticExecutables;
|
2017-03-07 18:13:59 +01:00
|
|
|
|
2017-10-31 21:50:23 +01:00
|
|
|
/* Build a source distribution tarball instead of using the source files
|
|
|
|
directly. The effect is that the package is built as if it were published
|
|
|
|
on hackage. This can be used as a test for the source distribution,
|
|
|
|
assuming the build fails when packaging mistakes are in the cabal file.
|
|
|
|
*/
|
2021-10-26 07:26:30 +02:00
|
|
|
buildFromSdist = compose.buildFromSdist;
|
2015-06-02 13:58:57 +02:00
|
|
|
|
2017-10-31 21:50:23 +01:00
|
|
|
/* Build the package in a strict way to uncover potential problems.
|
|
|
|
This includes buildFromSdist and failOnAllWarnings.
|
|
|
|
*/
|
2021-10-26 07:26:30 +02:00
|
|
|
buildStrictly = compose.buildStrictly;
|
2017-09-10 13:09:52 +02:00
|
|
|
|
2018-12-03 19:46:22 +01:00
|
|
|
/* Disable core optimizations, significantly speeds up build time */
|
2021-10-26 07:26:30 +02:00
|
|
|
disableOptimization = compose.disableOptimization;
|
2018-12-03 19:46:22 +01:00
|
|
|
|
2017-10-31 21:50:23 +01:00
|
|
|
/* Turn on most of the compiler warnings and fail the build if any
|
|
|
|
of them occur. */
|
2021-10-26 07:26:30 +02:00
|
|
|
failOnAllWarnings = compose.failOnAllWarnings;
|
2015-06-02 13:58:57 +02:00
|
|
|
|
2017-10-31 21:50:23 +01:00
|
|
|
/* Add a post-build check to verify that dependencies declared in
|
|
|
|
the cabal file are actually used.
|
|
|
|
|
|
|
|
The first attrset argument can be used to configure the strictness
|
2018-03-27 03:57:32 +02:00
|
|
|
of this check and a list of ignored package names that would otherwise
|
2017-10-31 21:50:23 +01:00
|
|
|
cause false alarms.
|
|
|
|
*/
|
2021-10-26 07:26:30 +02:00
|
|
|
checkUnusedPackages = compose.checkUnusedPackages;
|
|
|
|
|
|
|
|
buildStackProject = compose.buildStackProject;
|
2016-03-04 21:24:42 +01:00
|
|
|
|
2017-10-31 21:50:23 +01:00
|
|
|
/* Add a dummy command to trigger a build despite an equivalent
|
|
|
|
earlier build that is present in the store or cache.
|
|
|
|
*/
|
2021-10-26 07:26:30 +02:00
|
|
|
triggerRebuild = drv: i: compose.triggerRebuild i drv;
|
2015-06-07 00:05:17 +02:00
|
|
|
|
2017-10-31 21:50:23 +01:00
|
|
|
/* Override the sources for the package and optionaly the version.
|
|
|
|
This also takes of removing editedCabalFile.
|
|
|
|
*/
|
2021-10-26 07:26:30 +02:00
|
|
|
overrideSrc = drv: src: compose.overrideSrc src drv;
|
2017-04-08 22:21:57 +02:00
|
|
|
|
2018-08-19 21:17:35 +02:00
|
|
|
# Get all of the build inputs of a haskell package, divided by category.
|
2021-10-26 07:26:30 +02:00
|
|
|
getBuildInputs = compose.getBuildInputs;
|
2018-08-19 21:17:35 +02:00
|
|
|
|
|
|
|
# Extract the haskell build inputs of a haskell package.
|
|
|
|
# This is useful to build environments for developing on that
|
|
|
|
# package.
|
2021-10-26 07:26:30 +02:00
|
|
|
getHaskellBuildInputs = compose.getHaskellBuildInputs;
|
2017-12-29 03:29:23 +01:00
|
|
|
|
2018-01-10 18:08:36 +01:00
|
|
|
# Under normal evaluation, simply return the original package. Under
|
|
|
|
# nix-shell evaluation, return a nix-shell optimized environment.
|
2021-10-26 07:26:30 +02:00
|
|
|
shellAware = compose.shellAware;
|
2018-01-10 18:08:36 +01:00
|
|
|
|
2021-10-26 07:26:30 +02:00
|
|
|
ghcInfo = compose.ghcInfo;
|
2017-12-29 03:29:23 +01:00
|
|
|
|
|
|
|
### mkDerivation helpers
|
|
|
|
# These allow external users of a haskell package to extract
|
|
|
|
# information about how it is built in the same way that the
|
|
|
|
# generic haskell builder does, by reusing the same functions.
|
|
|
|
# Each function here has the same interface as mkDerivation and thus
|
|
|
|
# can be called for a given package simply by overriding the
|
|
|
|
# mkDerivation argument it used. See getHaskellBuildInputs above for
|
|
|
|
# an example of this.
|
|
|
|
|
|
|
|
# Some information about which phases should be run.
|
2021-10-26 07:26:30 +02:00
|
|
|
controlPhases = compose.controlPhases;
|
2017-12-29 03:29:23 +01:00
|
|
|
|
2018-07-03 18:25:15 +02:00
|
|
|
# Utility to convert a directory full of `cabal2nix`-generated files into a
|
|
|
|
# package override set
|
|
|
|
#
|
2018-07-08 00:23:03 +02:00
|
|
|
# packagesFromDirectory : { directory : Directory, ... } -> HaskellPackageOverrideSet
|
2021-10-26 07:26:30 +02:00
|
|
|
packagesFromDirectory = compose.packagesFromDirectory;
|
2018-10-30 19:20:24 +01:00
|
|
|
|
2021-10-26 07:26:30 +02:00
|
|
|
addOptparseApplicativeCompletionScripts = compose.addOptparseApplicativeCompletionScripts;
|
2018-11-04 00:45:14 +01:00
|
|
|
|
|
|
|
/*
|
|
|
|
Modify a Haskell package to add shell completion scripts for the
|
|
|
|
given executable produced by it. These completion scripts will be
|
|
|
|
picked up automatically if the resulting derivation is installed,
|
|
|
|
e.g. by `nix-env -i`.
|
|
|
|
|
|
|
|
Invocation:
|
|
|
|
generateOptparseApplicativeCompletions command pkg
|
|
|
|
|
|
|
|
|
|
|
|
command: name of an executable
|
|
|
|
pkg: Haskell package that builds the executables
|
|
|
|
*/
|
2021-10-26 07:26:30 +02:00
|
|
|
generateOptparseApplicativeCompletion = compose.generateOptparseApplicativeCompletion;
|
2018-11-04 00:45:14 +01:00
|
|
|
|
|
|
|
/*
|
|
|
|
Modify a Haskell package to add shell completion scripts for the
|
|
|
|
given executables produced by it. These completion scripts will be
|
|
|
|
picked up automatically if the resulting derivation is installed,
|
|
|
|
e.g. by `nix-env -i`.
|
|
|
|
|
|
|
|
Invocation:
|
|
|
|
generateOptparseApplicativeCompletions commands pkg
|
|
|
|
|
|
|
|
|
|
|
|
commands: name of an executable
|
|
|
|
pkg: Haskell package that builds the executables
|
|
|
|
*/
|
2021-10-26 07:26:30 +02:00
|
|
|
generateOptparseApplicativeCompletions = compose.generateOptparseApplicativeCompletions;
|
2018-12-15 19:31:08 +01:00
|
|
|
|
|
|
|
# Don't fail at configure time if there are multiple versions of the
|
|
|
|
# same package in the (recursive) dependencies of the package being
|
|
|
|
# built. Will delay failures, if any, to compile time.
|
2021-10-26 07:26:30 +02:00
|
|
|
allowInconsistentDependencies = compose.allowInconsistentDependencies;
|
2015-01-07 20:31:32 +01:00
|
|
|
}
|