Support of the PDF version
authorAlpar Juttner <alpar@cs.elte.hu>
Thu, 08 Apr 2010 09:20:19 +0200
changeset 595d9170b19285
parent 58 10b6a5b7d4c0
child 60 202688f8024a
Support of the PDF version
.hgignore
DoxyfilePdf.in
Makefile.in
scripts/titlegen.py
     1.1 --- a/.hgignore	Mon Mar 01 02:30:00 2010 +0100
     1.2 +++ b/.hgignore	Thu Apr 08 09:20:19 2010 +0200
     1.3 @@ -12,6 +12,7 @@
     1.4  *.tmp
     1.5  .dirstamp
     1.6  Doxyfile
     1.7 +DoxyfilePdf
     1.8  Makefile
     1.9  
    1.10  syntax: regexp
    1.11 @@ -20,4 +21,6 @@
    1.12  ^html/.*
    1.13  ^gen-images/.*
    1.14  ^gen-dox/.*
    1.15 +^gen-pdf-dox/.*
    1.16 +^latex/.*
    1.17  ^demo/build/.*
    1.18 \ No newline at end of file
     2.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     2.2 +++ b/DoxyfilePdf.in	Thu Apr 08 09:20:19 2010 +0200
     2.3 @@ -0,0 +1,260 @@
     2.4 +# Doxyfile 1.5.7.1
     2.5 +
     2.6 +#---------------------------------------------------------------------------
     2.7 +# Project related configuration options
     2.8 +#---------------------------------------------------------------------------
     2.9 +DOXYFILE_ENCODING      = UTF-8
    2.10 +PROJECT_NAME           = "LEMON Tutorial"
    2.11 +PROJECT_NUMBER         = @version@
    2.12 +OUTPUT_DIRECTORY       = 
    2.13 +CREATE_SUBDIRS         = NO
    2.14 +OUTPUT_LANGUAGE        = English
    2.15 +BRIEF_MEMBER_DESC      = YES
    2.16 +REPEAT_BRIEF           = NO
    2.17 +ABBREVIATE_BRIEF       = 
    2.18 +ALWAYS_DETAILED_SEC    = NO
    2.19 +INLINE_INHERITED_MEMB  = NO
    2.20 +FULL_PATH_NAMES        = YES
    2.21 +STRIP_FROM_PATH        = ./
    2.22 +STRIP_FROM_INC_PATH    = ./
    2.23 +SHORT_NAMES            = YES
    2.24 +JAVADOC_AUTOBRIEF      = NO
    2.25 +QT_AUTOBRIEF           = NO
    2.26 +MULTILINE_CPP_IS_BRIEF = NO
    2.27 +INHERIT_DOCS           = NO
    2.28 +SEPARATE_MEMBER_PAGES  = NO
    2.29 +TAB_SIZE               = 8
    2.30 +ALIASES                = 
    2.31 +OPTIMIZE_OUTPUT_FOR_C  = NO
    2.32 +OPTIMIZE_OUTPUT_JAVA   = NO
    2.33 +OPTIMIZE_FOR_FORTRAN   = NO
    2.34 +OPTIMIZE_OUTPUT_VHDL   = NO
    2.35 +BUILTIN_STL_SUPPORT    = YES
    2.36 +CPP_CLI_SUPPORT        = NO
    2.37 +SIP_SUPPORT            = NO
    2.38 +IDL_PROPERTY_SUPPORT   = YES
    2.39 +DISTRIBUTE_GROUP_DOC   = NO
    2.40 +SUBGROUPING            = YES
    2.41 +TYPEDEF_HIDES_STRUCT   = NO
    2.42 +SYMBOL_CACHE_SIZE      = 0
    2.43 +#---------------------------------------------------------------------------
    2.44 +# Build related configuration options
    2.45 +#---------------------------------------------------------------------------
    2.46 +EXTRACT_ALL            = NO
    2.47 +EXTRACT_PRIVATE        = YES
    2.48 +EXTRACT_STATIC         = YES
    2.49 +EXTRACT_LOCAL_CLASSES  = NO
    2.50 +EXTRACT_LOCAL_METHODS  = NO
    2.51 +EXTRACT_ANON_NSPACES   = NO
    2.52 +HIDE_UNDOC_MEMBERS     = YES
    2.53 +HIDE_UNDOC_CLASSES     = YES
    2.54 +HIDE_FRIEND_COMPOUNDS  = NO
    2.55 +HIDE_IN_BODY_DOCS      = NO
    2.56 +INTERNAL_DOCS          = NO
    2.57 +CASE_SENSE_NAMES       = YES
    2.58 +HIDE_SCOPE_NAMES       = YES
    2.59 +SHOW_INCLUDE_FILES     = YES
    2.60 +INLINE_INFO            = YES
    2.61 +SORT_MEMBER_DOCS       = NO
    2.62 +SORT_BRIEF_DOCS        = NO
    2.63 +SORT_GROUP_NAMES       = NO
    2.64 +SORT_BY_SCOPE_NAME     = NO
    2.65 +GENERATE_TODOLIST      = YES
    2.66 +GENERATE_TESTLIST      = YES
    2.67 +GENERATE_BUGLIST       = YES
    2.68 +GENERATE_DEPRECATEDLIST= YES
    2.69 +ENABLED_SECTIONS       = 
    2.70 +MAX_INITIALIZER_LINES  = 5
    2.71 +SHOW_USED_FILES        = NO
    2.72 +SHOW_DIRECTORIES       = NO
    2.73 +SHOW_FILES             = YES
    2.74 +SHOW_NAMESPACES        = NO
    2.75 +FILE_VERSION_FILTER    = 
    2.76 +LAYOUT_FILE            = ./DoxygenLayout.xml
    2.77 +#---------------------------------------------------------------------------
    2.78 +# configuration options related to warning and progress messages
    2.79 +#---------------------------------------------------------------------------
    2.80 +QUIET                  = NO
    2.81 +WARNINGS               = YES
    2.82 +WARN_IF_UNDOCUMENTED   = YES
    2.83 +WARN_IF_DOC_ERROR      = YES
    2.84 +WARN_NO_PARAMDOC       = NO
    2.85 +WARN_FORMAT            = "$file:$line: $text"
    2.86 +WARN_LOGFILE           = doxygen.log
    2.87 +#---------------------------------------------------------------------------
    2.88 +# configuration options related to the input files
    2.89 +#---------------------------------------------------------------------------
    2.90 +INPUT                  = ./gen-pdf-dox \
    2.91 +                         ./demo
    2.92 +INPUT_ENCODING         = UTF-8
    2.93 +FILE_PATTERNS          = *.h \
    2.94 +                         *.cc \
    2.95 +                         *.dox
    2.96 +RECURSIVE              = NO
    2.97 +EXCLUDE                = 
    2.98 +EXCLUDE_SYMLINKS       = NO
    2.99 +EXCLUDE_PATTERNS       = 
   2.100 +EXCLUDE_SYMBOLS        = 
   2.101 +EXAMPLE_PATH           = . \
   2.102 +                         ./demo
   2.103 +EXAMPLE_PATTERNS       = 
   2.104 +EXAMPLE_RECURSIVE      = NO
   2.105 +IMAGE_PATH             = ./images \
   2.106 +                         ./gen-images
   2.107 +INPUT_FILTER           = 
   2.108 +FILTER_PATTERNS        = 
   2.109 +FILTER_SOURCE_FILES    = NO
   2.110 +#---------------------------------------------------------------------------
   2.111 +# configuration options related to source browsing
   2.112 +#---------------------------------------------------------------------------
   2.113 +SOURCE_BROWSER         = NO
   2.114 +INLINE_SOURCES         = NO
   2.115 +STRIP_CODE_COMMENTS    = YES
   2.116 +REFERENCED_BY_RELATION = NO
   2.117 +REFERENCES_RELATION    = NO
   2.118 +REFERENCES_LINK_SOURCE = YES
   2.119 +USE_HTAGS              = NO
   2.120 +VERBATIM_HEADERS       = NO
   2.121 +#---------------------------------------------------------------------------
   2.122 +# configuration options related to the alphabetical class index
   2.123 +#---------------------------------------------------------------------------
   2.124 +ALPHABETICAL_INDEX     = YES
   2.125 +COLS_IN_ALPHA_INDEX    = 2
   2.126 +IGNORE_PREFIX          = 
   2.127 +#---------------------------------------------------------------------------
   2.128 +# configuration options related to the HTML output
   2.129 +#---------------------------------------------------------------------------
   2.130 +GENERATE_HTML          = NO
   2.131 +HTML_OUTPUT            = html
   2.132 +HTML_FILE_EXTENSION    = .html
   2.133 +HTML_HEADER            = 
   2.134 +HTML_FOOTER            = 
   2.135 +HTML_STYLESHEET        = 
   2.136 +HTML_ALIGN_MEMBERS     = YES
   2.137 +HTML_DYNAMIC_SECTIONS  = NO
   2.138 +GENERATE_DOCSET        = NO
   2.139 +DOCSET_FEEDNAME        = "Doxygen generated docs"
   2.140 +DOCSET_BUNDLE_ID       = org.doxygen.Project
   2.141 +GENERATE_HTMLHELP      = NO
   2.142 +CHM_FILE               = 
   2.143 +HHC_LOCATION           = 
   2.144 +GENERATE_CHI           = NO
   2.145 +CHM_INDEX_ENCODING     = 
   2.146 +BINARY_TOC             = NO
   2.147 +TOC_EXPAND             = NO
   2.148 +GENERATE_QHP           = NO
   2.149 +QCH_FILE               = 
   2.150 +QHP_NAMESPACE          = org.doxygen.Project
   2.151 +QHP_VIRTUAL_FOLDER     = doc
   2.152 +QHG_LOCATION           = 
   2.153 +DISABLE_INDEX          = NO
   2.154 +ENUM_VALUES_PER_LINE   = 4
   2.155 +GENERATE_TREEVIEW      = NO
   2.156 +TREEVIEW_WIDTH         = 250
   2.157 +FORMULA_FONTSIZE       = 10
   2.158 +#---------------------------------------------------------------------------
   2.159 +# configuration options related to the LaTeX output
   2.160 +#---------------------------------------------------------------------------
   2.161 +GENERATE_LATEX         = YES
   2.162 +LATEX_OUTPUT           = latex
   2.163 +LATEX_CMD_NAME         = latex
   2.164 +MAKEINDEX_CMD_NAME     = makeindex
   2.165 +COMPACT_LATEX          = YES
   2.166 +PAPER_TYPE             = a4wide
   2.167 +EXTRA_PACKAGES         = amsmath \
   2.168 +                         amssymb
   2.169 +LATEX_HEADER           = 
   2.170 +PDF_HYPERLINKS         = YES
   2.171 +USE_PDFLATEX           = YES
   2.172 +LATEX_BATCHMODE        = NO
   2.173 +LATEX_HIDE_INDICES     = NO
   2.174 +#---------------------------------------------------------------------------
   2.175 +# configuration options related to the RTF output
   2.176 +#---------------------------------------------------------------------------
   2.177 +GENERATE_RTF           = NO
   2.178 +RTF_OUTPUT             = rtf
   2.179 +COMPACT_RTF            = NO
   2.180 +RTF_HYPERLINKS         = NO
   2.181 +RTF_STYLESHEET_FILE    = 
   2.182 +RTF_EXTENSIONS_FILE    = 
   2.183 +#---------------------------------------------------------------------------
   2.184 +# configuration options related to the man page output
   2.185 +#---------------------------------------------------------------------------
   2.186 +GENERATE_MAN           = NO
   2.187 +MAN_OUTPUT             = man
   2.188 +MAN_EXTENSION          = .3
   2.189 +MAN_LINKS              = NO
   2.190 +#---------------------------------------------------------------------------
   2.191 +# configuration options related to the XML output
   2.192 +#---------------------------------------------------------------------------
   2.193 +GENERATE_XML           = NO
   2.194 +XML_OUTPUT             = xml
   2.195 +XML_SCHEMA             = 
   2.196 +XML_DTD                = 
   2.197 +XML_PROGRAMLISTING     = YES
   2.198 +#---------------------------------------------------------------------------
   2.199 +# configuration options for the AutoGen Definitions output
   2.200 +#---------------------------------------------------------------------------
   2.201 +GENERATE_AUTOGEN_DEF   = NO
   2.202 +#---------------------------------------------------------------------------
   2.203 +# configuration options related to the Perl module output
   2.204 +#---------------------------------------------------------------------------
   2.205 +GENERATE_PERLMOD       = NO
   2.206 +PERLMOD_LATEX          = NO
   2.207 +PERLMOD_PRETTY         = YES
   2.208 +PERLMOD_MAKEVAR_PREFIX = 
   2.209 +#---------------------------------------------------------------------------
   2.210 +# Configuration options related to the preprocessor   
   2.211 +#---------------------------------------------------------------------------
   2.212 +ENABLE_PREPROCESSING   = YES
   2.213 +MACRO_EXPANSION        = NO
   2.214 +EXPAND_ONLY_PREDEF     = NO
   2.215 +SEARCH_INCLUDES        = YES
   2.216 +INCLUDE_PATH           = 
   2.217 +INCLUDE_FILE_PATTERNS  = 
   2.218 +PREDEFINED             = DOXYGEN
   2.219 +EXPAND_AS_DEFINED      = 
   2.220 +SKIP_FUNCTION_MACROS   = YES
   2.221 +#---------------------------------------------------------------------------
   2.222 +# Configuration::additions related to external references   
   2.223 +#---------------------------------------------------------------------------
   2.224 +TAGFILES               = "./libstdc++.tag = http://gcc.gnu.org/onlinedocs/libstdc++/libstdc++-html-USERS-4.3" \
   2.225 +                         "./lemon.tag = @lemon_doc_prefix@"
   2.226 +GENERATE_TAGFILE       = 
   2.227 +ALLEXTERNALS           = NO
   2.228 +EXTERNAL_GROUPS        = NO
   2.229 +PERL_PATH              = /usr/bin/perl
   2.230 +#---------------------------------------------------------------------------
   2.231 +# Configuration options related to the dot tool   
   2.232 +#---------------------------------------------------------------------------
   2.233 +CLASS_DIAGRAMS         = NO
   2.234 +MSCGEN_PATH            = 
   2.235 +HIDE_UNDOC_RELATIONS   = YES
   2.236 +HAVE_DOT               = YES
   2.237 +DOT_FONTNAME           = FreeSans
   2.238 +DOT_FONTSIZE           = 10
   2.239 +DOT_FONTPATH           = 
   2.240 +CLASS_GRAPH            = YES
   2.241 +COLLABORATION_GRAPH    = NO
   2.242 +GROUP_GRAPHS           = NO
   2.243 +UML_LOOK               = NO
   2.244 +TEMPLATE_RELATIONS     = NO
   2.245 +INCLUDE_GRAPH          = NO
   2.246 +INCLUDED_BY_GRAPH      = NO
   2.247 +CALL_GRAPH             = NO
   2.248 +CALLER_GRAPH           = NO
   2.249 +GRAPHICAL_HIERARCHY    = NO
   2.250 +DIRECTORY_GRAPH        = NO
   2.251 +DOT_IMAGE_FORMAT       = png
   2.252 +DOT_PATH               = 
   2.253 +DOTFILE_DIRS           = 
   2.254 +DOT_GRAPH_MAX_NODES    = 50
   2.255 +MAX_DOT_GRAPH_DEPTH    = 0
   2.256 +DOT_TRANSPARENT        = NO
   2.257 +DOT_MULTI_TARGETS      = NO
   2.258 +GENERATE_LEGEND        = YES
   2.259 +DOT_CLEANUP            = YES
   2.260 +#---------------------------------------------------------------------------
   2.261 +# Configuration::additions related to the search engine   
   2.262 +#---------------------------------------------------------------------------
   2.263 +SEARCHENGINE           = NO
     3.1 --- a/Makefile.in	Mon Mar 01 02:30:00 2010 +0100
     3.2 +++ b/Makefile.in	Thu Apr 08 09:20:19 2010 +0200
     3.3 @@ -38,15 +38,26 @@
     3.4  
     3.5  html: Doxyfile-gen $(PNG_IMAGES)
     3.6  	-mkdir -p gen-dox
     3.7 +	-mkdir -p gen-pdf-dox
     3.8  	./scripts/titlegen.py
     3.9  	doxygen Doxyfile
    3.10  
    3.11 +pdf: Doxyfile-gen $(PNG_IMAGES)
    3.12 +	-mkdir -p gen-dox
    3.13 +	-mkdir -p gen-pdf-dox
    3.14 +	./scripts/titlegen.py	
    3.15 +	doxygen DoxyfilePdf
    3.16 +	make -C latex
    3.17 +
    3.18  demos: $(DEMOS)
    3.19  
    3.20  Doxyfile-gen:
    3.21  	sed -e 's/@version@/'`./scripts/chg-len.py`'/g' \
    3.22  	    -e 's/@lemon_doc_prefix@/@make_lemon_doc_prefix@/g' \
    3.23  	< Doxyfile.in >Doxyfile
    3.24 +	sed -e 's/@version@/'`./scripts/chg-len.py`'/g' \
    3.25 +	    -e 's/@lemon_doc_prefix@/@make_lemon_doc_prefix@/g' \
    3.26 +	< DoxyfilePdf.in >DoxyfilePdf
    3.27  
    3.28  clean:
    3.29  	-rm -rf html
     4.1 --- a/scripts/titlegen.py	Mon Mar 01 02:30:00 2010 +0100
     4.2 +++ b/scripts/titlegen.py	Thu Apr 08 09:20:19 2010 +0200
     4.3 @@ -1,4 +1,19 @@
     4.4  #! /usr/bin/env python
     4.5 +#
     4.6 +# This file is a part of LEMON, a generic C++ optimization library.
     4.7 +#
     4.8 +# Copyright (C) 2003-2010
     4.9 +# Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
    4.10 +# (Egervary Research Group on Combinatorial Optimization, EGRES).
    4.11 +#
    4.12 +# Permission to use, modify and distribute this software is granted
    4.13 +# provided that this copyright notice appears in all copies. For
    4.14 +# precise terms see the accompanying LICENSE file.
    4.15 +#
    4.16 +# This software is provided "AS IS" with no warranty of any kind,
    4.17 +# express or implied, and with no claim as to its suitability for any
    4.18 +# purpose.
    4.19 +#
    4.20  
    4.21  import sys
    4.22  import os
    4.23 @@ -40,6 +55,16 @@
    4.24  section = [];
    4.25  toc={}
    4.26  ind={}
    4.27 +page_files={}
    4.28 +ordered_pages = []
    4.29 +
    4.30 +for doxfile in os.listdir('.'):
    4.31 +    if doxfile[-4:]=='.dox':
    4.32 +        for l in open(doxfile).readlines():
    4.33 +            gr = re.match(r"(^[[]PAGE[]].*[[]PAGE[]])?(.*)$", l).groups()
    4.34 +            if gr[0]:
    4.35 +                page=gr[0][6:-6]
    4.36 +                page_files[page]=doxfile
    4.37  
    4.38  prev_page=''
    4.39  for l in open("toc.txt").readlines():
    4.40 @@ -56,6 +81,7 @@
    4.41              if prev_page:
    4.42                  ind[prev_page][2]=t_link
    4.43              prev_page=t_link
    4.44 +            ordered_pages.append(t_link)
    4.45          toc[format_sec(t_sec)]=t_link
    4.46  
    4.47  for doxfile in os.listdir('.'):
    4.48 @@ -95,3 +121,22 @@
    4.49              else:
    4.50                  fo.write(gr[4]+'\n')
    4.51          fo.close()
    4.52 +
    4.53 +fpdf=open(os.path.join("gen-pdf-dox","full.dox"),"w")
    4.54 +for doxfile in [page_files[p] for p in ordered_pages]:
    4.55 +    page=''
    4.56 +    for l in open(doxfile).readlines():
    4.57 +        gr = re.match(r"(^[[]PAGE[]].*[[]PAGE[]])?(^[[]SEC[]].*[[]SEC[]])?(^[[]TRAILER[]])?(^[[]TOC[]])?(.*)$", l).groups()
    4.58 +        if gr[0]:
    4.59 +            page=gr[0][6:-6]
    4.60 +            fpdf.write("\page %s %s\n"%(page,gr[4]))
    4.61 +        elif gr[1]:
    4.62 +            sec=gr[1][5:-5]
    4.63 +            fpdf.write("\section %s %s\n"%(sec,gr[4]))
    4.64 +        elif gr[2]:
    4.65 +            pass
    4.66 +        elif gr[3]:
    4.67 +            pass
    4.68 +        else:
    4.69 +            fpdf.write(gr[4]+'\n')
    4.70 +fpdf.close()