Yayin Story Studio logo Yayin Story Studio 项目文档
回到主页 用户手册

项目附带的Python工具

Visindigo项目附带了一些用于辅助开发和测试的Python工具。这些工具可以帮助开发人员更高效地进行开发工作, 并提供了一些方便的功能来简化常见任务。Visindigo尽量使各Python工具都位于pytools文件夹下,但也有例外。

所有Visindigo Pytools均统一要求使用Python 3.12 及以上版本来运行这些工具。

Visindigo Doc Generator

Visindigo Doc是一个调用QDOC进行文档生成的Python脚本。

  • 1. QDoc.py - QDoc的Python封装脚本,位于doc/scripts/QDoc.py,基本上它只是根据参数去调用Qt自带的qdoc工具。
  • 2. QDocToCN.py - QDoc.py默认会自动调用的一个脚本,它将QDOC模板中的英文内容翻译为中文内容,位于doc/scripts/QDocToCN.py。 这个脚本也可以独立使用,只要在import后,调用该模块的main()函数即可,其中传递文档输出文件夹路径作为参数。

在doc/scripts中,还有一个bat文件,其中的代码可以在安装了Node.js并且有http-server包的情况下, 直接启动一个本地服务器来预览生成的文档。它不被QDoc.py调用。可按需自行启动。

使用Visindigo Doc需要配置config/para.yml:

  • qt.installPath - Qt安装路径,必须配置。定位到具有编译器名称的文件夹即可,如"path/version/msvc2022_64"。
  • qt.docIndexPath - Qt文档索引文件qtdoc.index的路径,必须配置。该文件通常位于Qt安装目录下的Docs文件夹中。
  • qt.translationCN - 是否启用中文翻译功能,默认为true。如果设置为false,则跳过QDocToCN的调用。

AutoVersion From Git

AutoVersion From Git是一个用于自动从Git仓库获取release次数并自动生成头文件宏定义的Python脚本。 该脚本位于src/Visindigo/pytools/AutoVersionFromGit.py,它很简单,但无法直接复制挪用,建议按需修改后使用。

Visindigo Library Derive

Visindigo Library Derive是一个用于将当前仓库内相关内容按特定结构提取出来以便发行的Python脚本。 该脚本位于pytools/VisindigoLibraryDerive.py,它会将非private头文件、库文件、调试符号等内容提取到指定文件夹中, 以便进行发行打包。

它默认只提取Visindigo和YSSCore两个库的内容,如果需要提取其他库,则需要填写配置文件config/deriveConfig.json。

  • output - 提取输出路径,必须配置。
  • projects.[name].proj_path - 需要提取的项目所在路径。注意,配置节点中的[name]就作为输出时的项目名称使用。
  • projects.[name].modules - 需要提取的模块名称列表。这指的是项目路径下一级文件夹的名称。注意项目根文件夹文件是默认需要提取的。
  • projects.[name].bin_main_name - 需要提取的二进制文件的主名称。
  • projects.[name].bin_ext_name - 需要提取的二进制文件的扩展名称,是列表,因此你可以同时提取包括多种扩展名但主名称相同的文件。 这很常见,如同时提取.dll、.lib、.pdb等文件。
  • projects.[name].ignore_header_suffixes - 需要忽略提取的头文件主名称后缀列表。按Qt的命名习惯,private头文件通常以_p结尾,因此本项目已经填入的值为["_p"]。
  • projects.[name].platforms - 需要提取的目标平台列表。如只提取windows x86_64平台,则填写["x64"]即可。这个影响的是输出的文件夹名称。
  • projects.[name].release_build_paths - 需要提取的release版本构建文件夹路径列表。需要和platforms一一对应。
  • projects.[name].debug_build_paths - 需要提取的debug版本构建文件夹路径列表。需要和platforms一一对应。

输出文件夹结构如下所示:

output/
    [project_name]/
        include/
            [module_name]/
                *.h
        bin/
            [platform_name]/
                [Release|Debug]/
                    *.lib
                    *.dll
                    *.pdb

modules的设计是因为匹配Visindigo的文件管理习惯,即

Project/
    Module1/
        cpp/
            *.cpp
        *.h
    Module2/
        cpp/
            *.cpp
        *.h

对于src、include本来就已经分开的项目而言,proj_path应该直接定位到include,然后按需要填写modules。 如果是定位到根目录,然后modules填写为["include"],则会导致导出的头文件都在include/include/目录下, 即发生一个多余的include文件夹嵌套。