pcre: add 16- and 32-bit character size versions
This commit is contained in:
parent
3d1523ebe2
commit
c091e61a09
@ -1,14 +1,24 @@
|
|||||||
{ stdenv, fetchurl, unicodeSupport ? true, cplusplusSupport ? true
|
{ stdenv, lib, fetchurl, unicodeSupport ? true, cplusplusSupport ? true
|
||||||
, windows ? null
|
, windows ? null
|
||||||
|
, withCharSize ? 8
|
||||||
}:
|
}:
|
||||||
|
|
||||||
with stdenv.lib;
|
with stdenv.lib;
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
assert withCharSize != 8 -> !cplusplusSupport;
|
||||||
name = "pcre-8.38";
|
|
||||||
|
let
|
||||||
|
charFlags = if withCharSize == 8 then [ ]
|
||||||
|
else if withCharSize == 16 then [ "--enable-pcre16" "--disable-pcre8" ]
|
||||||
|
else if withCharSize == 32 then [ "--enable-pcre32" "--disable-pcre8" ]
|
||||||
|
else abort "Invalid character size";
|
||||||
|
|
||||||
|
in stdenv.mkDerivation rec {
|
||||||
|
name = "pcre${lib.optionalString (withCharSize != 8) (toString withCharSize)}-8.38";
|
||||||
|
# FIXME: add "version" attribute and use it in URL
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/${name}.tar.bz2";
|
url = "ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.38.tar.bz2";
|
||||||
sha256 = "1pvra19ljkr5ky35y2iywjnsckrs9ch2anrf5b0dc91hw8v2vq5r";
|
sha256 = "1pvra19ljkr5ky35y2iywjnsckrs9ch2anrf5b0dc91hw8v2vq5r";
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -17,11 +27,12 @@ stdenv.mkDerivation rec {
|
|||||||
|
|
||||||
outputs = [ "out" "doc" "man" ];
|
outputs = [ "out" "doc" "man" ];
|
||||||
|
|
||||||
|
# FIXME: Refactor into list!
|
||||||
configureFlags = ''
|
configureFlags = ''
|
||||||
--enable-jit
|
--enable-jit
|
||||||
${if unicodeSupport then "--enable-unicode-properties" else ""}
|
${lib.optionalString unicodeSupport "--enable-unicode-properties"}
|
||||||
${if !cplusplusSupport then "--disable-cpp" else ""}
|
${lib.optionalString (!cplusplusSupport) "--disable-cpp"}
|
||||||
'';
|
'' + lib.optionalString (charFlags != []) " ${toString charFlags}";
|
||||||
|
|
||||||
doCheck = with stdenv; !(isCygwin || isFreeBSD);
|
doCheck = with stdenv; !(isCygwin || isFreeBSD);
|
||||||
# XXX: test failure on Cygwin
|
# XXX: test failure on Cygwin
|
||||||
|
@ -8345,6 +8345,14 @@ in
|
|||||||
pcre = callPackage ../development/libraries/pcre {
|
pcre = callPackage ../development/libraries/pcre {
|
||||||
unicodeSupport = config.pcre.unicode or true;
|
unicodeSupport = config.pcre.unicode or true;
|
||||||
};
|
};
|
||||||
|
pcre16 = pcre.override {
|
||||||
|
cplusplusSupport = false;
|
||||||
|
withCharSize = 16;
|
||||||
|
};
|
||||||
|
pcre32 = pcre.override {
|
||||||
|
cplusplusSupport = false;
|
||||||
|
withCharSize = 32;
|
||||||
|
};
|
||||||
|
|
||||||
pcre2 = callPackage ../development/libraries/pcre2 { };
|
pcre2 = callPackage ../development/libraries/pcre2 { };
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user