nixpkgs/pkgs/development/libraries/expat/default.nix
OPNA2608 392bca4c58
expat: Fix cmake config files
Header & library path constructions in CMake modules expect them to reside under the same prefix as the CMake files.
This assumption doesn't work with our multiple outputs so we patch the library path to the correct output.

Co-authored-by: Dmitry Kalinkin <dmitry.kalinkin@gmail.com>
2021-07-03 19:30:35 -04:00

44 lines
1.3 KiB
Nix

{ stdenv, fetchurl, lib }:
# Note: this package is used for bootstrapping fetchurl, and thus
# cannot use fetchpatch! All mutable patches (generated by GitHub or
# cgit) that are needed here should be included directly in Nixpkgs as
# files.
stdenv.mkDerivation rec {
pname = "expat";
version = "2.4.1";
src = fetchurl {
url = "https://github.com/libexpat/libexpat/releases/download/R_${lib.replaceStrings ["."] ["_"] version}/${pname}-${version}.tar.xz";
sha256 = "sha256-zwMtDbqbkoY2VI4ysyei1msaq2PE9KE90TLC0dLy+2o=";
};
outputs = [ "out" "dev" ]; # TODO: fix referrers
outputBin = "dev";
configureFlags = lib.optional stdenv.isFreeBSD "--with-pic";
outputMan = "dev"; # tiny page for a dev tool
doCheck = true; # not cross;
preCheck = ''
patchShebangs ./configure ./run.sh ./test-driver-wrapper.sh
'';
# CMake files incorrectly calculate library path from dev prefix
# https://github.com/libexpat/libexpat/issues/501
postFixup = ''
substituteInPlace $dev/lib/cmake/expat-${version}/expat-noconfig.cmake \
--replace "$"'{_IMPORT_PREFIX}' $out
'';
meta = with lib; {
homepage = "https://libexpat.github.io/";
description = "A stream-oriented XML parser library written in C";
platforms = platforms.all;
license = licenses.mit; # expat version
};
}