Visual Studio 项目

构建系统会自动生成 Visual Studio 项目文件以辅助开发,作为命令行中正常 mach build 的一部分。

您可以在 $OBJDIR/msvc/mozilla.sln 找到解决方案文件。

如果您想在进行完整构建之前/无需进行完整构建生成项目文件,则运行 ./mach configure && ./mach build-backend -b VisualStudio 将执行此操作。

解决方案结构

Visual Studio 解决方案包含数百个项目,跨越数千个文件。为了帮助组织,解决方案被划分为以下树/文件夹

构建目标

此文件夹包含常见的构建目标。full 项目用于执行完整构建。binaries 项目用于仅构建二进制文件。visual-studio 项目可以构建以重新生成 Visual Studio 项目文件。

对任何这些目标执行clean操作将清除整个构建输出。

二进制文件

此文件夹包含可以在 Visual Studio 中执行的常用二进制文件。如果您正在构建 Firefox 桌面应用程序,则firefox项目将启动 firefox.exe。您可能希望将其中一个设置为您的启动项目。

此文件夹包含作为构建的一部分生成的每个静态库的条目。这些大致对应于树中包含 C/C++ 的每个目录。例如,来自 dom/base 的代码将包含在 dom_base 项目中。

这些项目在构建时不会执行任何操作。如果您在此处构建项目,则会构建binaries构建目标项目。

更新项目文件

重新运行 ./mach build./mach build-backend -b VisualStudio 将在树更改后更新 Visual Studio 文件。

移动项目文件

生成的 Visual Studio 解决方案和项目文件应该是可移植的。如果您想将它们移动到非默认目录,它们应该继续从任何位置工作。如果它们没有工作,请提交错误报告。

通过 Visual Studio 调用 mach

可以通过 Visual Studio 运行 mach 命令。这里有一些轻量级的魔法。

除了 Visual Studio 项目文件外,还有一个名为 mach.bat 的批处理脚本。此批处理脚本设置在 Visual Studio 项目生成时您MozillaBuild开发环境中存在的环境变量,并在带有指定给批处理脚本的参数的 msys shell 中调用mach。此脚本基本上允许您在 MozillaBuild 环境中调用 mach 命令,而无需加载 MozillaBuild。

项目目前分别使用 mach buildmach clobber 命令进行构建和清理树。请注意,运行 clobber 会删除 Visual Studio 项目文件,而运行 build 会重新创建它们。这可能会在 Visual Studio 运行时导致问题。因此,目前不建议也不支持完全重建,但增量构建应该可以正常工作。

批处理脚本不限制其用途:可以调用任何 mach 命令。开发人员可以使用此事实添加自定义项目和调用其他 mach 命令的命令。