summaryrefslogtreecommitdiffstats
path: root/Configurations
diff options
context:
space:
mode:
authorRichard Levitte <levitte@openssl.org>2016-08-31 22:54:39 +0200
committerRichard Levitte <levitte@openssl.org>2019-11-29 09:51:16 +0100
commit829f86bb7b52e58c2db333b8e2eb7ad990724746 (patch)
tree56be3d73683071e73eedc542f8c923ce8ac2873e /Configurations
parentfbd03b1c5984d1dd42ef99e1a5da70ed587f3380 (diff)
Add the possibility to generate documentation at build time
Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/6236)
Diffstat (limited to 'Configurations')
-rw-r--r--Configurations/common.tmpl35
1 files changed, 30 insertions, 5 deletions
diff --git a/Configurations/common.tmpl b/Configurations/common.tmpl
index a2591da727..5db3471fe2 100644
--- a/Configurations/common.tmpl
+++ b/Configurations/common.tmpl
@@ -151,10 +151,18 @@
generator_incs => $unified_info{includes}->{$script},
generator_deps => $unified_info{depends}->{$script},
deps => $unified_info{depends}->{$src},
- incs => [ @{$unified_info{includes}->{$obj}},
- @{$unified_info{includes}->{$bin}} ],
- defs => [ @{$unified_info{defines}->{$obj}},
- @{$unified_info{defines}->{$bin}} ],
+ incs => [ defined $obj
+ ? @{$unified_info{includes}->{$obj}}
+ : (),
+ defined $bin
+ ? @{$unified_info{includes}->{$bin}}
+ : () ],
+ defs => [ defined $obj
+ ? @{$unified_info{defines}->{$obj}}
+ : (),
+ defined $bin
+ ? @{$unified_info{defines}->{$bin}}
+ : () ],
%opts);
foreach (@{$unified_info{depends}->{$src}}) {
dogenerate($_, $obj, $bin, %opts);
@@ -436,6 +444,22 @@
$cache{$dir} = 1;
}
+ # dodocs is responsible for building documentation from .pods.
+ # It will call generatesrc.
+ sub dodocs {
+ my $type = shift;
+ my $section = shift;
+ foreach my $doc (@{$unified_info{"${type}docs"}->{$section}}) {
+ next if $cache{$doc};
+ $OUT .= generatesrc(src => $doc,
+ generator => $unified_info{generate}->{$doc});
+ foreach ((@{$unified_info{depends}->{$doc}})) {
+ dogenerate($_, undef, undef, %opts);
+ }
+ $cache{$doc} = 1;
+ }
+ }
+
# Start with populating the cache with all the overrides
%cache = map { $_ => 1 } @{$unified_info{overrides}};
@@ -448,6 +472,7 @@
foreach (@{$unified_info{modules}}) { domodule($_); }
foreach (@{$unified_info{programs}}) { dobin($_); }
foreach (@{$unified_info{scripts}}) { doscript($_); }
-
+ foreach (sort keys %{$unified_info{htmldocs}}) { dodocs('html', $_); }
+ foreach (sort keys %{$unified_info{mandocs}}) { dodocs('man', $_); }
foreach (sort keys %{$unified_info{dirinfo}}) { dodir($_); }
-}