validatePkgConfig: init
This adds the `validatePkgConfig` hook, which can be used to validate pkg-config files in the output(s). Currently, this will just run `pkg-config --validate` on all `.pc` files, capturing errors such as the issue that was fixed in #87789. The hook could be extended in the future with more fine-grained checks.
This commit is contained in:
parent
f6bfb371cb
commit
13083b1a01
@ -2083,6 +2083,16 @@ postInstall = ''
|
|||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
<varlistentry>
|
||||||
|
<term>
|
||||||
|
validatePkgConfig
|
||||||
|
</term>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
The <literal>validatePkgConfig</literal> hook validates all pkg-config (<filename>.pc</filename>) files in a package. This helps catching some common errors in pkg-config files, such as undefined variables.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
<varlistentry>
|
<varlistentry>
|
||||||
<term>
|
<term>
|
||||||
cmake
|
cmake
|
||||||
|
19
pkgs/build-support/setup-hooks/validate-pkg-config.sh
Normal file
19
pkgs/build-support/setup-hooks/validate-pkg-config.sh
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
# This setup hook validates each pkgconfig file in each output.
|
||||||
|
|
||||||
|
fixupOutputHooks+=(_validatePkgConfig)
|
||||||
|
|
||||||
|
_validatePkgConfig() {
|
||||||
|
for pc in $(find "$prefix" -name '*.pc'); do
|
||||||
|
local bail=0
|
||||||
|
|
||||||
|
# Do not fail immediately. It's nice to see all errors when
|
||||||
|
# there are multiple pkgconfig files.
|
||||||
|
if ! pkg-config --validate "$pc"; then
|
||||||
|
bail=1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ $bail -eq 1 ]; then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
}
|
@ -501,6 +501,10 @@ in
|
|||||||
|
|
||||||
iconConvTools = callPackage ../build-support/icon-conv-tools {};
|
iconConvTools = callPackage ../build-support/icon-conv-tools {};
|
||||||
|
|
||||||
|
validatePkgConfig = makeSetupHook
|
||||||
|
{ name = "validate-pkg-config"; deps = [ findutils pkgconfig ]; }
|
||||||
|
../build-support/setup-hooks/validate-pkg-config.sh;
|
||||||
|
|
||||||
#package writers
|
#package writers
|
||||||
writers = callPackage ../build-support/writers {};
|
writers = callPackage ../build-support/writers {};
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user