1
0
mirror of synced 2025-01-18 22:41:43 +03:00

Added a Phing build script for building API docs using PHPDoc and Doxygen.

This commit is contained in:
jhassine 2006-09-26 16:47:00 +00:00
parent 6094eeb536
commit 816971e883
2 changed files with 381 additions and 0 deletions

223
tools/build/Doxyfile Normal file
View File

@ -0,0 +1,223 @@
# Doxyfile 1.4.6
#---------------------------------------------------------------------------
# Project related configuration options
#---------------------------------------------------------------------------
PROJECT_NAME = Doctrine
PROJECT_NUMBER =
OUTPUT_DIRECTORY = ../../build/tobuild/docs/API/doxygen
CREATE_SUBDIRS = YES
OUTPUT_LANGUAGE = English
USE_WINDOWS_ENCODING = YES
BRIEF_MEMBER_DESC = YES
REPEAT_BRIEF = YES
ABBREVIATE_BRIEF = "The $name class" "The $name widget" "The $name file" is provides specifies contains represents a an the
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
SEPARATE_MEMBER_PAGES = NO
TAB_SIZE = 4
ALIASES =
OPTIMIZE_OUTPUT_FOR_C = NO
OPTIMIZE_OUTPUT_JAVA = NO
BUILTIN_STL_SUPPORT = NO
DISTRIBUTE_GROUP_DOC = NO
SUBGROUPING = YES
#---------------------------------------------------------------------------
# Build related configuration options
#---------------------------------------------------------------------------
EXTRACT_ALL = YES
EXTRACT_PRIVATE = YES
EXTRACT_STATIC = YES
EXTRACT_LOCAL_CLASSES = YES
EXTRACT_LOCAL_METHODS = YES
HIDE_UNDOC_MEMBERS = NO
HIDE_UNDOC_CLASSES = NO
HIDE_FRIEND_COMPOUNDS = NO
HIDE_IN_BODY_DOCS = NO
INTERNAL_DOCS = NO
CASE_SENSE_NAMES = NO
HIDE_SCOPE_NAMES = NO
SHOW_INCLUDE_FILES = YES
INLINE_INFO = YES
SORT_MEMBER_DOCS = YES
SORT_BRIEF_DOCS = YES
SORT_BY_SCOPE_NAME = YES
GENERATE_TODOLIST = YES
GENERATE_TESTLIST = YES
GENERATE_BUGLIST = YES
GENERATE_DEPRECATEDLIST = YES
ENABLED_SECTIONS =
MAX_INITIALIZER_LINES = 30
SHOW_USED_FILES = YES
SHOW_DIRECTORIES = NO
FILE_VERSION_FILTER =
#---------------------------------------------------------------------------
# configuration options related to warning and progress messages
#---------------------------------------------------------------------------
QUIET = NO
WARNINGS = YES
WARN_IF_UNDOCUMENTED = YES
WARN_IF_DOC_ERROR = YES
WARN_NO_PARAMDOC = NO
WARN_FORMAT = "$file:$line: $text"
WARN_LOGFILE =
#---------------------------------------------------------------------------
# configuration options related to the input files
#---------------------------------------------------------------------------
INPUT = "../../lib"
FILE_PATTERNS = *.c *.cc *.cxx *.cpp *.c++ *.d *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.dox *.py
RECURSIVE = YES
EXCLUDE =
EXCLUDE_SYMLINKS = NO
EXCLUDE_PATTERNS =
EXAMPLE_PATH =
EXAMPLE_PATTERNS = *
EXAMPLE_RECURSIVE = NO
IMAGE_PATH =
INPUT_FILTER =
FILTER_PATTERNS =
FILTER_SOURCE_FILES = NO
#---------------------------------------------------------------------------
# configuration options related to source browsing
#---------------------------------------------------------------------------
SOURCE_BROWSER = YES
INLINE_SOURCES = NO
STRIP_CODE_COMMENTS = YES
REFERENCED_BY_RELATION = YES
REFERENCES_RELATION = YES
USE_HTAGS = NO
VERBATIM_HEADERS = YES
#---------------------------------------------------------------------------
# configuration options related to the alphabetical class index
#---------------------------------------------------------------------------
ALPHABETICAL_INDEX = YES
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 = YES
CHM_FILE = chm.chm
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 = YES
USE_PDFLATEX = YES
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 = YES
#---------------------------------------------------------------------------
# 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
GROUP_GRAPHS = YES
UML_LOOK = YES
TEMPLATE_RELATIONS = NO
INCLUDE_GRAPH = YES
INCLUDED_BY_GRAPH = YES
CALL_GRAPH = YES
GRAPHICAL_HIERARCHY = YES
DIRECTORY_GRAPH = YES
DOT_IMAGE_FORMAT = png
DOT_PATH =
DOTFILE_DIRS =
MAX_DOT_GRAPH_WIDTH = 1024
MAX_DOT_GRAPH_HEIGHT = 1024
MAX_DOT_GRAPH_DEPTH = 1000
DOT_TRANSPARENT = NO
DOT_MULTI_TARGETS = NO
GENERATE_LEGEND = YES
DOT_CLEANUP = YES
#---------------------------------------------------------------------------
# Configuration::additions related to the search engine
#---------------------------------------------------------------------------
SEARCHENGINE = NO

158
tools/build/build.xml Normal file
View File

@ -0,0 +1,158 @@
<?xml version="1.0"?>
<!--
Builds API documentation and PEAR compliant packages.
Phing 2.2.0 (http://phing.info) or newer recommended.
@version $Id$
@author Jukka Hassinen <jukka.hassinen@brainalliance.com>
-->
<project name="Doctrine" basedir="." default="main">
<property name="base.name" value="Doctrine"/>
<property name="project.base.dir" value="../.."/>
<property name="build.base.dir" value="${project.base.dir}/build"/>
<property name="build.dest.dir" value="${build.base.dir}/tobuild"/>
<fileset dir="${project.base.dir}/lib" id="classes">
<include name="**/**"/>
<exclude name="**/.svn**"/>
</fileset>
<fileset dir="${project.base.dir}/manual" id="docs">
<include name="**/**"/>
<exclude name="**/.svn**"/>
</fileset>
<fileset dir="${project.base.dir}/tests" id="test">
<include name="**/**"/>
<exclude name="**/.svn**"/>
<exclude name="**/.svn*/*.txt"/>
<exclude name=".svn/**"/>
<exclude name=".svn**"/>
</fileset>
<target name="main">
<phingcall target="build"/>
<phingcall target="generate-docs"/>
<!-- <phingcall target="pear-package"/> -->
<!-- <phingcall target="compress"/> -->
</target>
<target name="build">
<echo>-----------------------------</echo>
<echo>| Creating directory layout |</echo>
<echo>-----------------------------</echo>
<delete dir="${build.base.dir}"/>
<copy todir="${build.dest.dir}/lib">
<fileset refid="classes"/>
</copy>
<copy todir="${build.dest.dir}/docs">
<fileset refid="docs"/>
</copy>
<copy todir="${build.dest.dir}/test">
<fileset refid="test"/>
</copy>
<svnlastrevision svnpath="svn" workingcopy="${project.base.dir}" propertyname="svn.lastrevision"/>
<property name="version" value="0.0.${svn.lastrevision}"/>
<fileset dir="${build.dest.dir}" id="php-files">
<include name="**/**.php"/>
<exclude name="**/.svn**"/>
</fileset>
<reflexive>
<fileset refid="php-files" />
<filterchain>
<replaceregexp>
<regexp pattern="@version \$(.*)\$" replace="@version \$$1\$ Package ver: ${version}"/>
</replaceregexp>
</filterchain>
<filterchain>
<tabtospaces tablength="4" />
</filterchain>
</reflexive>
</target>
<target name="generate-docs">
<!--
Generates the API documentation using Doxygen and PHPDoc
Doxygen is required in the path.
-->
<exec command="doxygen" dir="."/>
<!-- <exec command="make pdf" dir="${build.src.dir}/docs/latex"/> -->
<phpdoc title="Doctrine Documentation" destdir="${build.dest.dir}/docs/API/phpdoc/html"
sourcepath="${project.base.dir}/lib" output="HTML:Smarty:PHP"/>
</target>
<target name="pear-package">
<echo>-----------------------------</echo>
<echo>| Creating PEAR package.xml |</echo>
<echo>-----------------------------</echo>
<echo></echo>
<svnlastrevision svnpath="svn" workingcopy="${project.base.dir}" propertyname="svn.lastrevision"/>
<property name="version" value="0.0.${svn.lastrevision}"/>
<pearpkg name="${base.name}" dir="${build.dest.dir}" destFile="${build.dest.dir}/package.xml">
<fileset refid="classes"/>
<fileset refid="docs"/>
<fileset refid="test"/>
<option name="notes">*</option>
<option name="description">ORM</option>
<option name="summary">ORM</option>
<option name="version" value="${version}"/>
<option name="state" value="stable"/>
<option name="license" value="LGPL"/>
<mapping name="maintainers">
<element>
<element key="handle" value="jhassine"/>
<element key="name" value="Jukka Hassinen"/>
<element key="email" value="Jukka.Hassinen@BrainAlliance.com"/>
<element key="role" value="lead"/>
</element>
</mapping>
<mapping name="deps">
<element>
<element key="type" value="php"/>
<element key="version" value="5.1.0"/>
<element key="rel" value="ge"/>
</element>
</mapping>
</pearpkg>
</target>
<target name="compress">
<echo>-----------------------------</echo>
<echo>| Creating tar.gz package |</echo>
<echo>-----------------------------</echo>
<svnlastrevision svnpath="svn" workingcopy="." propertyname="svn.lastrevision"/>
<property name="version" value="0.0.${svn.lastrevision}"/>
<property name="gztarfile" value="${build.base.dir}/${base.name}-${version}-pear.tar.gz"/>
<property name="bz2tarfile" value="${build.base.dir}/${base.name}-${version}-pear.tar.bz2"/>
<property name="zipfile" value="${build.base.dir}/${base.name}-${version}-pear.zip"/>
<delete file="${gztarfile}"/>
<delete file="${bz2tarfile}"/>
<delete file="${zipfile}"/>
<tar destFile="${gztarfile}" basedir="${build.dest.dir}" compression="gzip"/>
<tar destFile="${bz2tarfile}" basedir="${build.dest.dir}" compression="bzip2"/>
<zip destfile="${zipfile}" basedir="${build.dest.dir}"/>
</target>
</project>