docs: use a single nix-build for all the generate function docs

+8 -8
doc/Makefile
···
.PHONY: clean
clean:
-
rm -f ${MD_TARGETS} .version manual-full.xml functions/library/locations.xml functions/library/generated
+
rm -f ${MD_TARGETS} doc-support/result .version manual-full.xml functions/library/locations.xml functions/library/generated
rm -rf ./out/ ./highlightjs
.PHONY: validate
···
nix-instantiate --eval \
-E '(import ../lib).version' > .version
-
functions/library/locations.xml:
-
nix-build ./lib-function-locations.nix \
-
--out-link $@
+
doc-support/result:
+
(cd doc-support; nix-build)
-
functions/library/generated: functions/library/locations.xml
-
nix-build ./lib-function-docs.nix \
-
--arg locationsXml $< \
-
--out-link $@
+
functions/library/locations.xml: doc-support/result
+
ln -rfs ./doc-support/result/function-locations.xml functions/library/locations.xml
+
+
functions/library/generated: doc-support/result
+
ln -rfs ./doc-support/result/function-docs functions/library/generated
%.section.xml: %.section.md
pandoc $^ -w docbook+smart \
+1 -5
doc/default.nix
···
{ pkgs ? (import ./.. { }), nixpkgs ? { }}:
let
lib = pkgs.lib;
-
locationsXml = import ./lib-function-locations.nix { inherit pkgs nixpkgs; };
-
functionDocs = import ./lib-function-docs.nix { inherit locationsXml pkgs; };
+
doc-support = import ./doc-support { inherit pkgs nixpkgs; };
in pkgs.stdenv.mkDerivation {
name = "nixpkgs-manual";
···
];
postPatch = ''
-
rm -rf ./functions/library/locations.xml
-
ln -s ${locationsXml} ./functions/library/locations.xml
-
ln -s ${functionDocs} ./functions/library/generated
echo ${lib.version} > .version
'';
+14
doc/doc-support/default.nix
···
+
{ pkgs ? (import ../.. {}), nixpkgs ? { }}:
+
let
+
locationsXml = import ./lib-function-locations.nix { inherit pkgs nixpkgs; };
+
functionDocs = import ./lib-function-docs.nix { inherit locationsXml pkgs; };
+
in pkgs.runCommand "doc-support" {}
+
''
+
mkdir result
+
(
+
cd result
+
ln -s ${locationsXml} ./function-locations.xml
+
ln -s ${functionDocs} ./function-docs
+
)
+
mv result $out
+
''
+1 -1
doc/lib-function-docs.nix doc/doc-support/lib-function-docs.nix
···
with pkgs; stdenv.mkDerivation {
name = "nixpkgs-lib-docs";
-
src = ./../lib;
+
src = ./../../lib;
buildInputs = [ nixdoc ];
installPhase = ''
doc/lib-function-locations.nix doc/doc-support/lib-function-locations.nix