Use a full config.h with doxygen

Otherwise we get warnings that some documentation items don't have
corresponding #define, and more importantly the corresponding snippets are not
included in the output.

For that we need a modified version of the "full" argument for config.pl.

Also, the new CMakeLists.txt target only works on Unix (which was already the
case of the Makefile target). Hopefully this is not an issue as people are
unlikely to need that target on Windows.
This commit is contained in:
Manuel Pégourié-Gonnard 2016-01-04 12:57:32 +01:00
parent ddbb166041
commit 1989caf71c
3 changed files with 28 additions and 8 deletions

View File

@ -85,10 +85,21 @@ if(ENABLE_PROGRAMS)
add_subdirectory(programs) add_subdirectory(programs)
endif() endif()
ADD_CUSTOM_TARGET(apidoc # targets for doxygen only work on Unix
if(UNIX)
ADD_CUSTOM_TARGET(apidoc
COMMAND mkdir -p apidoc
COMMAND cp include/mbedtls/config.h include/mbedtls/config.h.bak
COMMAND scripts/config.pl realfull
COMMAND doxygen doxygen/mbedtls.doxyfile COMMAND doxygen doxygen/mbedtls.doxyfile
COMMAND mv include/mbedtls/config.h.bak include/mbedtls/config.h
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
ADD_CUSTOM_TARGET(apidoc_clean
COMMAND rm -rf apidoc
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
endif(UNIX)
if(ENABLE_TESTING) if(ENABLE_TESTING)
enable_testing() enable_testing()

View File

@ -87,7 +87,10 @@ lcov:
apidoc: apidoc:
mkdir -p apidoc mkdir -p apidoc
cp include/mbedtls/config.h include/mbedtls/config.h.bak
scripts/config.pl realfull
doxygen doxygen/mbedtls.doxyfile doxygen doxygen/mbedtls.doxyfile
mv include/mbedtls/config.h.bak include/mbedtls/config.h
apidoc_clean: apidoc_clean:
rm -rf apidoc rm -rf apidoc

View File

@ -10,7 +10,7 @@ $0 [-f <file>] unset <name>
$0 [-f <file>] set <name> [<value>] $0 [-f <file>] set <name> [<value>]
EOU EOU
# for our eyes only: # for our eyes only:
# $0 [-f <file>] full # $0 [-f <file>] full|realfull
# Things that shouldn't be enabled with "full". # Things that shouldn't be enabled with "full".
# Notes: # Notes:
@ -61,7 +61,7 @@ die $usage unless @ARGV;
my $action = shift; my $action = shift;
my ($name, $value); my ($name, $value);
if ($action eq "full") { if ($action eq "full" || $action eq "realfull") {
# nothing to do # nothing to do
} elsif ($action eq "unset") { } elsif ($action eq "unset") {
die $usage unless @ARGV; die $usage unless @ARGV;
@ -79,14 +79,20 @@ open my $config_read, '<', $config_file or die "read $config_file: $!\n";
my @config_lines = <$config_read>; my @config_lines = <$config_read>;
close $config_read; close $config_read;
my $exclude_re = join '|', @excluded; my ($exclude_re, $no_exclude_re);
my $no_exclude_re = join '|', @non_excluded; if ($action eq "realfull") {
$exclude_re = qr/^$/;
$no_exclude_re = qr/./;
} else {
$exclude_re = join '|', @excluded;
$no_exclude_re = join '|', @non_excluded;
}
open my $config_write, '>', $config_file or die "write $config_file: $!\n"; open my $config_write, '>', $config_file or die "write $config_file: $!\n";
my $done; my $done;
for my $line (@config_lines) { for my $line (@config_lines) {
if ($action eq "full") { if ($action eq "full" || $action eq "realfull") {
if ($line =~ /name SECTION: Module configuration options/) { if ($line =~ /name SECTION: Module configuration options/) {
$done = 1; $done = 1;
} }