mirror of
https://gitlab.freedesktop.org/pipewire/pipewire
synced 2024-10-04 15:10:20 +00:00
man: update man build
This commit is contained in:
parent
ab9b3ba85a
commit
573e032cc1
24
man/meson.build
Normal file
24
man/meson.build
Normal file
|
@ -0,0 +1,24 @@
|
|||
manpage_conf = configuration_data()
|
||||
manpage_conf.set('PACKAGE_NAME', meson.project_name())
|
||||
manpage_conf.set('PACKAGE_VERSION', meson.project_version())
|
||||
manpage_conf.set('PACKAGE_URL', 'http://pipewire.org')
|
||||
manpage_conf.set('top_srcdir', meson.source_root())
|
||||
manpage_conf.set('top_builddir', meson.build_root())
|
||||
|
||||
manpages = ['pipewire.1',
|
||||
'pipewire-monitor.1' ]
|
||||
|
||||
foreach m : manpages
|
||||
infile = m + '.xml.in'
|
||||
outfile = m + '.xml'
|
||||
xml = configure_file(input : infile,
|
||||
output : outfile,
|
||||
configuration : manpage_conf)
|
||||
custom_target(m + '.target',
|
||||
output : m,
|
||||
input : xml,
|
||||
command : [xmltoman, '@INPUT@'],
|
||||
capture : true,
|
||||
install : true,
|
||||
install_dir : 'subdir')
|
||||
endforeach
|
216
man/xmltoman
216
man/xmltoman
|
@ -1,216 +0,0 @@
|
|||
#!/usr/bin/perl -w
|
||||
|
||||
# xmltoman - simple xml to man converter
|
||||
# Copyright (C) 2000-2002 Oliver Kurth <oku@masqmail.cx>
|
||||
# 2003 Lennart Poettering <mzkzygbzna@0pointer.de>
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
use XML::Parser;
|
||||
|
||||
my $buffer = "";
|
||||
my $break_req = 0;
|
||||
|
||||
my @stack;
|
||||
my $stack_n = 0;
|
||||
|
||||
my $para = 0;
|
||||
|
||||
sub out {
|
||||
my $t = shift;
|
||||
|
||||
if ($t ne "") {
|
||||
print $t;
|
||||
$break_req=1;
|
||||
}
|
||||
}
|
||||
|
||||
sub out_buf {
|
||||
local $_;
|
||||
|
||||
my $space = shift;
|
||||
|
||||
$_ = $buffer;
|
||||
$buffer = "";
|
||||
|
||||
s/\n/\ /gm;
|
||||
s/\s+/\ /gm;
|
||||
s/^\s*//gm if (!$break_req);
|
||||
s/^\s$//gm if (!$space);
|
||||
|
||||
out($_);
|
||||
}
|
||||
|
||||
sub stack_push {
|
||||
my $a = shift;
|
||||
|
||||
if ($stack_n == 0 or $a ne $stack[$stack_n-1]) {
|
||||
out("\\fB") if $a =~ /^bold$/;
|
||||
out("\\fI") if $a =~ /^italic$/;
|
||||
}
|
||||
|
||||
$stack[$stack_n++] = $a;
|
||||
}
|
||||
|
||||
sub stack_pop {
|
||||
local $_;
|
||||
|
||||
if ($stack_n > 0) {
|
||||
$stack_n--;
|
||||
|
||||
if ($stack_n > 0) {
|
||||
$a = $stack[$stack_n-1];
|
||||
out("\\fB") if $a =~ /^bold$/;
|
||||
out("\\fI") if $a =~ /^italic$/;
|
||||
} else {
|
||||
out("\\f1");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
sub handle_start {
|
||||
local $_;
|
||||
my $expat = shift;
|
||||
my $element = shift;
|
||||
my %attr = @_;
|
||||
|
||||
$_ = $element;
|
||||
|
||||
if (/^manpage$/) {
|
||||
out_buf(0);
|
||||
print "\n" if ($break_req);
|
||||
print ".TH " . $attr{name} . " " . $attr{section} . " User Manuals\n";
|
||||
print ".SH NAME\n";
|
||||
print $attr{name} . " \\- " . $attr{desc} . "\n";
|
||||
$break_req = 0;
|
||||
} elsif (/^synopsis$/) {
|
||||
out_buf(0);
|
||||
print "\n" if ($break_req);
|
||||
print ".SH SYNOPSIS\n";
|
||||
$section = $element;
|
||||
$break_req = 0;
|
||||
stack_push("bold");
|
||||
} elsif (/^description$/) {
|
||||
out_buf(0);
|
||||
print "\n" if ($break_req);
|
||||
print ".SH DESCRIPTION\n";
|
||||
$section = $element;
|
||||
$break_req = 0;
|
||||
} elsif (/^options$/) {
|
||||
out_buf(0);
|
||||
print "\n" if ($break_req);
|
||||
print ".SH OPTIONS\n";
|
||||
$section = $element;
|
||||
$break_req = 0;
|
||||
} elsif (/^seealso$/) {
|
||||
out_buf(0);
|
||||
print "\n" if ($break_req);
|
||||
print ".SH SEE ALSO\n";
|
||||
$section = $element;
|
||||
$break_req = 0;
|
||||
} elsif (/^section$/) {
|
||||
out_buf(0);
|
||||
print "\n" if ($break_req);
|
||||
print ".SH ".uc($attr{name})."\n";
|
||||
$section = $attr{name};
|
||||
$break_req = 0;
|
||||
} elsif (/^option$/) {
|
||||
out_buf(0);
|
||||
print "\n" if ($break_req);
|
||||
print ".TP\n";
|
||||
$break_req = 0;
|
||||
} elsif (/^p$/ or /^cmd$/) {
|
||||
out_buf(0);
|
||||
print "\n" if ($para);
|
||||
$break_req = 0;
|
||||
} elsif (/^optdesc$/) {
|
||||
out_buf(0);
|
||||
$break_req = 0;
|
||||
} elsif (/^arg$/ or /^file$/) {
|
||||
out_buf(1);
|
||||
stack_push("italic");
|
||||
} elsif (/^opt$/) {
|
||||
out_buf(1);
|
||||
stack_push("bold");
|
||||
} elsif (/^manref$/) {
|
||||
out_buf(1);
|
||||
stack_push("bold");
|
||||
out($attr{name} ."(" . $attr{section} . ")");
|
||||
stack_pop();
|
||||
} elsif (/^url$/) {
|
||||
out_buf(1);
|
||||
stack_push("bold");
|
||||
out($attr{href});
|
||||
stack_pop();
|
||||
};
|
||||
|
||||
$para = 0;
|
||||
}
|
||||
|
||||
sub handle_end {
|
||||
local $_;
|
||||
my $expat = shift;
|
||||
my $element = shift;
|
||||
|
||||
$_ = $element;
|
||||
|
||||
$para = 0;
|
||||
|
||||
if (/^description$/ or /^options$/ or /^section$/ or /^seealso$/) {
|
||||
out_buf(0);
|
||||
} elsif (/^p$/ or /^cmd$/) {
|
||||
out_buf(0);
|
||||
print "\n" if ($break_req);
|
||||
$para = 1;
|
||||
$break_req = 0;
|
||||
} elsif (/^synopsis$/) {
|
||||
out_buf(0);
|
||||
stack_pop();
|
||||
} elsif (/^opt$/ or /^arg$/ or /^file$/) {
|
||||
out_buf(1);
|
||||
stack_pop();
|
||||
} elsif (/^manpage$/) {
|
||||
out_buf(0);
|
||||
print "\n" if $break_req;
|
||||
$break_req = 0;
|
||||
} elsif (/^optdesc$/ or /^cmd$/ or /^option$/) {
|
||||
# Simply ignore
|
||||
} else {
|
||||
out_buf(1);
|
||||
}
|
||||
};
|
||||
|
||||
sub handle_char {
|
||||
local $_;
|
||||
my $expat = shift;
|
||||
my $string = shift;
|
||||
|
||||
$buffer .= $string;
|
||||
}
|
||||
|
||||
MAIN:{
|
||||
my $file = shift;
|
||||
|
||||
if (!$file) {
|
||||
print STDERR "You need to specify a file to parse\n";
|
||||
exit(1);
|
||||
}
|
||||
|
||||
my $parser = new XML::Parser(Handlers => {
|
||||
Start => \&handle_start,
|
||||
End => \&handle_end,
|
||||
Char => \&handle_char});
|
||||
|
||||
$parser->parsefile($file, ProtocolEncoding => 'ISO-8859-1');
|
||||
}
|
|
@ -1,27 +0,0 @@
|
|||
/***
|
||||
This file is part of PipeWire.
|
||||
|
||||
PipeWire is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free
|
||||
Software Foundation; either version 2 of the License, or (at your
|
||||
option) any later version.
|
||||
|
||||
PipeWire is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with PipeWire; if not, see <http://www.gnu.org/licenses/>.
|
||||
***/
|
||||
|
||||
body { color: black; background-color: white; }
|
||||
a:link, a:visited { color: #900000; }
|
||||
h1 { text-transform:uppercase; font-size: 18pt; }
|
||||
p { margin-left:1cm; margin-right:1cm; }
|
||||
.cmd { font-family:monospace; }
|
||||
.file { font-family:monospace; }
|
||||
.arg { text-transform:uppercase; font-family:monospace; font-style: italic; }
|
||||
.opt { font-family:monospace; font-weight: bold; }
|
||||
.manref { font-family:monospace; }
|
||||
.option .optdesc { margin-left:2cm; }
|
|
@ -1,36 +0,0 @@
|
|||
<!--
|
||||
This file is part of PipeWire.
|
||||
|
||||
PipeWire is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free
|
||||
Software Foundation; either version 2 of the License, or (at your
|
||||
option) any later version.
|
||||
|
||||
PipeWire is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with PipeWire; if not, see <http://www.gnu.org/licenses/>.
|
||||
-->
|
||||
|
||||
<!ELEMENT manpage (synopsis | description | section | options | seealso)*>
|
||||
<!ATTLIST manpage name CDATA #REQUIRED section CDATA #REQUIRED desc CDATA #IMPLIED>
|
||||
<!ELEMENT arg (#PCDATA)>
|
||||
<!ELEMENT p (#PCDATA | arg | url | manref | opt | file )*>
|
||||
<!ELEMENT synopsis (cmd | p)+>
|
||||
<!ELEMENT description (p)+>
|
||||
<!ELEMENT section (p | option)*>
|
||||
<!ATTLIST section name CDATA #REQUIRED>
|
||||
<!ELEMENT option (#PCDATA | p | optdesc)*>
|
||||
<!ELEMENT optdesc (#PCDATA | p )*>
|
||||
<!ELEMENT cmd (#PCDATA | arg | opt)*>
|
||||
<!ELEMENT options (p | option)*>
|
||||
<!ELEMENT seealso (p)*>
|
||||
<!ELEMENT opt (#PCDATA)>
|
||||
<!ELEMENT file (#PCDATA)>
|
||||
<!ELEMENT manref EMPTY>
|
||||
<!ATTLIST manref name CDATA #REQUIRED section CDATA #REQUIRED href CDATA #IMPLIED>
|
||||
<!ELEMENT url EMPTY>
|
||||
<!ATTLIST url href CDATA #REQUIRED>
|
126
man/xmltoman.xsl
126
man/xmltoman.xsl
|
@ -1,126 +0,0 @@
|
|||
<?xml version="1.0" encoding="iso-8859-15"?>
|
||||
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml">
|
||||
|
||||
<!--
|
||||
This file is part of PipeWire.
|
||||
|
||||
PipeWire is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free
|
||||
Software Foundation; either version 2 of the License, or (at your
|
||||
option) any later version.
|
||||
|
||||
PipeWire is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with PipeWire; if not, see <http://www.gnu.org/licenses/>.
|
||||
-->
|
||||
|
||||
<xsl:output method="xml" version="1.0" encoding="iso-8859-15" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" indent="yes"/>
|
||||
|
||||
<xsl:template match="/manpage">
|
||||
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title><xsl:value-of select="@name"/>(<xsl:value-of select="@section"/>)</title>
|
||||
<style type="text/css">
|
||||
body { color: black; background-color: white; }
|
||||
a:link, a:visited { color: #900000; }
|
||||
h1 { text-transform:uppercase; font-size: 18pt; }
|
||||
p { margin-left:1cm; margin-right:1cm; }
|
||||
.cmd { font-family:monospace; }
|
||||
.file { font-family:monospace; }
|
||||
.arg { text-transform:uppercase; font-family:monospace; font-style: italic; }
|
||||
.opt { font-family:monospace; font-weight: bold; }
|
||||
.manref { font-family:monospace; }
|
||||
.option .optdesc { margin-left:2cm; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Name</h1>
|
||||
<p><xsl:value-of select="@name"/>
|
||||
<xsl:if test="string-length(@desc) > 0"> - <xsl:value-of select="@desc"/></xsl:if>
|
||||
</p>
|
||||
<xsl:apply-templates />
|
||||
</body>
|
||||
</html>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="p">
|
||||
<p>
|
||||
<xsl:apply-templates/>
|
||||
</p>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="cmd">
|
||||
<p class="cmd">
|
||||
<xsl:apply-templates/>
|
||||
</p>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="arg">
|
||||
<span class="arg"><xsl:apply-templates/></span>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="opt">
|
||||
<span class="opt"><xsl:apply-templates/></span>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="file">
|
||||
<span class="file"><xsl:apply-templates/></span>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="optdesc">
|
||||
<div class="optdesc">
|
||||
<xsl:apply-templates/>
|
||||
</div>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="synopsis">
|
||||
<h1>Synopsis</h1>
|
||||
<xsl:apply-templates/>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="seealso">
|
||||
<h1>Synopsis</h1>
|
||||
<xsl:apply-templates/>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="description">
|
||||
<h1>Description</h1>
|
||||
<xsl:apply-templates/>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="options">
|
||||
<h1>Options</h1>
|
||||
<xsl:apply-templates/>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="section">
|
||||
<h1><xsl:value-of select="@name"/></h1>
|
||||
<xsl:apply-templates/>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="option">
|
||||
<div class="option"><xsl:apply-templates/></div>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="manref">
|
||||
<xsl:choose>
|
||||
<xsl:when test="string-length(@href) > 0">
|
||||
<a class="manref"><xsl:attribute name="href"><xsl:value-of select="@href"/></xsl:attribute><xsl:value-of select="@name"/>(<xsl:value-of select="@section"/>)</a>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<span class="manref"><xsl:value-of select="@name"/>(<xsl:value-of select="@section"/>)</span>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="url">
|
||||
<a class="url"><xsl:attribute name="href"><xsl:value-of select="@href"/></xsl:attribute><xsl:value-of select="@href"/></a>
|
||||
</xsl:template>
|
||||
|
||||
</xsl:stylesheet>
|
|
@ -51,7 +51,7 @@ cdata.set('PACKAGE', '"pipewire"')
|
|||
cdata.set('PACKAGE_NAME', '"PipeWire"')
|
||||
cdata.set('PACKAGE_STRING', '"PipeWire @0@"'.format(pipewire_version))
|
||||
cdata.set('PACKAGE_TARNAME', '"pipewire"')
|
||||
cdata.set('PACKAGE_URL', '""')
|
||||
cdata.set('PACKAGE_URL', '"http://pipewire.org"')
|
||||
cdata.set('PACKAGE_VERSION', '"@0@"'.format(pipewire_version))
|
||||
cdata.set('MODULEDIR', '"@0@/@1@/pipewire-@2@"'.format(pipewire_libdir,apiversion))
|
||||
cdata.set('PIPEWIRE_CONFIG_DIR', '"@0@/pipewire"'.format(pipewire_sysconfdir))
|
||||
|
@ -147,3 +147,10 @@ if doxygen.found()
|
|||
else
|
||||
message('Documentation disabled without doxygen')
|
||||
endif
|
||||
|
||||
xmltoman = find_program('xmltoman', required: false)
|
||||
if xmltoman.found()
|
||||
subdir('man')
|
||||
else
|
||||
message('Man page disabled without xmltoman')
|
||||
endif
|
||||
|
|
Loading…
Reference in a new issue