How to use Doxygen with Xcode?

I am trying to use Doxygen with Xcode. I followed the Apple tutorial . After a few mistakes, I built the project and created the documents. I found that if you save doxygen.config from Doxygen and you use the space "" in the directory name, you will have problems and other things.

But there is one last problem:

./search/search.png ./tab_b.gif ./tab_l.gif ./tab_r.gif ./tabs.css /Developer/usr/bin/docsetutil index com.mycompany.DoxygenExample.docset 2010-03-31 12:30:53.847 docsetutil[46338:807] Error converting XML to CoreData: Error Domain=NSXMLParserErrorDomain Code=76 UserInfo=0x1247d0 "Line 8: Opening and ending tag mismatch: Subnodes line 0 and Node " Failed to create docset indexer object make: *** [docset] Error 1 load documentation set with path "/Users/WB/Library/Developer/Shared/Documentation/DocSets/" 

I do not know what's the problem? Any idea?

I am using Core Data - sqlite.

+4
source share
4 answers

The parser tells you that the XML is not very well formed, but this error usually indicates that nothing was created before running docsetutil.

First of all, you need to go to many lines of console output and look for warnings, perhaps there are. Also find the generated docset and right-click> Show Content. If you do not see a lot of html files with documentation, the same thing: you were not able to create the documentation, and docsetutil has nothing to do. And by the way, this is the docsetutil that CoreData uses, it doesn't matter whether you use it in your project or not.

I do not understand why Apple does not provide a tool more sensitive to an oxygen tool. Or it's better to format the code than Crustify. Just take the damn tools and improve them a bit. Argh!

+4
source

There is a bug in the version from Nodes.xml from Doxygen. It says https://bugzilla.gnome.org/show_bug.cgi?id=671591 and should be fixed in the next version of doxygen (Post V 1.8.0):

At the end of Nodes.xml there is an additional

the -silence option is a workaround to suppress the error, but this option does not allow the dosage to work correctly.

 $DOXYGEN_PATH $TEMP_DIR/doxygen.config make -C $TEMP_DIR/DoxygenDocs.docset/html install 

Paste the following code

Note. script works in $ TEMP_DIR, not SOURCE_ROOT, because AppleScript

 $DOXYGEN_PATH $TEMP_DIR/doxygen.config # make will invoke docsetutil. Take a look at the Makefile to see how this is done. LINE=`xmllint --c14n $TEMP_DIR/DoxygenDocs.docset/html/Nodes.xml 2>&1 | awk 'NR == 1 {print $1}' | cut -d':' -f 2` ECHO $LINE if [ $LINE -gt 0 ] then echo "XML Cleaning " sed -i.bak $LINE'd' $TEMP_DIR/DoxygenDocs.docset/html/Nodes.xml fi make -C $TEMP_DIR/DoxygenDocs.docset/html install 

NB: awk and sed can be combined on one line.

+1
source

So, the long story that the script creates the Doxyfile "on the fly" and it does not recursively scan all subdirectories.

Take a look at this post:

http://www.duckrowing.com/2010/03/18/documenting-objective-c-with-doxygen-part-ii/

There, the script is included in a second post based on an Apple script, which should not have this problem.

0
source

I am using the enhanced version of the above script, but based on the same priorities. Although everything works fine on another project, my script fails. The docset generation works fine, but the make command raises the following error.

 x ./search/search_r.png 2010-07-26 17:36:01.815 docsetutil[8441:903] Error converting XML to CoreData: Error Domain=NSXMLParserErrorDomain Code=76 UserInfo=0x1006105e0 "Line 8: Opening and ending tag mismatch: Subnodes line 0 and Node" Failed to create docset indexer object make: *** [docset] Error 1 

The make command used is: make --silent -C "$DOCSET_OUTPUT/html" install . I have added line breaks to the error message for readability.

0
source

Source: https://habr.com/ru/post/1305675/


All Articles