nixpkgs/pkgs/development/interpreters/spidermonkey/68.nix
Jonathan Ringer 9bb3fccb5b treewide: pkgs.pkgconfig -> pkgs.pkg-config, move pkgconfig to alias.nix
continuation of #109595

pkgconfig was aliased in 2018, however, it remained in
all-packages.nix due to its wide usage. This cleans
up the remaining references to pkgs.pkgsconfig and
moves the entry to aliases.nix.

python3Packages.pkgconfig remained unchanged because
it's the canonical name of the upstream package
on pypi.
2021-01-19 01:16:25 -08:00

96 lines
2.5 KiB
Nix

{ stdenv, fetchurl, fetchpatch, autoconf213, pkg-config, perl, python2, python3, zip, buildPackages
, which, readline, zlib, icu, cargo, rustc, llvmPackages }:
with stdenv.lib;
let
python3Env = buildPackages.python3.withPackages (p: [p.six]);
in stdenv.mkDerivation rec {
pname = "spidermonkey";
version = "68.10.0";
src = fetchurl {
url = "mirror://mozilla/firefox/releases/${version}esr/source/firefox-${version}esr.source.tar.xz";
sha256 = "0azdinwqjfv2q37gqpxmfvzsk86pvsi6cjaq1310zs26gric5j1f";
};
outputs = [ "out" "dev" ];
setOutputFlags = false; # Configure script only understands --includedir
nativeBuildInputs = [
autoconf213
pkg-config
perl
which
python2
zip
cargo
rustc
llvmPackages.llvm
];
buildInputs = [
readline
zlib
icu
];
preConfigure = ''
export CXXFLAGS="-fpermissive"
export LIBXUL_DIST=$out
export PYTHON3="${python3Env.interpreter}"
# We can't build in js/src/, so create a build dir
mkdir obj
cd obj/
configureScript=../js/src/configure
'';
configureFlags = [
# Reccommended by gjs upstream
"--disable-jemalloc"
"--enable-unaligned-private-values"
"--with-intl-api"
"--enable-posix-nspr-emulation"
"--with-system-zlib"
"--with-system-icu"
"--with-libclang-path=${llvmPackages.libclang}/lib"
"--with-clang-path=${llvmPackages.clang}/bin/clang"
"--enable-shared-js"
"--enable-readline"
# Fedora and Arch disable optimize, but it doesn't seme to be necessary
# It turns on -O3 which some gcc version had a problem with:
# https://src.fedoraproject.org/rpms/mozjs38/c/761399aba092bcb1299bb4fccfd60f370ab4216e
"--enable-optimize"
"--enable-release"
] ++ optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
# Spidermonkey seems to use different host/build terminology for cross
# compilation here.
"--host=${stdenv.buildPlatform.config}"
"--target=${stdenv.hostPlatform.config}"
];
configurePlatforms = [];
depsBuildBuild = [ buildPackages.stdenv.cc ];
# Remove unnecessary static lib
preFixup = ''
moveToOutput bin/js60-config "$dev"
rm $out/lib/libjs_static.ajs
ln -s $out/bin/js60 $out/bin/js
'';
enableParallelBuilding = true;
meta = with stdenv.lib; {
description = "Mozilla's JavaScript engine written in C/C++";
homepage = "https://developer.mozilla.org/en/SpiderMonkey";
license = licenses.gpl2; # TODO: MPL/GPL/LGPL tri-license.
maintainers = [ maintainers.abbradar ];
platforms = platforms.linux;
};
}