【问题标题】:Difference between popular CMake build system and genproj tool for OpenCASCADE流行的 CMake 构建系统和用于 OpenCASCADE 的 genproj 工具之间的区别
【发布时间】:2021-03-23 11:22:27
【问题描述】:

在探索 OpenCASCADE 的平台设置时,我了解了 CMake 构建系统与 OpenCASCADE 一起使用不需要的 WOK 命令 然而 genproj 工具的另一个选项(我还没有找到任何 exe,除了 DLLs ..)在内置编译器中与 MSVC+ 一起使用,这样我们就不需要任何 gcc 安装

两者有什么区别,哪个更好更容易? 还建议我如何在 Windows 上下载和安装和设置 genproj

【问题讨论】:

    标签: visual-c++ build project setup-project opencascade


    【解决方案1】:

    OCCT 项目提供了以下构建系统:

    • CMake。这是自 OCCT 7.0.0 以来的主要构建系统。 它允许为几乎所有受支持的目标平台构建 OCCT。
    • 炒锅。这 OCCT 7.0.0 版本之前使用的内部构建系统。 该工具处理在 CDL(CAS.CADE 定义语言)文件(WOK 从 CDL 生成 C++ 头文件)中定义的类,并支持在分布式环境中构建(例如,本地 WOK 设置只构建修改过的源文件并重用来自本地网络的未修改的二进制/目标文件)。 WOK 支持自 OCCT 7.5.0 起已停止,并且不太可能构建最新的 OCCT 源(尽管项目结构仍与 WOK 兼容)。
    • genproj。这是一个 Tcl 脚本,允许使用 Visual Studio (2010+)、Code::Blocks、XCode 和 Qt Creator 生成用于构建 OCCT 的项目。该脚本最初是从 WOK 包中提取出来的(它在其 shell 中以命令 wgenproj 的形式实现),现在独立于它进行维护。
    • qmake。实验性的adm/qmake解决方案可以直接从QtCreator打开,无需CMake插件(项目文件将由qmake递归生成)。虽然头文件的生成(填写inc文件夹)仍然应该使用genproj来完成(发现qmake的脚本功能对于这个工作人员来说太有限了)。

    genproj 不需要任何 DLL 或 EXE 文件 - 它自带 OCCT 并需要 Tcl 解释器。在 Windows 平台上,可以使用 OCCT 源代码文件夹根目录下的genconf.batgenproj.bat 批处理脚本执行。首次启动时,它会要求输入tclsh.exe 的路径。

    虽然 CMake 是 OCCT 项目的主要构建工具,但 genproj 仍然由(一些)开发人员维护和使用 - 主要是由于个人习惯和对 CMake 的仇恨。 genproj 与 CMake 的区别在某些情况下可被视为优势:

    • 生成的项目文件可以移动到另一个位置/计算机,而无需重新生成它们。
    • 带有基于 Tcl/Tk 的 GUI 的简化的第 3 方依赖项搜索工具 genconf
    • 批处理脚本环境/配置文件(env.batcustom.bat),尽管 OCCT 中的 CMake 脚本模拟了类似的文件。
    • 生成的 Visual Studio 解决方案包含 Debug+Release 和 32 位/64 位配置。
    • 可以直接从 Visual Studio 开始运行 Draw Harness 和回归测试(无需构建任何 INSTALL 目标)。
    • CMakeCache.txt 没有问题。

    genproj 的限制

    • 没有 CMake 配置文件。其他基于 CMake 的项目将无法重用配置文件来简化第 3 方设置。
    • 应显式调用重新生成项目文件。
    • 不支持外源构建(但是,每个配置都放在专用的子文件夹中)。
    • 没有INSTALL 目标。
    • 不生成 PCH(预编译头文件)。

    需要注意的是,为了使 CMake 和 genproj 之间的编译器/链接器标志保持一致,已经进行了多次尝试,但实际上它们可能有所不同。

    【讨论】:

      猜你喜欢
      • 2018-03-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-01
      • 1970-01-01
      • 2013-09-30
      • 2022-10-04
      相关资源
      最近更新 更多