#!/usr/bin/perl ########################################################################## # orxonox - the future of 3D-vertical-scrollers # # # # Copyright (C) 2004 orx # # # # 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, or (at your option) # # any later version. # # # # ### File Specific: # # main-programmer: Benjamin Grauer # # co-programmer: ... # # # # This Script is for parsing single or multiple files for their # # doxygeb-tags, and outputs the warnings and errors, but prehibits # # the progress from being displayed. # # Usage: ./orxodox.checkFiles.pl [fileName1 [fileName2 [...]]] # # This script ignores file-extensions, and assumes that either # # .h, .cc or both may exist, and searches for them. # ########################################################################## $inputFiles = @ARGV[0]; $tempDoxFile = "TMPorxodox"; unless (open (DOXfile, ">$tempDoxFile")) { die("cannot open file\n"); } $processFiles = ""; $numberOfFiles = 0; foreach $inputFile (@ARGV) { $tmpNumber = $numberOfFiles; $inputFile =~ s/\.cc$//; $inputFile =~ s/\.h$//; print "checking file $inputFile: "; $inputFile =~ s/$/\.h/; if (-e $inputFile) { $processFiles = "$processFiles $inputFile"; $numberOfFiles++; print "found .h "; } $inputFile =~ s/\.h$/\.cc/; if (-e $inputFile) { $processFiles = "$processFiles $inputFile"; $numberOfFiles++; print "...found .cc "; } if ($tmpNumber == $numberOfFiles) {print "no matching files found";} print "\n"; } if ($numberOfFiles == 0 && @ARGV !=0){ die("no Files have been found\n");} print "==================================================================\n"; print "Generating temporary Documentation File\n"; print "==================================================================\n"; print DOXfile "# THIS IS A DEFAULT FILE FOR DOXYGEN DOCUMENTATION"; printf DOXfile "# Doxyfile 1.3.7 \ ## SAMPLE FILE (to be executed from orxonox/trunk/) \ \ #--------------------------------------------------------------------------- \ # Project related configuration options \ #--------------------------------------------------------------------------- \ PROJECT_NAME = Orxonox \ PROJECT_NUMBER = 1 \ OUTPUT_DIRECTORY = doxygen/ \ CREATE_SUBDIRS = YES \ OUTPUT_LANGUAGE = English \ USE_WINDOWS_ENCODING = YES \ BRIEF_MEMBER_DESC = YES \ REPEAT_BRIEF = YES \ ABBREVIATE_BRIEF = \ ALWAYS_DETAILED_SEC = NO \ INLINE_INHERITED_MEMB = NO \ FULL_PATH_NAMES = NO \ STRIP_FROM_PATH = \ STRIP_FROM_INC_PATH = \ SHORT_NAMES = NO \ JAVADOC_AUTOBRIEF = NO \ MULTILINE_CPP_IS_BRIEF = NO \ DETAILS_AT_TOP = NO \ INHERIT_DOCS = YES \ DISTRIBUTE_GROUP_DOC = NO \ TAB_SIZE = 8 \ ALIASES = \ OPTIMIZE_OUTPUT_FOR_C = NO \ OPTIMIZE_OUTPUT_JAVA = NO \ SUBGROUPING = YES \ #--------------------------------------------------------------------------- \ # Build related configuration options \ #--------------------------------------------------------------------------- \ EXTRACT_ALL = NO \ EXTRACT_PRIVATE = YES \ EXTRACT_STATIC = YES \ EXTRACT_LOCAL_CLASSES = YES \ EXTRACT_LOCAL_METHODS = NO \ HIDE_UNDOC_MEMBERS = NO \ HIDE_UNDOC_CLASSES = NO \ HIDE_FRIEND_COMPOUNDS = NO \ HIDE_IN_BODY_DOCS = NO \ INTERNAL_DOCS = NO \ CASE_SENSE_NAMES = YES \ HIDE_SCOPE_NAMES = NO \ SHOW_INCLUDE_FILES = YES \ INLINE_INFO = YES \ SORT_MEMBER_DOCS = YES \ SORT_BRIEF_DOCS = NO \ SORT_BY_SCOPE_NAME = NO \ GENERATE_TODOLIST = YES \ GENERATE_TESTLIST = YES \ GENERATE_BUGLIST = YES \ GENERATE_DEPRECATEDLIST= YES \ ENABLED_SECTIONS = \ MAX_INITIALIZER_LINES = 30 \ SHOW_USED_FILES = YES \ #--------------------------------------------------------------------------- \ # configuration options related to warning and progress messages \ #--------------------------------------------------------------------------- \ QUIET = YES \ WARNINGS = YES \ WARN_IF_UNDOCUMENTED = YES \ WARN_IF_DOC_ERROR = YES \ WARN_FORMAT = \"\$file:\$line: \$text\" \ WARN_LOGFILE = \ #--------------------------------------------------------------------------- \ # configuration options related to the input files \ #--------------------------------------------------------------------------- \ INPUT = $processFiles \ FILE_PATTERNS = \ RECURSIVE = NO \ EXCLUDE = \ EXCLUDE_SYMLINKS = NO \ EXCLUDE_PATTERNS = \ EXAMPLE_PATH = \ EXAMPLE_PATTERNS = \ EXAMPLE_RECURSIVE = NO \ IMAGE_PATH = \ INPUT_FILTER = \ FILTER_SOURCE_FILES = NO \ #--------------------------------------------------------------------------- \ # configuration options related to source browsing \ #--------------------------------------------------------------------------- \ SOURCE_BROWSER = NO \ INLINE_SOURCES = NO \ STRIP_CODE_COMMENTS = YES \ REFERENCED_BY_RELATION = YES \ REFERENCES_RELATION = YES \ VERBATIM_HEADERS = YES \ #--------------------------------------------------------------------------- \ # configuration options related to the alphabetical class index \ #--------------------------------------------------------------------------- \ ALPHABETICAL_INDEX = NO \ COLS_IN_ALPHA_INDEX = 5 \ IGNORE_PREFIX = \ #--------------------------------------------------------------------------- \ # configuration options related to the HTML output \ #--------------------------------------------------------------------------- \ GENERATE_HTML = YES \ HTML_OUTPUT = html \ HTML_FILE_EXTENSION = .html \ HTML_HEADER = \ HTML_FOOTER = \ HTML_STYLESHEET = \ HTML_ALIGN_MEMBERS = YES \ GENERATE_HTMLHELP = NO \ CHM_FILE = \ HHC_LOCATION = \ GENERATE_CHI = NO \ BINARY_TOC = NO \ TOC_EXPAND = NO \ DISABLE_INDEX = NO \ ENUM_VALUES_PER_LINE = 4 \ GENERATE_TREEVIEW = NO \ TREEVIEW_WIDTH = 250 \ #--------------------------------------------------------------------------- \ # configuration options related to the LaTeX output \ #--------------------------------------------------------------------------- \ GENERATE_LATEX = NO \ LATEX_OUTPUT = latex \ LATEX_CMD_NAME = latex \ MAKEINDEX_CMD_NAME = makeindex \ COMPACT_LATEX = NO \ PAPER_TYPE = a4wide \ EXTRA_PACKAGES = \ LATEX_HEADER = \ PDF_HYPERLINKS = NO \ USE_PDFLATEX = NO \ LATEX_BATCHMODE = NO \ LATEX_HIDE_INDICES = NO \ #--------------------------------------------------------------------------- \ # configuration options related to the RTF output \ #--------------------------------------------------------------------------- \ GENERATE_RTF = NO \ RTF_OUTPUT = rtf \ COMPACT_RTF = NO \ RTF_HYPERLINKS = NO \ RTF_STYLESHEET_FILE = \ RTF_EXTENSIONS_FILE = \ #--------------------------------------------------------------------------- \ # configuration options related to the man page output \ #--------------------------------------------------------------------------- \ GENERATE_MAN = NO \ MAN_OUTPUT = man \ MAN_EXTENSION = .3 \ MAN_LINKS = NO \ #--------------------------------------------------------------------------- \ # configuration options related to the XML output \ #--------------------------------------------------------------------------- \ GENERATE_XML = NO \ XML_OUTPUT = xml \ XML_SCHEMA = \ XML_DTD = \ XML_PROGRAMLISTING = YES \ #--------------------------------------------------------------------------- \ # configuration options for the AutoGen Definitions output \ #--------------------------------------------------------------------------- \ GENERATE_AUTOGEN_DEF = NO \ #--------------------------------------------------------------------------- \ # configuration options related to the Perl module output \ #--------------------------------------------------------------------------- \ GENERATE_PERLMOD = NO \ PERLMOD_LATEX = NO \ PERLMOD_PRETTY = YES \ PERLMOD_MAKEVAR_PREFIX = \ #--------------------------------------------------------------------------- \ # Configuration options related to the preprocessor \ #--------------------------------------------------------------------------- \ ENABLE_PREPROCESSING = YES \ MACRO_EXPANSION = NO \ EXPAND_ONLY_PREDEF = NO \ SEARCH_INCLUDES = YES \ INCLUDE_PATH = \ INCLUDE_FILE_PATTERNS = \ PREDEFINED = \ EXPAND_AS_DEFINED = \ SKIP_FUNCTION_MACROS = YES \ #--------------------------------------------------------------------------- \ # Configuration::additions related to external references \ #--------------------------------------------------------------------------- \ TAGFILES = \ GENERATE_TAGFILE = \ ALLEXTERNALS = NO \ EXTERNAL_GROUPS = YES \ PERL_PATH = /usr/bin/perl \ #--------------------------------------------------------------------------- \ # Configuration options related to the dot tool \ #--------------------------------------------------------------------------- \ CLASS_DIAGRAMS = YES \ HIDE_UNDOC_RELATIONS = YES \ HAVE_DOT = NO \ CLASS_GRAPH = YES \ COLLABORATION_GRAPH = YES \ UML_LOOK = NO \ TEMPLATE_RELATIONS = NO \ INCLUDE_GRAPH = YES \ INCLUDED_BY_GRAPH = YES \ CALL_GRAPH = NO \ GRAPHICAL_HIERARCHY = YES \ DOT_IMAGE_FORMAT = png \ DOT_PATH = \ DOTFILE_DIRS = \ MAX_DOT_GRAPH_WIDTH = 1024 \ MAX_DOT_GRAPH_HEIGHT = 1024 \ MAX_DOT_GRAPH_DEPTH = 0 \ GENERATE_LEGEND = YES \ DOT_CLEANUP = YES \ #--------------------------------------------------------------------------- \ # Configuration::additions related to the search engine \ #--------------------------------------------------------------------------- \ SEARCHENGINE = NO \ \ "; close DOXfile; print "==================================================================\n"; print "Generating Documentation of $processFiles\n"; print "==================================================================\n"; exec("doxygen $tempDoxFile"); unlink $tmpDoxFile;