diff --git a/pkgs/by-name/cx/cxxopts/package.nix b/pkgs/by-name/cx/cxxopts/package.nix index ecd195a79cc9..8accbcad0630 100644 --- a/pkgs/by-name/cx/cxxopts/package.nix +++ b/pkgs/by-name/cx/cxxopts/package.nix @@ -2,9 +2,12 @@ lib, stdenv, fetchFromGitHub, + fetchpatch2, cmake, icu74, pkg-config, + testers, + validatePkgConfig, enableUnicodeHelp ? true, }: @@ -19,12 +22,18 @@ stdenv.mkDerivation (finalAttrs: { hash = "sha256-baM6EX9D0yfrKxuPXyUUV9RqdrVLyygeG6x57xN8lc4="; }; - buildInputs = lib.optionals enableUnicodeHelp [ icu74.dev ]; + propagatedBuildInputs = lib.optionals enableUnicodeHelp [ icu74.dev ]; cmakeFlags = [ "-DCXXOPTS_BUILD_EXAMPLES=OFF" ] ++ lib.optional enableUnicodeHelp "-DCXXOPTS_USE_UNICODE_HELP=TRUE"; - nativeBuildInputs = [ cmake ] ++ lib.optionals enableUnicodeHelp [ pkg-config ]; + nativeBuildInputs = [ + cmake + ] + ++ lib.optionals enableUnicodeHelp [ + pkg-config + validatePkgConfig + ]; doCheck = true; @@ -34,14 +43,30 @@ stdenv.mkDerivation (finalAttrs: { # https://github.com/jarro2783/cxxopts/issues/332 postPatch = '' substituteInPlace packaging/pkgconfig.pc.in \ - --replace '$'{prefix}/@CMAKE_INSTALL_INCLUDEDIR@ @CMAKE_INSTALL_FULL_INCLUDEDIR@ + --replace-fail '$'{prefix}/@CMAKE_INSTALL_INCLUDEDIR@ @CMAKE_INSTALL_FULL_INCLUDEDIR@ ''; + patches = [ + (fetchpatch2 { + url = "https://github.com/jarro2783/cxxopts/commit/e98c73d665915b292a0592bf34fcbe8522035bc1.patch?full_index=1"; + name = "fix-icu-uc-typo-in-pkgconfig.patch"; + hash = "sha256-bqd3H66Op1/EkN2HLd84Obky4Y2ndPPY8MGZ5fqtdk4="; + }) + ]; + + passthru = { + tests.pkg-config = testers.hasPkgConfigModules { + package = finalAttrs.finalPackage; + versionCheck = true; + }; + }; + meta = with lib; { homepage = "https://github.com/jarro2783/cxxopts"; description = "Lightweight C++ GNU-style option parser library"; license = licenses.mit; maintainers = [ maintainers.spease ]; + pkgConfigModules = [ "cxxopts" ]; platforms = platforms.all; }; })