Package: scons-tool-doxyfile
SConstool to generate Doxyfile forDoxygen. The generated Doxyfile may be
further used byscons_doxygentool.InstallationThere are few ways to install this tool for your project.FrompypiThis method may be preferable if you build your project under a virtualenv. To
add doxyfile tool frompypi, type (within your wirtualenv):pipinstallscons-tool-loaderscons-tool-doxyfileor, if your project usespipenv:pipenvinstall--devscons-tool-loaderscons-tool-doxyfileAlternatively, you may add this to yourPipfile[dev-packages]
scons-tool-loader = "*"
scons-tool-doxyfile = "*"The tool will be installed as a namespaced packagesconstool.doxyfilein project’s virtual environment. You may further usescons-tool-loaderto load the tool.As a git submoduleCreate new git repository:mkdir/tmp/prj&&cd/tmp/prjtouchREADME.rstgitinitAdd thescons-tool-doxyfileas a submodule:gitsubmoduleaddgit://github.com/ptomulik/scons-tool-doxyfile.gitsite_scons/site_tools/doxyfileFor python 2.x create__init__.pyinsite_toolsdirectory:touchsite_scons/site_tools/__init__.pythis will allow to directly importsite_tools.doxyfile(this may be required by other tools).Usage exampleGit-based projectsCopy doxygen template tosrc/, for example:mkdir src && cp site_scons/site_tools/doxyfile/Doxyfile.in src/Create some source files, for examplesrc/test.hpp:// src/test.hpp/**
 * @brief Test class
 */classTestClass{};WriteSConstructfile:# SConstructenv=Environment(tools=['doxyfile','doxygen'])SConscript('src/SConscript',exports=['env'],variant_dir='build',duplicate=0)Writesrc/SConscript:# src/SConscriptImport(['env'])doxyfile=env.Doxyfile(INPUT='.',RECURSIVE=True)env.Doxygen(doxyfile)Try it out:sconsThis shall create documentation underbuilddirectory.Check the generated documentation (it should contain docs forTestClassunderClassestab):firefox build/html/index.htmlDetailsModule contents and descriptionThescons-tool-doxyfilecontains these crucial files:__init__.py,doxyoptions.pyandabout.pyfiles,Doxyfile.intemplate,SConstructscript, andthisREADME.rstThe tool provides aDoxyfile()builder which generatesDoxyfileconfiguration file fromDoxyfile.intemplate. It accepts severaloptionsto customize the generatedDoxyfile. The options are passed as keyword
arguments toDoxyfile:env.Doxyfile(INPUT='.',RECURSIVE=True,STRIP_FROM_INC_PATH='.',...)Same template may be used to generate documentation for several sub-projects by
using different sets of options (and variant builds, if necessary).
You may also use your own template file, instead of defaultDoxyfile.inshipped along with this tool.Option typesThe optionsDoxyfile()builder accepts are categorized into several types:TypeNoteExample value in SConscriptExample output to Doxyfileintinteger33strstring‘str1’ or ‘str 2’str1 or “str 2”listlist[‘a b’, False, 3]“a b” False 3dictdictionary{‘a’ : ‘A’, ‘b’ : ‘B’}a=A b=BboolbooleanTrue or FalseYES or NOentryref to file or directory‘foo’/tmp/prj/build/foofileref to file‘bar.txt’/tmp/prj/build/bar.txtdirref to directory‘.’/tmp/prj/buildsrcentryref to source file or dir‘foo’/tmp/prj/src/foosrcfileref to source file‘foo.txt’/tmp/prj/src/foo.txtsrcdirref to source directory‘.’/tmp/prj/srcdualentryref to entry + its source‘foo’/tmp/prj/build/foo \/tmp/prj/src/foodualfileref to file + its source‘foo.txt’/tmp/prj/build/foo.txt \/tmp/prj/src/foo.txtdualdirref to dir + its source‘.’/tmp/prj/build \/tmp/prj/srcentrieslist of entries[‘foo’, ‘bar/gez’]/tmp/prj/build/foo \/tmp/prj/build/bar/geezfileslist of files[‘foo’, ‘bar.txt’]/tmp/prj/build/foo \/tmp/prj/build/bar.txtdirslist of directories[‘.’, ‘foo’]/tmp/prj/build \/tmp/prj/build/foosrcentrieslist of source entries[‘.’, ‘foo’]/tmp/prj/src \/tmp/prj/src/foosrcfileslist of source files[‘a.txt’, ‘b.txt’]/tmp/prj/src/a.txt \/tmp/prj/src/b.txtsrcdirslist of source dirs[‘.’, ‘foo’]/tmp/prj/src \/tmp/prj/src/foodualentrieslist of dual entries[‘.’, ‘foo’]/tmp/prj/build \/tmp/prj/src \/tmp/prj/build/foo \/tmp/prj/src/foodualfileslist of dual files[‘a.txt’, ‘b.txt’]/tmp/prj/build/a.txt \/tmp/prj/src/a.txt \/tmp/prj/build/b.txt \/tmp/prj/src/b.txtdualdirslist of dual directories[‘.’, ‘foo’]/tmp/prj/build \/tmp/prj/src \/tmp/prj/build/foo \/tmp/prj/src/fooAnentryis a path to file or directory (undecided). For each value of typeentry,fileordira single path is outputted to Doxyfile. If
relative paths are provided by user, they are assumed to be relative to a
directory containing the callingSConscript. Note, thatSConswill
write absolute paths to Doxyfile, so you should consider usingSTRIP_FROM_PATH,STRIP_FROM_INC_PATHand similar options.In variant builds, theentry,fileanddirectory, if given as
relative paths,  will point to a file or subdirectory of build dir.Asrcentry,srcfile, orsrcdirwill generate a path pointing to a
source file or directory corresponding to given file. This, of course, becomes
relevant when variant builds are used.Dual entry, file (or directory) results with a single path or two
paths being emitted to Doxyfile. For variant builds, pair of paths is written
to Doxyfile: the first one in build dir and the second pointing to a
corresponding source file or dir.The values written to Doxyfile are automatically quoted if they contain
white spaces. For example, the hash{'a' : 'be ce'}will result witha="bece".Values being assigned to Doxyfile options are subject of simple validation.Supported optionsThe supported options are summarized in the following table:OptionTypeDefaultABBREVIATE_BRIEFstrALIASESstrALLEXTERNALSboolNOALPHABETICAL_INDEXboolYESALWAYS_DETAILED_SECboolNOAUTOLINK_SUPPORTboolYESBINARY_TOCboolNOBRIEF_MEMBER_DESCboolYESBUILTIN_STL_SUPPORTboolNOCALLER_GRAPHboolNOCALL_GRAPHboolNOCASE_SENSE_NAMESboolOS specificCHM_FILEsrcfileCHM_INDEX_ENCODINGstrCITE_BIB_FILESfilesCLANG_ASSISTED_PARSINGboolNOCLANG_OPTIONSstrCLASS_DIAGRAMSboolYESCLASS_GRAPHboolYESCOLLABORATION_GRAPHboolYESCOLS_IN_ALPHA_INDEXstrCOMPACT_LATEXboolNOCOMPACT_RTFboolNOCPP_CLI_SUPPORTboolNOCREATE_SUBDIRSboolNODIRECTORY_GRAPHboolYESDISABLE_INDEXboolNODISTRIBUTE_GROUP_DOCboolNODOCBOOK_OUTPUTdirDOCSET_BUNDLE_IDstrorg.doxygen.ProjectDOCSET_FEEDNAMEstr“Doxygen generated docs”DOCSET_PUBLISHER_IDstrorg.doxygen.PublisherDOCSET_PUBLISHER_NAMEstrPublisherDOTFILE_DIRSsrcdirsDOT_CLEANUPboolYESDOT_FONTNAMEstrHelveticaDOT_FONTPATHsrcdirDOT_FONTSIZEint10DOT_GRAPH_MAX_NODESint50DOT_IMAGE_FORMATstrpngDOT_MULTI_TARGETSboolNODOT_NUM_THREADSint0DOT_PATHstrDOT_TRANSPARENTboolNODOXYFILE_ENCODINGstrUTF-8ECLIPSE_DOC_IDstrorg.doxygen.ProjectENABLED_SECTIONSstrENABLE_PREPROCESSINGboolYESENUM_VALUES_PER_LINEint4EXAMPLE_PATHsrcdirsEXAMPLE_PATTERNSstrEXAMPLE_RECURSIVEboolNOEXCLUDEsrcdirsEXCLUDE_PATTERNSstrEXCLUDE_SYMBOLSstrEXCLUDE_SYMLINKSboolNOEXPAND_AS_DEFINEDlistEXPAND_ONLY_PREDEFboolNOEXTENSION_MAPPINGstrEXTERNAL_GROUPSboolYESEXTERNAL_PAGESboolYESEXTERNAL_SEARCHboolNOEXTERNAL_SEARCH_IDstrEXTRACT_ALLboolNOEXTRACT_ANON_NSPACESboolNOEXTRACT_LOCAL_CLASSESboolYESEXTRACT_LOCAL_METHODSboolNOEXTRACT_PACKAGEboolNOEXTRACT_PRIVATEboolNOEXTRACT_STATICboolNOEXTRA_PACKAGESstrEXTRA_SEARCH_MAPPINGSstrEXT_LINKS_IN_WINDOWboolNOFILE_PATTERNSstrFILE_VERSION_FILTERstrFILTER_PATTERNSdictFILTER_SOURCE_FILESboolNOFILTER_SOURCE_PATTERNSdictFORCE_LOCAL_INCLUDESboolNOFORMULA_FONTSIZEint10FORMULA_TRANSPARENTboolYESFULL_PATH_NAMESboolYESGENERATE_AUTOGEN_DEFboolNOGENERATE_BUGLISTboolYESGENERATE_CHIboolNOGENERATE_DEPRECATEDLISTboolYESGENERATE_DOCBOOKboolNOGENERATE_DOCSETboolNOGENERATE_ECLIPSEHELPboolNOGENERATE_HTMLboolYESGENERATE_HTMLHELPboolNOGENERATE_LATEXboolYESGENERATE_LEGENDboolYESGENERATE_MANboolNOGENERATE_PERLMODboolNOGENERATE_QHPboolNOGENERATE_RTFboolNOGENERATE_TAGFILEfileGENERATE_TESTLISTboolYESGENERATE_TODOLISTboolYESGENERATE_TREEVIEWboolNOGENERATE_XMLboolNOGRAPHICAL_HIERARCHYboolYESGROUP_GRAPHSboolYESHAVE_DOTboolNOHHC_LOCATIONstrHIDE_FRIEND_COMPOUNDSboolNOHIDE_IN_BODY_DOCSboolNOHIDE_SCOPE_NAMESboolNOHIDE_UNDOC_CLASSESboolNOHIDE_UNDOC_MEMBERSboolNOHIDE_UNDOC_RELATIONSboolYESHTML_COLORSTYLE_GAMMAint80HTML_COLORSTYLE_HUEint220HTML_COLORSTYLE_SATint100HTML_DYNAMIC_SECTIONSboolNOHTML_EXTRA_FILESsrcfilesHTML_EXTRA_STYLESHEETsrcfileHTML_FILE_EXTENSIONstr.htmlHTML_FOOTERsrcfileHTML_HEADERsrcfileHTML_INDEX_NUM_ENTRIESint100HTML_OUTPUTstrhtmlHTML_STYLESHEETsrcfileHTML_TIMESTAMPboolYESIDL_PROPERTY_SUPPORTboolYESIGNORE_PREFIXstrIMAGE_PATHsrcdirsINCLUDED_BY_GRAPHboolYESINCLUDE_FILE_PATTERNSstrINCLUDE_GRAPHboolYESINCLUDE_PATHsrcdirsINHERIT_DOCSboolYESINLINE_GROUPED_CLASSESboolNOINLINE_INFOboolYESINLINE_INHERITED_MEMBboolNOINLINE_SIMPLE_STRUCTSboolNOINLINE_SOURCESboolNOINPUTsrcentriesINPUT_ENCODINGstrUTF-8INPUT_FILTERstrINTERACTIVE_SVGboolNOINTERNAL_DOCSboolNOJAVADOC_AUTOBRIEFboolNOLATEX_BATCHMODEboolNOLATEX_BIB_STYLEstrLATEX_CMD_NAMEstrlatexLATEX_EXTRA_FILESsrcfilesLATEX_FOOTERsrcfileLATEX_HEADERsrcfileLATEX_HIDE_INDICESboolNOLATEX_OUTPUTstrlatexLATEX_SOURCE_CODEboolNOLAYOUT_FILEsrcfileLOOKUP_CACHE_SIZEint0MACRO_EXPANSIONboolNOMAKEINDEX_CMD_NAMEstrmakeindexMAN_EXTENSIONstr.3MAN_LINKSboolNOMAN_OUTPUTstrmanMARKDOWN_SUPPORTboolYESMATHJAX_CODEFILEsrcfileMATHJAX_EXTENSIONSstrMATHJAX_FORMATstrHTML-CSSMATHJAX_RELPATHstrhttp://cdn.mathjax.org/mathjax/latestMAX_DOT_GRAPH_DEPTHint0MAX_INITIALIZER_LINESint30MSCFILE_DIRSdirsMSCGEN_PATHstrMULTILINE_CPP_IS_BRIEFboolNOOPTIMIZE_FOR_FORTRANboolNOOPTIMIZE_OUTPUT_FOR_CboolNOOPTIMIZE_OUTPUT_JAVAboolNOOPTIMIZE_OUTPUT_VHDLboolNOOUTPUT_DIRECTORYdirOUTPUT_LANGUAGEstrEnglishPAPER_TYPEstra4PDF_HYPERLINKSboolYESPERLMOD_LATEXboolNOPERLMOD_MAKEVAR_PREFIXstrPERLMOD_PRETTYboolYESPERL_PATHstr/usr/bin/perlPREDEFINEDlistPROJECT_BRIEFstrPROJECT_LOGOstrPROJECT_NAMEstr“My Project”PROJECT_NUMBERstrQCH_FILEstrQHG_LOCATIONstrQHP_CUST_FILTER_ATTRSstrQHP_CUST_FILTER_NAMEstrQHP_NAMESPACEstrQHP_SECT_FILTER_ATTRSstrQHP_VIRTUAL_FOLDERstrdocQT_AUTOBRIEFboolNOQUIETboolNORECURSIVEboolNOREFERENCED_BY_RELATIONboolNOREFERENCES_LINK_SOURCEboolYESREFERENCES_RELATIONboolNOREPEAT_BRIEFboolYESRTF_EXTENSIONS_FILEfileRTF_HYPERLINKSboolNORTF_OUTPUTstrrtfRTF_STYLESHEET_FILEfileSEARCHDATA_FILEstrsearchdata.xmlSEARCHENGINEboolYESSEARCHENGINE_URLstrSEARCH_INCLUDESboolYESSEPARATE_MEMBER_PAGESboolNOSERVER_BASED_SEARCHboolNOSHORT_NAMESboolNOSHOW_FILESboolYESSHOW_INCLUDE_FILESboolYESSHOW_NAMESPACESboolYESSHOW_USED_FILESboolYESSIP_SUPPORTboolNOSKIP_FUNCTION_MACROSboolYESSORT_BRIEF_DOCSboolNOSORT_BY_SCOPE_NAMEboolNOSORT_GROUP_NAMESboolNOSORT_MEMBERS_CTORS_1STboolNOSORT_MEMBER_DOCSboolYESSOURCE_BROWSERboolNOSOURCE_TOOLTIPSboolYESSTRICT_PROTO_MATCHINGboolNOSTRIP_CODE_COMMENTSboolYESSTRIP_FROM_INC_PATHsrcdirsSTRIP_FROM_PATHsrcdirsSUBGROUPINGboolYESTAB_SIZEint4TAGFILESstrTCL_SUBSTstrTEMPLATE_RELATIONSboolNOTOC_EXPANDboolNOTREEVIEW_WIDTHint250TYPEDEF_HIDES_STRUCTboolNOUML_LIMIT_NUM_FIELDSint10UML_LOOKboolNOUSE_HTAGSboolNOUSE_MATHJAXboolNOUSE_MDFILE_AS_MAINPAGEsrcfileUSE_PDFLATEXboolYESVERBATIM_HEADERSboolYESWARNINGSboolYESWARN_FORMATstr“$file:$line: $text”WARN_IF_DOC_ERRORboolYESWARN_IF_UNDOCUMENTEDboolYESWARN_LOGFILEfileWARN_NO_PARAMDOCboolNOXML_DTDstrXML_OUTPUTstrxmlXML_PROGRAMLISTINGboolYESXML_SCHEMAstrNotes to developersRegenerating documentation for optionsIf you change some options indoxyoptions.py, then you should regenerate
option’s documentation inREADME.rst. New documentation may be generated by
running:scons -Q doc-optionsAfter that, copy-paste the output of the above command to an appropriate place
in thisREADME.rst(note, just skip scons messages).LICENSECopyright (c) 2013-2018 by Pawel Tomulik <ptomulik@meil.pw.edu.pl>Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the “Software”), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE