ghcjs: restructure
This commit is contained in:
parent
289e33f852
commit
df55381b65
@ -82,7 +82,7 @@ in
|
|||||||
# default buildInputs are just ghc, if more buildInputs are required
|
# default buildInputs are just ghc, if more buildInputs are required
|
||||||
# buildInputs can be extended by the client by using extraBuildInputs,
|
# buildInputs can be extended by the client by using extraBuildInputs,
|
||||||
# but often propagatedBuildInputs is preferable anyway
|
# but often propagatedBuildInputs is preferable anyway
|
||||||
buildInputs = [ghc ghc.ghc.parent.Cabal_1_22_0_0] ++ self.extraBuildInputs;
|
buildInputs = [ghc ghc.ghc.parent.Cabal_HEAD] ++ self.extraBuildInputs;
|
||||||
extraBuildInputs = self.buildTools ++
|
extraBuildInputs = self.buildTools ++
|
||||||
(optionals self.doCheck self.testDepends) ++
|
(optionals self.doCheck self.testDepends) ++
|
||||||
(if self.pkgconfigDepends == [] then [] else [pkgconfig]) ++
|
(if self.pkgconfigDepends == [] then [] else [pkgconfig]) ++
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
cabal.mkDerivation (self: {
|
cabal.mkDerivation (self: {
|
||||||
pname = "Cabal";
|
pname = "Cabal";
|
||||||
version = "1.22.0.0";
|
version = "HEAD";
|
||||||
src = fetchgit {
|
src = fetchgit {
|
||||||
url = git://github.com/haskell/cabal.git;
|
url = git://github.com/haskell/cabal.git;
|
||||||
rev = "699d4df12e1ec75e9100b521fb3690eaa6986635";
|
rev = "699d4df12e1ec75e9100b521fb3690eaa6986635";
|
@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
cabal.mkDerivation (self: {
|
cabal.mkDerivation (self: {
|
||||||
pname = "cabal-install";
|
pname = "cabal-install";
|
||||||
version = Cabal.version;
|
version = "HEAD";
|
||||||
src = Cabal.src;
|
src = Cabal.src;
|
||||||
isLibrary = true;
|
isLibrary = true;
|
||||||
isExecutable = true;
|
isExecutable = true;
|
@ -154,23 +154,20 @@
|
|||||||
|
|
||||||
# Abstraction for Haskell packages collections
|
# Abstraction for Haskell packages collections
|
||||||
packagesFun = makeOverridable
|
packagesFun = makeOverridable
|
||||||
({ ghcPath ? null
|
({ ghcPath
|
||||||
, ghc ? callPackage ghcPath ({ ghc = ghcBinary; } // extraArgs)
|
|
||||||
, ghcBinary ? ghc6101Binary
|
, ghcBinary ? ghc6101Binary
|
||||||
, prefFun
|
, prefFun
|
||||||
, extension ? (self : super : {})
|
, extension ? (self : super : {})
|
||||||
, profExplicit ? false, profDefault ? false
|
, profExplicit ? false, profDefault ? false
|
||||||
, modifyPrio ? lowPrio
|
, modifyPrio ? lowPrio
|
||||||
, extraArgs ? {}
|
, extraArgs ? {}
|
||||||
, cabalPackage ? import ../build-support/cabal
|
|
||||||
, ghcWrapperPackage ? import ../development/compilers/ghc/wrapper.nix
|
|
||||||
} :
|
} :
|
||||||
let haskellPackagesClass = import ./haskell-packages.nix {
|
let haskellPackagesClass = import ./haskell-packages.nix {
|
||||||
inherit pkgs newScope modifyPrio cabalPackage ghcWrapperPackage;
|
inherit pkgs newScope modifyPrio;
|
||||||
enableLibraryProfiling =
|
enableLibraryProfiling =
|
||||||
if profExplicit then profDefault
|
if profExplicit then profDefault
|
||||||
else config.cabal.libraryProfiling or profDefault;
|
else config.cabal.libraryProfiling or profDefault;
|
||||||
inherit ghc;
|
ghc = callPackage ghcPath ({ ghc = ghcBinary; } // extraArgs);
|
||||||
};
|
};
|
||||||
haskellPackagesPrefsClass = self : let super = haskellPackagesClass self; in super // prefFun self super;
|
haskellPackagesPrefsClass = self : let super = haskellPackagesClass self; in super // prefFun self super;
|
||||||
haskellPackagesExtensionClass = self : let super = haskellPackagesPrefsClass self; in super // extension self super;
|
haskellPackagesExtensionClass = self : let super = haskellPackagesPrefsClass self; in super // extension self super;
|
||||||
@ -246,91 +243,17 @@
|
|||||||
|
|
||||||
packages_ghcjs =
|
packages_ghcjs =
|
||||||
packages {
|
packages {
|
||||||
ghc = let parent = packages_ghc784; in parent.ghcjs // { inherit parent; };
|
ghcPath = ../development/compilers/ghc/7.8.4.nix;
|
||||||
cabalPackage = import ../build-support/cabal/ghcjs.nix;
|
ghcBinary = if stdenv.isDarwin then ghc783Binary else ghc742Binary;
|
||||||
ghcWrapperPackage = import ../development/compilers/ghcjs/wrapper.nix;
|
|
||||||
prefFun = self : super : super // {
|
prefFun = self : super : super // {
|
||||||
# This is the list of packages that are built into a booted ghcjs installation
|
ghc = let parent = packages_ghc784; in
|
||||||
# It can be generated with the command:
|
callPackage ../development/compilers/ghcjs/wrapper.nix {
|
||||||
# nix-shell '<nixpkgs>' -A pkgs.haskellPackages_ghcjs.ghc --command "ghcjs-pkg list | sed -n 's/^ \(.*\)-\([0-9.]*\)$/\1_\2/ p' | sed 's/\./_/g' | sed 's/-\(.\)/\U\1/' | sed 's/^\([^_]*\)\(.*\)$/\1\2 = null;\n\1 = self.\1\2;/'"
|
ghc = parent.ghcjs // { inherit parent; };
|
||||||
Cabal_1_21_1_0 = null;
|
|
||||||
Cabal = self.Cabal_1_21_1_0;
|
|
||||||
aeson_0_8_0_0 = null;
|
|
||||||
aeson = self.aeson_0_8_0_0;
|
|
||||||
array_0_5_0_0 = null;
|
|
||||||
array = self.array_0_5_0_0;
|
|
||||||
async_2_0_1_5 = null;
|
|
||||||
async = self.async_2_0_1_5;
|
|
||||||
attoparsec_0_12_1_0 = null;
|
|
||||||
attoparsec = self.attoparsec_0_12_1_0;
|
|
||||||
base_4_7_0_1 = null;
|
|
||||||
base = self.base_4_7_0_1;
|
|
||||||
binary_0_7_2_1 = null;
|
|
||||||
binary = self.binary_0_7_2_1;
|
|
||||||
rts_1_0 = null;
|
|
||||||
rts = self.rts_1_0;
|
|
||||||
bytestring_0_10_4_1 = null;
|
|
||||||
bytestring = self.bytestring_0_10_4_1;
|
|
||||||
caseInsensitive_1_2_0_0 = null;
|
|
||||||
caseInsensitive = self.caseInsensitive_1_2_0_0;
|
|
||||||
containers_0_5_5_1 = null;
|
|
||||||
containers = self.containers_0_5_5_1;
|
|
||||||
deepseq_1_3_0_2 = null;
|
|
||||||
deepseq = self.deepseq_1_3_0_2;
|
|
||||||
directory_1_2_1_0 = null;
|
|
||||||
directory = self.directory_1_2_1_0;
|
|
||||||
dlist_0_7_0_1 = null;
|
|
||||||
dlist = self.dlist_0_7_0_1;
|
|
||||||
extensibleExceptions_0_1_1_3 = null;
|
|
||||||
extensibleExceptions = self.extensibleExceptions_0_1_1_3;
|
|
||||||
filepath_1_3_0_2 = null;
|
|
||||||
filepath = self.filepath_1_3_0_2;
|
|
||||||
ghcPrim_0_3_1_0 = null;
|
|
||||||
ghcPrim = self.ghcPrim_0_3_1_0;
|
|
||||||
ghcjsBase_0_1_0_0 = null;
|
|
||||||
ghcjsBase = self.ghcjsBase_0_1_0_0;
|
|
||||||
ghcjsPrim_0_1_0_0 = null;
|
|
||||||
ghcjsPrim = self.ghcjsPrim_0_1_0_0;
|
|
||||||
hashable_1_2_2_0 = null;
|
|
||||||
hashable = self.hashable_1_2_2_0;
|
|
||||||
integerGmp_0_5_1_0 = null;
|
|
||||||
integerGmp = self.integerGmp_0_5_1_0;
|
|
||||||
mtl_2_2_1 = null;
|
|
||||||
mtl = self.mtl_2_2_1;
|
|
||||||
oldLocale_1_0_0_6 = null;
|
|
||||||
oldLocale = self.oldLocale_1_0_0_6;
|
|
||||||
oldTime_1_1_0_2 = null;
|
|
||||||
oldTime = self.oldTime_1_1_0_2;
|
|
||||||
parallel_3_2_0_4 = null;
|
|
||||||
parallel = self.parallel_3_2_0_4;
|
|
||||||
pretty_1_1_1_1 = null;
|
|
||||||
pretty = self.pretty_1_1_1_1;
|
|
||||||
primitive_0_5_3_0 = null;
|
|
||||||
primitive = self.primitive_0_5_3_0;
|
|
||||||
process_1_2_0_0 = null;
|
|
||||||
process = self.process_1_2_0_0;
|
|
||||||
scientific_0_3_3_0 = null;
|
|
||||||
scientific = self.scientific_0_3_3_0;
|
|
||||||
stm_2_4_3 = null;
|
|
||||||
stm = self.stm_2_4_3;
|
|
||||||
syb_0_4_2 = null;
|
|
||||||
syb = self.syb_0_4_2;
|
|
||||||
templateHaskell_2_9_0_0 = null;
|
|
||||||
templateHaskell = self.templateHaskell_2_9_0_0;
|
|
||||||
text_1_1_1_3 = null;
|
|
||||||
text = self.text_1_1_1_3;
|
|
||||||
time_1_4_2 = null;
|
|
||||||
time = self.time_1_4_2;
|
|
||||||
transformers_0_4_1_0 = null;
|
|
||||||
transformers = self.transformers_0_4_1_0;
|
|
||||||
unix_2_7_0_1 = null;
|
|
||||||
unix = self.unix_2_7_0_1;
|
|
||||||
unorderedContainers_0_2_5_0 = null;
|
|
||||||
unorderedContainers = self.unorderedContainers_0_2_5_0;
|
|
||||||
vector_0_10_11_0 = null;
|
|
||||||
vector = self.vector_0_10_11_0;
|
|
||||||
};
|
};
|
||||||
extension = self: super: {
|
cabal = self.cabalJs;
|
||||||
|
buildLocalCabalWithArgs = args: super.buildLocalCabalWithArgs (args // {
|
||||||
|
nativePkgs = packages_ghc784;
|
||||||
|
});
|
||||||
ghcjsDom = with self; super.ghcjsDom.override {
|
ghcjsDom = with self; super.ghcjsDom.override {
|
||||||
cabal = self.cabal.override {
|
cabal = self.cabal.override {
|
||||||
extension = self: super: {
|
extension = self: super: {
|
||||||
@ -339,9 +262,47 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
buildLocalCabalWithArgs = args: super.buildLocalCabalWithArgs (args // {
|
# This is the list of packages that are built into a booted ghcjs installation
|
||||||
nativePkgs = packages_ghc784;
|
# It can be generated with the command:
|
||||||
});
|
# nix-shell '<nixpkgs>' -A pkgs.haskellPackages_ghcjs.ghc --command "ghcjs-pkg list | sed -n 's/^ \(.*\)-\([0-9.]*\)$/\1_\2/ p' | sed 's/\./_/g' | sed 's/-\(.\)/\U\1/' | sed 's/^\([^_]*\)\(.*\)$/\1 = null;/'"
|
||||||
|
Cabal = null;
|
||||||
|
aeson = null;
|
||||||
|
array = null;
|
||||||
|
async = null;
|
||||||
|
attoparsec = null;
|
||||||
|
base = null;
|
||||||
|
binary = null;
|
||||||
|
rts = null;
|
||||||
|
bytestring = null;
|
||||||
|
caseInsensitive = null;
|
||||||
|
containers = null;
|
||||||
|
deepseq = null;
|
||||||
|
directory = null;
|
||||||
|
dlist = null;
|
||||||
|
extensibleExceptions = null;
|
||||||
|
filepath = null;
|
||||||
|
ghcPrim = null;
|
||||||
|
ghcjsBase = null;
|
||||||
|
ghcjsPrim = null;
|
||||||
|
hashable = null;
|
||||||
|
integerGmp = null;
|
||||||
|
mtl = null;
|
||||||
|
oldLocale = null;
|
||||||
|
oldTime = null;
|
||||||
|
parallel = null;
|
||||||
|
pretty = null;
|
||||||
|
primitive = null;
|
||||||
|
process = null;
|
||||||
|
scientific = null;
|
||||||
|
stm = null;
|
||||||
|
syb = null;
|
||||||
|
templateHaskell = null;
|
||||||
|
text = null;
|
||||||
|
time = null;
|
||||||
|
transformers = null;
|
||||||
|
unix = null;
|
||||||
|
unorderedContainers = null;
|
||||||
|
vector = null;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -43,7 +43,7 @@
|
|||||||
#
|
#
|
||||||
# For most packages, however, we keep only one version, and use default.nix.
|
# For most packages, however, we keep only one version, and use default.nix.
|
||||||
|
|
||||||
{ pkgs, newScope, ghc, cabalPackage, ghcWrapperPackage, modifyPrio ? (x : x)
|
{ pkgs, newScope, ghc, modifyPrio ? (x : x)
|
||||||
, enableLibraryProfiling ? false
|
, enableLibraryProfiling ? false
|
||||||
, enableSharedLibraries ? pkgs.stdenv.lib.versionOlder "7.7" ghc.version
|
, enableSharedLibraries ? pkgs.stdenv.lib.versionOlder "7.7" ghc.version
|
||||||
, enableSharedExecutables ? pkgs.stdenv.lib.versionOlder "7.7" ghc.version
|
, enableSharedExecutables ? pkgs.stdenv.lib.versionOlder "7.7" ghc.version
|
||||||
@ -74,7 +74,7 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in
|
|||||||
# refers to the function argument at the
|
# refers to the function argument at the
|
||||||
# top of this file.
|
# top of this file.
|
||||||
|
|
||||||
ghc = callPackage ghcWrapperPackage {
|
ghc = callPackage ../development/compilers/ghc/wrapper.nix {
|
||||||
ghc = ghc; # refers to ghcPlain
|
ghc = ghc; # refers to ghcPlain
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -94,7 +94,16 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in
|
|||||||
# This is the Cabal builder, the function we use to build most Haskell
|
# This is the Cabal builder, the function we use to build most Haskell
|
||||||
# packages. It isn't the Cabal library, which is spelled "Cabal".
|
# packages. It isn't the Cabal library, which is spelled "Cabal".
|
||||||
|
|
||||||
cabal = callPackage cabalPackage {
|
cabal = callPackage ../build-support/cabal {
|
||||||
|
Cabal = null; # prefer the Cabal version shipped with the compiler
|
||||||
|
hscolour = self.hscolourBootstrap;
|
||||||
|
inherit enableLibraryProfiling enableCheckPhase
|
||||||
|
enableStaticLibraries enableSharedLibraries enableSharedExecutables;
|
||||||
|
glibcLocales = if pkgs.stdenv.isLinux then pkgs.glibcLocales else null;
|
||||||
|
extension = self : super : {};
|
||||||
|
};
|
||||||
|
|
||||||
|
cabalJs = callPackage ../build-support/cabal/ghcjs.nix {
|
||||||
Cabal = null; # prefer the Cabal version shipped with the compiler
|
Cabal = null; # prefer the Cabal version shipped with the compiler
|
||||||
hscolour = self.hscolourBootstrap;
|
hscolour = self.hscolourBootstrap;
|
||||||
inherit enableLibraryProfiling enableCheckPhase
|
inherit enableLibraryProfiling enableCheckPhase
|
||||||
@ -356,7 +365,7 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in
|
|||||||
Cabal_1_16_0_3 = callPackage ../development/libraries/haskell/Cabal/1.16.0.3.nix {};
|
Cabal_1_16_0_3 = callPackage ../development/libraries/haskell/Cabal/1.16.0.3.nix {};
|
||||||
Cabal_1_18_1_3 = callPackage ../development/libraries/haskell/Cabal/1.18.1.3.nix {};
|
Cabal_1_18_1_3 = callPackage ../development/libraries/haskell/Cabal/1.18.1.3.nix {};
|
||||||
Cabal_1_20_0_2 = callPackage ../development/libraries/haskell/Cabal/1.20.0.2.nix {};
|
Cabal_1_20_0_2 = callPackage ../development/libraries/haskell/Cabal/1.20.0.2.nix {};
|
||||||
Cabal_1_22_0_0 = callPackage ../development/libraries/haskell/Cabal/1.22.0.0.nix {};
|
Cabal_HEAD = callPackage ../development/libraries/haskell/Cabal/head.nix {};
|
||||||
Cabal = null; # core package since forever
|
Cabal = null; # core package since forever
|
||||||
|
|
||||||
cabalCargs = callPackage ../development/libraries/haskell/cabal-cargs {};
|
cabalCargs = callPackage ../development/libraries/haskell/cabal-cargs {};
|
||||||
@ -937,9 +946,9 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in
|
|||||||
|
|
||||||
ghcid = callPackage ../development/tools/haskell/ghcid {};
|
ghcid = callPackage ../development/tools/haskell/ghcid {};
|
||||||
|
|
||||||
ghcjs = callPackage ../development/tools/haskell/ghcjs {
|
ghcjs = callPackage ../development/compilers/ghcjs {
|
||||||
Cabal = self.Cabal_1_22_0_0;
|
Cabal = self.Cabal_HEAD;
|
||||||
cabalInstall = self.cabalInstall_1_22_0_0;
|
cabalInstall = self.cabalInstall_HEAD;
|
||||||
haddock = self.haddock.override {
|
haddock = self.haddock.override {
|
||||||
Cabal = null;
|
Cabal = null;
|
||||||
};
|
};
|
||||||
@ -3168,7 +3177,7 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in
|
|||||||
cabalInstall_1_16_0_2 = callPackage ../tools/package-management/cabal-install/1.16.0.2.nix { Cabal = self.Cabal_1_16_0_3; };
|
cabalInstall_1_16_0_2 = callPackage ../tools/package-management/cabal-install/1.16.0.2.nix { Cabal = self.Cabal_1_16_0_3; };
|
||||||
cabalInstall_1_18_0_3 = callPackage ../tools/package-management/cabal-install/1.18.0.3.nix { Cabal = self.Cabal_1_18_1_3; };
|
cabalInstall_1_18_0_3 = callPackage ../tools/package-management/cabal-install/1.18.0.3.nix { Cabal = self.Cabal_1_18_1_3; };
|
||||||
cabalInstall_1_20_0_4 = callPackage ../tools/package-management/cabal-install/1.20.0.4.nix { Cabal = self.Cabal_1_20_0_2; };
|
cabalInstall_1_20_0_4 = callPackage ../tools/package-management/cabal-install/1.20.0.4.nix { Cabal = self.Cabal_1_20_0_2; };
|
||||||
cabalInstall_1_22_0_0 = callPackage ../tools/package-management/cabal-install/1.22.0.0.nix { Cabal = self.Cabal_1_22_0_0; };
|
cabalInstall_HEAD = callPackage ../tools/package-management/cabal-install/head.nix { Cabal = self.Cabal_HEAD; };
|
||||||
cabalInstall = self.cabalInstall_1_20_0_4;
|
cabalInstall = self.cabalInstall_1_20_0_4;
|
||||||
|
|
||||||
codex = callPackage ../development/tools/haskell/codex {};
|
codex = callPackage ../development/tools/haskell/codex {};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user