通过 CLion 使用 CMake 同时为多个目标构建 x86 和 x64

Building Both x86 And x64 For Multiple Targets At Once With CMake Through CLion

我正在 Windows 上构建跨平台库,目标是 Windows、Linux、Mac、Android 和 iOS。

我最近因为几个不相关的原因转向了 CLion。使用 VS,我将通过两个单独的配置简单地为 Windows x86/x64 构建。

我正在尝试优化我的工作流程。我的目标是能够点击构建一次,并让 CLion 为所有目标平台输出 32 位和 64 位构建。

如果可能的话,我如何配置 CLion 通过不同的工具链构建同一个项目,具有多种架构(即通过 MSVC 的 x86 和 x64,通过 WSL 的 x86 和 x64,为 ARM 重新定位等)?

我正在 post 整理它以供将来参考,因为它可以节省任何人的时间。很简单,我只是不习惯 CLion 的处理方式,而且很难搜索到具体细节。

简而言之;

  • 设置>构建、执行、部署>CMake;为您的目标及其架构变体创建 CMake 配置文件(Win_x86_DEBUG/RELEASE、Win_x64_DEBUG/RELEASE 等)
  • 如果使用 MSVC,请转到“设置”>“构建、执行、部署”>“工具链”并创建两个 Visual Studio 工具链。分配一个 x86 架构,另一个分配 x64(您也可以在此处指定 ARM 变体,尽管您可能不必阅读 post 的其余部分)。
  • 返回 CMake 配置文件并为每个配置文件分配适当的工具链。

我最初尝试直接通过 CMake 指定编译器选项(即 -G 生成器标志,以及平台特定信息,例如为 GCC 设置 -m32/64)。这适用于除 32 位 Windows 目标以外的所有目标。 CLion 在内部使用 NMAKE Windows,它不接受选项公开的相同架构定义,这意味着(据我所知)CLion 使用的特定管道只能将架构标志发送到 CMake一代,但它会抛出,并且不会让您为 Win_x86 指定架构。我通过如上所述创建多个工具链来解决这个问题。同样,原始方法在 Win_x64- 上很好,我只是让 CMake 配置文件直接通过生成器 (-G "Visual Studio 15 2017 Win64")。

从那里您可以构建所有配置文件,从而允许您一次为多个平台和体系结构编译同一个项目。