【问题标题】:Doxygen w/ XCode & Subversion Issues带有 XCode 和 Subversion 问题的 Doxygen
【发布时间】:2009-07-02 14:57:08
【问题描述】:

我跟随 Apple 的 this guide 创建 doxygen 文档。我确实需要修改脚本以将变量放在引号中,因此当它解析带有空格的目录时,它不会将其视为两个单独的参数。

也就是说,我最近转而在 XCODE 中使用 subversion,而不是使用 Snapshot 的东西,它有一个臭名昭著的历史,会损坏自己并丢失你的历史。我这样做的过程是为我的项目创建一个类似颠覆的目录结构,将其签入 SVN,然后从主干中签出。

我的问题是,当我创建文档时,无论我如何修改我的 doxygen 配置文件(exclude_parameters 等),它第一次为文档创建文档集都很好。第二次通过时,尝试使用 cp 命令复制到我的库文档目录时遇到问题,该目录安装它以供 XCODE 参考。

我尝试添加到 exclude_parameters .svn *.svn* */.svn* */.svn/* 但似乎没有任何帮助或影响文档。安装后,我在我的 docset 上做了一个 chmod,这解决了这个问题,但它实际上只是掩盖了 .svn 目录仍然存在于文档中的事实。

我想也许创建一个文件夹操作可能会解决问题,但我并没有真正搞砸过苹果脚本。这将是一个 hack,但肯定会完成工作。

但是,要正确地做到这一点,有没有人知道如何优雅地做到这一点(正确的方式)?

谢谢!

【问题讨论】:

    标签: svn xcode doxygen


    【解决方案1】:

    我不知道你的问题到底出在哪里,所以我将尝试描述我如何使用 svn、doxygen 和 Xcode。我写了一个more complete guide而不是这个答案,但不幸的是它是法语。

    关于源文件,我的项目目录结构是扁平的:子文件夹中没有源代码(这是您仅使用 Xcode 管理代码时的默认设置)。我的 Doxyfile 包含此设置:

    RECURSIVE = NO
    

    这样,.svn 目录不会被 doxygen 解析。

    关于文档集,我的 Doxyfile 包含以下设置:

    GENERATE_DOCSET        = YES
    DOCSET_FEEDNAME        = "My wonderful Application"
    DOCSET_BUNDLE_ID       = com.example.mywonderfulapp
    

    我的脚本如下所示:

    # Where are doxygen and dot (assuming in my own Applications folder)
    DOXYGEN_PATH=${HOME}/Applications/Doxygen.app/Contents/Resources
    PATH=${DOXYGEN_PATH}:${PATH}
    export PATH
    
    # Doxygen documentation generation
    doxygen || exit 1
    
    # DOCSET generation
    make -C html install || exit 1
    
    # Open DOCSET in Xcode
    DOCSET_PATH=Library/Developer/Shared/Documentation/DocSets
    open $HOME/$DOCSET_PATH/fr.exemple.doxygentutorial.docset || exit 1
    

    使用这些设置,我没有遇到您描述的问题。

    【讨论】:

    • 完美!我的大部分目录结构已经很平坦,除了一些我相信默认 XCode 项目放入子目录的文件。我只需要移动这几个文件并设置 RECURSIVE = NO 就可以了。我确实尝试更改输入目录以包含 Classes 目录,但有关文档构建的某些内容似乎忽略了这一点。无论如何,扁平结构似乎效果更好。谢谢!
    【解决方案2】:

    您的项目不应该有一个扁平的目录结构。如果要国际化怎么办?

    避免这些 cp 错误的方法是将 DocSet 包添加到 SVN 忽略的文件列表中。如果它被忽略,它就没有版本,如果它没有版本,cp 就没有 .svn 文件可以抱怨。

    我正在使用命令行 SVN 客户端所以 YMMV,但这是我所做的:

    • 首先,svn 更新您的工作副本以确保您与存储库同步。
    • 其次,svn从存储库中删除DocSet目录并提交。
    • 第三,构建项目,生成一个新的DocSet目录(这个是无版本的)。
    • 将其添加到 SVN 忽略并提交
    • 执行 svn status 以确保一切正常。您现在应该可以毫无问题地工作了。

    我花了几个小时来解决这个问题,但现在我可以随意构建我的项目而不会被那些虚假错误误导并且我有我的 DocSet。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-05-22
      • 2020-09-11
      • 2011-09-07
      • 1970-01-01
      • 1970-01-01
      • 2011-05-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多