void DirectCommands::DepsSearchStart(ProjectBuildTarget* target) { depsSearchStart(); MacrosManager* mm = Manager::Get()->GetMacrosManager(); wxArrayString incs = m_pCompiler->GetCompilerSearchDirs(target); for (unsigned int i = 0; i < incs.GetCount(); ++i) { // replace custom vars in include dirs mm->ReplaceMacros(incs[i], target); // actually add search dirs for deps depsAddSearchDir(incs[i].mb_str()); } // We could add the "global" compiler directories too, but we normally // don't care about the modification times of system include files. }
//{ CppCheck int CppCheck::ExecuteCppCheck(cbProject* Project) { if ( !DoVersion(_T("cppcheck"), _T("cppcheck_app")) ) return -1; TCppCheckAttribs CppCheckAttribs; wxFile InputFile; CppCheckAttribs.InputFileName = _T("CppCheckInput.txt"); if ( !InputFile.Create(CppCheckAttribs.InputFileName, true) ) { cbMessageBox(_("Failed to create input file 'CppCheckInput.txt' for cppcheck.\nPlease check file/folder access rights."), _("Error"), wxICON_ERROR | wxOK, Manager::Get()->GetAppWindow()); return -1; } for (FilesList::iterator it = Project->GetFilesList().begin(); it != Project->GetFilesList().end(); ++it) { ProjectFile* pf = *it; // filter to avoid including non C/C++ files if ( pf->relativeFilename.EndsWith(FileFilters::C_DOT_EXT) || pf->relativeFilename.EndsWith(FileFilters::CPP_DOT_EXT) || pf->relativeFilename.EndsWith(FileFilters::CC_DOT_EXT) || pf->relativeFilename.EndsWith(FileFilters::CXX_DOT_EXT) || pf->relativeFilename.EndsWith(FileFilters::CPLPL_DOT_EXT) || (FileTypeOf(pf->relativeFilename) == ftHeader) || (FileTypeOf(pf->relativeFilename) == ftTemplateSource) ) { InputFile.Write(pf->relativeFilename + _T("\n")); } } InputFile.Close(); MacrosManager* MacrosMgr = Manager::Get()->GetMacrosManager(); ProjectBuildTarget* Target = Project->GetBuildTarget(Project->GetActiveBuildTarget()); // project include dirs const wxArrayString& IncludeDirs = Project->GetIncludeDirs(); for (unsigned int Dir = 0; Dir < IncludeDirs.GetCount(); ++Dir) { wxString IncludeDir(IncludeDirs[Dir]); if (Target) MacrosMgr->ReplaceMacros(IncludeDir, Target); else MacrosMgr->ReplaceMacros(IncludeDir); CppCheckAttribs.IncludeList += _T("-I\"") + IncludeDir + _T("\" "); } if (Target) { // target include dirs const wxArrayString& targetIncludeDirs = Target->GetIncludeDirs(); for (unsigned int Dir = 0; Dir < targetIncludeDirs.GetCount(); ++Dir) { wxString IncludeDir(targetIncludeDirs[Dir]); MacrosMgr->ReplaceMacros(IncludeDir, Target); CppCheckAttribs.IncludeList += _T("-I\"") + IncludeDir + _T("\" "); } } // project #defines const wxArrayString& Defines = Project->GetCompilerOptions(); for (unsigned int Opt = 0; Opt < Defines.GetCount(); ++Opt) { wxString Define(Defines[Opt]); if (Target) MacrosMgr->ReplaceMacros(Define, Target); else MacrosMgr->ReplaceMacros(Define); if ( Define.StartsWith(_T("-D")) ) CppCheckAttribs.DefineList += Define + _T(" "); } if (Target) { // target #defines const wxArrayString& targetDefines = Target->GetCompilerOptions(); for (unsigned int Opt = 0; Opt < targetDefines.GetCount(); ++Opt) { wxString Define(targetDefines[Opt]); MacrosMgr->ReplaceMacros(Define, Target); if ( Define.StartsWith(_T("-D")) ) CppCheckAttribs.DefineList += Define + _T(" "); } } return DoCppCheckExecute(CppCheckAttribs); }
/*! \brief Write the doxygen configuration and log files. * * \param prj cbProject* The project. * \param sPrjName wxString The project's name. * \param sPrjPath wxString The path to the project. * \param sDoxygenDir wxString The relative path to the doxygen files. * \param fnDoxyfile wxFileName Doxyfile filename object. * \param fnDoxygenLog wxFileName Doxygen log filename object. * */ void DoxyBlocks::WriteConfigFiles(cbProject *prj, wxString sPrjName, wxString /*sPrjPath*/, wxString /*sDoxygenDir*/, wxFileName fnDoxyfile, wxFileName fnDoxygenLog) { wxArrayString sOutput; wxArrayString sErrors; MacrosManager *pMacMngr = Manager::Get()->GetMacrosManager(); // If there is no config file, create one. If it exists, check prefs. bool bWrite = true; if(wxFile::Exists(fnDoxyfile.GetFullPath())){ bWrite = false; AppendToLog(_("Found existing doxyfile...")); bool bOverwriteDoxyfile = m_pConfig->GetOverwriteDoxyfile(); if(bOverwriteDoxyfile){ bool bPromptB4Overwriting = m_pConfig->GetPromptBeforeOverwriting(); if(bPromptB4Overwriting){ if(wxMessageBox(_("Overwrite existing doxyfile?"), wxT("DoxyBlocks"), wxYES_NO|wxCENTRE) == wxYES){ bWrite = true; } } else{ bWrite = true; } } } if(bWrite){ AppendToLog(_("Writing doxyfile...")); // Keep the CHM separate for easy access. wxString sChmFile = wxT("../") + sPrjName + wxT(".chm"); // Get the list of files from which to extract documentation. wxString sInputList = GetInputList(prj, fnDoxyfile); // Project. wxString sPrjNum = m_pConfig->GetProjectNumber(); wxString sLanguage = m_pConfig->GetOutputLanguage(); // Build. wxString sExtractAll = BoolToString(m_pConfig->GetExtractAll()); wxString sExtractPrivate = BoolToString(m_pConfig->GetExtractPrivate()); wxString sExtractStatic = BoolToString(m_pConfig->GetExtractStatic()); // Warnings. wxString sWarnings = BoolToString(m_pConfig->GetWarnings()); wxString sWarnIfUndoc = BoolToString(m_pConfig->GetWarnIfUndocumented()); wxString sWarnIfDocError = BoolToString(m_pConfig->GetWarnIfDocError()); wxString sWarnNoParamDoc = BoolToString(m_pConfig->GetWarnNoParamdoc()); // Alphabetical Class Index. wxString sAlphaIndex = BoolToString(m_pConfig->GetAlphabeticalIndex()); // Output. wxString sGenerateHTML = BoolToString(m_pConfig->GetGenerateHTML()); wxString sGenerateHTMLHelp = BoolToString(m_pConfig->GetGenerateHTMLHelp()); wxString sPathHHC = pMacMngr->ReplaceMacros(m_pConfig->GetPathHHC()); wxString sGenerateCHI = BoolToString(m_pConfig->GetGenerateCHI()); wxString sBinaryTOC = BoolToString(m_pConfig->GetBinaryTOC()); wxString sGenerateLatex = BoolToString(m_pConfig->GetGenerateLatex()); wxString sGenerateRTF = BoolToString(m_pConfig->GetGenerateRTF()); wxString sGenerateMan = BoolToString(m_pConfig->GetGenerateMan()); wxString sGenerateXML = BoolToString(m_pConfig->GetGenerateXML()); wxString sGenerateAutogenDef = BoolToString(m_pConfig->GetGenerateAutogenDef()); wxString sGeneratePerlMod = BoolToString(m_pConfig->GetGeneratePerlMod()); // Pre-processor. wxString sEnablePreproc = BoolToString(m_pConfig->GetEnablePreprocessing()); // Dot. wxString sClassDiag = BoolToString(m_pConfig->GetClassDiagrams()); wxString sHaveDot = BoolToString(m_pConfig->GetHaveDot()); wxString sPathDot = pMacMngr->ReplaceMacros(m_pConfig->GetPathDot()); // Create a full doxygen 1.7.3 config file without comments. wxString sText; wxString nl = wxT("\n"); wxString qnl = wxT("\"\n"); sText = wxT("#******************************************************************************\n"); sText += wxString(wxT("# ")) + _("Base configuration for doxygen, generated by DoxyBlocks") + wxT(".\n"); sText += wxString(wxT("# ")) + _("You may change these defaults to suit your purposes") + wxT(".\n"); sText += wxT("#******************************************************************************\n\n"); sText += wxT("# Doxyfile 1.7.3\n"); sText += wxT("\n"); sText += wxT("#---------------------------------------------------------------------------\n"); sText += wxT("# Project related configuration options\n"); sText += wxT("#---------------------------------------------------------------------------\n"); sText += wxT("DOXYFILE_ENCODING = UTF-8\n"); sText += wxT("PROJECT_NAME = ") + sPrjName + nl; sText += wxT("PROJECT_NUMBER = ") + sPrjNum + nl; sText += wxT("PROJECT_BRIEF =\n"); sText += wxT("PROJECT_LOGO =\n"); sText += wxT("OUTPUT_DIRECTORY =\n"); sText += wxT("CREATE_SUBDIRS = NO\n"); sText += wxT("OUTPUT_LANGUAGE = ") + sLanguage + nl; sText += wxT("BRIEF_MEMBER_DESC = YES\n"); sText += wxT("REPEAT_BRIEF = YES\n"); sText += wxT("ABBREVIATE_BRIEF =\n"); sText += wxT("ALWAYS_DETAILED_SEC = NO\n"); sText += wxT("INLINE_INHERITED_MEMB = NO\n"); sText += wxT("FULL_PATH_NAMES = NO\n"); sText += wxT("STRIP_FROM_PATH =\n"); sText += wxT("STRIP_FROM_INC_PATH =\n"); sText += wxT("SHORT_NAMES = NO\n"); sText += wxT("JAVADOC_AUTOBRIEF = NO\n"); sText += wxT("QT_AUTOBRIEF = NO\n"); sText += wxT("MULTILINE_CPP_IS_BRIEF = NO\n"); sText += wxT("INHERIT_DOCS = YES\n"); sText += wxT("SEPARATE_MEMBER_PAGES = NO\n"); sText += wxT("TAB_SIZE = 8\n"); sText += wxT("ALIASES =\n"); sText += wxT("OPTIMIZE_OUTPUT_FOR_C = NO\n"); sText += wxT("OPTIMIZE_OUTPUT_JAVA = NO\n"); sText += wxT("OPTIMIZE_FOR_FORTRAN = NO\n"); sText += wxT("OPTIMIZE_OUTPUT_VHDL = NO\n"); sText += wxT("EXTENSION_MAPPING =\n"); sText += wxT("BUILTIN_STL_SUPPORT = NO\n"); sText += wxT("CPP_CLI_SUPPORT = NO\n"); sText += wxT("SIP_SUPPORT = NO\n"); sText += wxT("IDL_PROPERTY_SUPPORT = YES\n"); sText += wxT("DISTRIBUTE_GROUP_DOC = NO\n"); sText += wxT("SUBGROUPING = YES\n"); sText += wxT("TYPEDEF_HIDES_STRUCT = NO\n"); sText += wxT("SYMBOL_CACHE_SIZE = 0\n"); sText += wxT("#---------------------------------------------------------------------------\n"); sText += wxT("# Build related configuration options\n"); sText += wxT("#---------------------------------------------------------------------------\n"); sText += wxT("EXTRACT_ALL = ") + sExtractAll + nl; sText += wxT("EXTRACT_PRIVATE = ") + sExtractPrivate + nl; sText += wxT("EXTRACT_STATIC = ") + sExtractStatic + nl; sText += wxT("EXTRACT_LOCAL_CLASSES = YES\n"); sText += wxT("EXTRACT_LOCAL_METHODS = NO\n"); sText += wxT("EXTRACT_ANON_NSPACES = NO\n"); sText += wxT("HIDE_UNDOC_MEMBERS = NO\n"); sText += wxT("HIDE_UNDOC_CLASSES = NO\n"); sText += wxT("HIDE_FRIEND_COMPOUNDS = NO\n"); sText += wxT("HIDE_IN_BODY_DOCS = NO\n"); sText += wxT("INTERNAL_DOCS = NO\n"); sText += wxT("CASE_SENSE_NAMES = NO\n"); sText += wxT("HIDE_SCOPE_NAMES = NO\n"); sText += wxT("SHOW_INCLUDE_FILES = YES\n"); sText += wxT("FORCE_LOCAL_INCLUDES = NO\n"); sText += wxT("INLINE_INFO = YES\n"); sText += wxT("SORT_MEMBER_DOCS = YES\n"); sText += wxT("SORT_BRIEF_DOCS = NO\n"); sText += wxT("SORT_MEMBERS_CTORS_1ST = NO\n"); sText += wxT("SORT_GROUP_NAMES = NO\n"); sText += wxT("SORT_BY_SCOPE_NAME = NO\n"); sText += wxT("STRICT_PROTO_MATCHING = NO\n"); sText += wxT("GENERATE_TODOLIST = YES\n"); sText += wxT("GENERATE_TESTLIST = YES\n"); sText += wxT("GENERATE_BUGLIST = YES\n"); sText += wxT("GENERATE_DEPRECATEDLIST= YES\n"); sText += wxT("ENABLED_SECTIONS =\n"); sText += wxT("MAX_INITIALIZER_LINES = 30\n"); sText += wxT("SHOW_USED_FILES = YES\n"); sText += wxT("SHOW_DIRECTORIES = NO\n"); sText += wxT("SHOW_FILES = YES\n"); sText += wxT("SHOW_NAMESPACES = YES\n"); sText += wxT("FILE_VERSION_FILTER =\n"); sText += wxT("LAYOUT_FILE =\n"); sText += wxT("#---------------------------------------------------------------------------\n"); sText += wxT("# configuration options related to warning and progress messages\n"); sText += wxT("#---------------------------------------------------------------------------\n"); sText += wxT("QUIET = NO\n"); sText += wxT("WARNINGS = ") + sWarnings + nl; sText += wxT("WARN_IF_UNDOCUMENTED = ") + sWarnIfUndoc + nl; sText += wxT("WARN_IF_DOC_ERROR = ") + sWarnIfDocError + nl; sText += wxT("WARN_NO_PARAMDOC = ") + sWarnNoParamDoc + nl; sText += wxT("WARN_FORMAT = \"$file:$line: $text\"\n"); sText += wxT("WARN_LOGFILE = \"") + fnDoxygenLog.GetFullPath() + qnl; sText += wxT("#---------------------------------------------------------------------------\n"); sText += wxT("# configuration options related to the input files\n"); sText += wxT("#---------------------------------------------------------------------------\n"); sText += sInputList; sText += wxT("INPUT_ENCODING = UTF-8\n"); sText += wxT("FILE_PATTERNS =\n"); sText += wxT("RECURSIVE = NO\n"); sText += wxT("EXCLUDE =\n"); sText += wxT("EXCLUDE_SYMLINKS = NO\n"); sText += wxT("EXCLUDE_PATTERNS =\n"); sText += wxT("EXCLUDE_SYMBOLS =\n"); sText += wxT("EXAMPLE_PATH =\n"); sText += wxT("EXAMPLE_PATTERNS =\n"); sText += wxT("EXAMPLE_RECURSIVE = NO\n"); sText += wxT("IMAGE_PATH =\n"); sText += wxT("INPUT_FILTER =\n"); sText += wxT("FILTER_PATTERNS =\n"); sText += wxT("FILTER_SOURCE_FILES = NO\n"); sText += wxT("FILTER_SOURCE_PATTERNS =\n"); sText += wxT("#---------------------------------------------------------------------------\n"); sText += wxT("# configuration options related to source browsing\n"); sText += wxT("#---------------------------------------------------------------------------\n"); sText += wxT("SOURCE_BROWSER = NO\n"); sText += wxT("INLINE_SOURCES = NO\n"); sText += wxT("STRIP_CODE_COMMENTS = YES\n"); sText += wxT("REFERENCED_BY_RELATION = NO\n"); sText += wxT("REFERENCES_RELATION = NO\n"); sText += wxT("REFERENCES_LINK_SOURCE = YES\n"); sText += wxT("USE_HTAGS = NO\n"); sText += wxT("VERBATIM_HEADERS = YES\n"); sText += wxT("#---------------------------------------------------------------------------\n"); sText += wxT("# configuration options related to the alphabetical class index\n"); sText += wxT("#---------------------------------------------------------------------------\n"); sText += wxT("ALPHABETICAL_INDEX = ") + sAlphaIndex + nl; sText += wxT("COLS_IN_ALPHA_INDEX = 5\n"); sText += wxT("IGNORE_PREFIX =\n"); sText += wxT("#---------------------------------------------------------------------------\n"); sText += wxT("# configuration options related to the HTML output\n"); sText += wxT("#---------------------------------------------------------------------------\n"); sText += wxT("GENERATE_HTML = ") + sGenerateHTML + nl; sText += wxT("HTML_OUTPUT = html\n"); sText += wxT("HTML_FILE_EXTENSION = .html\n"); sText += wxT("HTML_HEADER =\n"); sText += wxT("HTML_FOOTER =\n"); sText += wxT("HTML_STYLESHEET =\n"); sText += wxT("HTML_COLORSTYLE_HUE = 220\n"); sText += wxT("HTML_COLORSTYLE_SAT = 100\n"); sText += wxT("HTML_COLORSTYLE_GAMMA = 80\n"); sText += wxT("HTML_TIMESTAMP = YES\n"); sText += wxT("HTML_ALIGN_MEMBERS = YES\n"); sText += wxT("HTML_DYNAMIC_SECTIONS = NO\n"); sText += wxT("GENERATE_DOCSET = NO\n"); sText += wxT("DOCSET_FEEDNAME = \"Doxygen generated docs\"\n"); sText += wxT("DOCSET_BUNDLE_ID = org.doxygen.Project\n"); sText += wxT("DOCSET_PUBLISHER_ID = org.doxygen.Publisher\n"); sText += wxT("DOCSET_PUBLISHER_NAME = Publisher\n"); sText += wxT("GENERATE_HTMLHELP = ") + sGenerateHTMLHelp + nl; sText += wxT("CHM_FILE = \"") + sChmFile + qnl; if(!sPathHHC.IsEmpty()){ sText += wxT("HHC_LOCATION = \"") + sPathHHC + qnl; } else{ sText += wxT("HHC_LOCATION =\n"); } sText += wxT("GENERATE_CHI = ") + sGenerateCHI + nl; sText += wxT("CHM_INDEX_ENCODING =\n"); sText += wxT("BINARY_TOC = ") + sBinaryTOC + nl; sText += wxT("TOC_EXPAND = NO\n"); sText += wxT("GENERATE_QHP = NO\n"); sText += wxT("QCH_FILE =\n"); sText += wxT("QHP_NAMESPACE = org.doxygen.Project\n"); sText += wxT("QHP_VIRTUAL_FOLDER = doc\n"); sText += wxT("QHP_CUST_FILTER_NAME =\n"); sText += wxT("QHP_CUST_FILTER_ATTRS =\n"); sText += wxT("QHP_SECT_FILTER_ATTRS =\n"); sText += wxT("QHG_LOCATION =\n"); sText += wxT("GENERATE_ECLIPSEHELP = NO\n"); sText += wxT("ECLIPSE_DOC_ID = org.doxygen.Project\n"); sText += wxT("DISABLE_INDEX = NO\n"); sText += wxT("ENUM_VALUES_PER_LINE = 4\n"); sText += wxT("GENERATE_TREEVIEW = YES\n"); sText += wxT("USE_INLINE_TREES = NO\n"); sText += wxT("TREEVIEW_WIDTH = 250\n"); sText += wxT("EXT_LINKS_IN_WINDOW = NO\n"); sText += wxT("FORMULA_FONTSIZE = 10\n"); sText += wxT("FORMULA_TRANSPARENT = YES\n"); sText += wxT("USE_MATHJAX = NO\n"); sText += wxT("MATHJAX_RELPATH = http://www.mathjax.org/mathjax\n"); sText += wxT("SEARCHENGINE = YES\n"); sText += wxT("SERVER_BASED_SEARCH = NO\n"); sText += wxT("#---------------------------------------------------------------------------\n"); sText += wxT("# configuration options related to the LaTeX output\n"); sText += wxT("#---------------------------------------------------------------------------\n"); sText += wxT("GENERATE_LATEX = ") + sGenerateLatex + nl; sText += wxT("LATEX_OUTPUT = latex\n"); sText += wxT("LATEX_CMD_NAME = latex\n"); sText += wxT("MAKEINDEX_CMD_NAME = makeindex\n"); sText += wxT("COMPACT_LATEX = NO\n"); sText += wxT("PAPER_TYPE = a4\n"); sText += wxT("EXTRA_PACKAGES =\n"); sText += wxT("LATEX_HEADER =\n"); sText += wxT("PDF_HYPERLINKS = YES\n"); sText += wxT("USE_PDFLATEX = YES\n"); sText += wxT("LATEX_BATCHMODE = NO\n"); sText += wxT("LATEX_HIDE_INDICES = NO\n"); sText += wxT("LATEX_SOURCE_CODE = NO\n"); sText += wxT("#---------------------------------------------------------------------------\n"); sText += wxT("# configuration options related to the RTF output\n"); sText += wxT("#---------------------------------------------------------------------------\n"); sText += wxT("GENERATE_RTF = ") + sGenerateRTF + nl; sText += wxT("RTF_OUTPUT = rtf\n"); sText += wxT("COMPACT_RTF = NO\n"); sText += wxT("RTF_HYPERLINKS = NO\n"); sText += wxT("RTF_STYLESHEET_FILE =\n"); sText += wxT("RTF_EXTENSIONS_FILE =\n"); sText += wxT("#---------------------------------------------------------------------------\n"); sText += wxT("# configuration options related to the man page output\n"); sText += wxT("#---------------------------------------------------------------------------\n"); sText += wxT("GENERATE_MAN = ") + sGenerateMan + nl; sText += wxT("MAN_OUTPUT = man\n"); sText += wxT("MAN_EXTENSION = .3\n"); sText += wxT("MAN_LINKS = NO\n"); sText += wxT("#---------------------------------------------------------------------------\n"); sText += wxT("# configuration options related to the XML output\n"); sText += wxT("#---------------------------------------------------------------------------\n"); sText += wxT("GENERATE_XML = ") + sGenerateXML + nl; sText += wxT("XML_OUTPUT = xml\n"); sText += wxT("XML_SCHEMA =\n"); sText += wxT("XML_DTD =\n"); sText += wxT("XML_PROGRAMLISTING = YES\n"); sText += wxT("#---------------------------------------------------------------------------\n"); sText += wxT("# configuration options for the AutoGen Definitions output\n"); sText += wxT("#---------------------------------------------------------------------------\n"); sText += wxT("GENERATE_AUTOGEN_DEF = ") + sGenerateAutogenDef + nl; sText += wxT("#---------------------------------------------------------------------------\n"); sText += wxT("# configuration options related to the Perl module output\n"); sText += wxT("#---------------------------------------------------------------------------\n"); sText += wxT("GENERATE_PERLMOD = ") + sGeneratePerlMod + nl; sText += wxT("PERLMOD_LATEX = NO\n"); sText += wxT("PERLMOD_PRETTY = YES\n"); sText += wxT("PERLMOD_MAKEVAR_PREFIX =\n"); sText += wxT("#---------------------------------------------------------------------------\n"); sText += wxT("# Configuration options related to the preprocessor\n"); sText += wxT("#---------------------------------------------------------------------------\n"); sText += wxT("ENABLE_PREPROCESSING = ") + sEnablePreproc + nl; sText += wxT("MACRO_EXPANSION = YES\n"); sText += wxT("EXPAND_ONLY_PREDEF = YES\n"); sText += wxT("SEARCH_INCLUDES = YES\n"); sText += wxT("INCLUDE_PATH =\n"); sText += wxT("INCLUDE_FILE_PATTERNS =\n"); sText += wxT("PREDEFINED = WXUNUSED()=\n"); /// TODO (Gary#1#): I should look at other macros for inclusion here. sText += wxT("EXPAND_AS_DEFINED =\n"); sText += wxT("SKIP_FUNCTION_MACROS = YES\n"); sText += wxT("#---------------------------------------------------------------------------\n"); sText += wxT("# Configuration::additions related to external references\n"); sText += wxT("#---------------------------------------------------------------------------\n"); sText += wxT("TAGFILES =\n"); sText += wxT("GENERATE_TAGFILE =\n"); sText += wxT("ALLEXTERNALS = NO\n"); sText += wxT("EXTERNAL_GROUPS = YES\n"); sText += wxT("PERL_PATH = /usr/bin/perl\n"); sText += wxT("#---------------------------------------------------------------------------\n"); sText += wxT("# Configuration options related to the dot tool\n"); sText += wxT("#---------------------------------------------------------------------------\n"); sText += wxT("CLASS_DIAGRAMS = ") + sClassDiag + nl; sText += wxT("MSCGEN_PATH =\n"); sText += wxT("HIDE_UNDOC_RELATIONS = YES\n"); sText += wxT("HAVE_DOT = ") + sHaveDot + nl; sText += wxT("DOT_NUM_THREADS = 0\n"); sText += wxT("DOT_FONTNAME = Helvetica\n"); sText += wxT("DOT_FONTSIZE = 10\n"); sText += wxT("DOT_FONTPATH =\n"); sText += wxT("CLASS_GRAPH = YES\n"); sText += wxT("COLLABORATION_GRAPH = YES\n"); sText += wxT("GROUP_GRAPHS = YES\n"); sText += wxT("UML_LOOK = NO\n"); sText += wxT("TEMPLATE_RELATIONS = NO\n"); sText += wxT("INCLUDE_GRAPH = YES\n"); sText += wxT("INCLUDED_BY_GRAPH = YES\n"); sText += wxT("CALL_GRAPH = YES\n"); sText += wxT("CALLER_GRAPH = NO\n"); sText += wxT("GRAPHICAL_HIERARCHY = YES\n"); sText += wxT("DIRECTORY_GRAPH = YES\n"); sText += wxT("DOT_IMAGE_FORMAT = png\n"); if(!sPathDot.IsEmpty()){ sText += wxT("DOT_PATH = \"") + sPathDot + qnl; } else{ sText += wxT("DOT_PATH =\n"); } sText += wxT("DOTFILE_DIRS =\n"); sText += wxT("MSCFILE_DIRS =\n"); sText += wxT("DOT_GRAPH_MAX_NODES = 50\n"); sText += wxT("MAX_DOT_GRAPH_DEPTH = 0\n"); sText += wxT("DOT_TRANSPARENT = NO\n"); sText += wxT("DOT_MULTI_TARGETS = NO\n"); sText += wxT("GENERATE_LEGEND = YES\n"); sText += wxT("DOT_CLEANUP = YES\n"); sText += wxT("\n"); wxFFile fileDoxyfile(fnDoxyfile.GetFullPath(), wxT("w")); fileDoxyfile.Write(sText); } }