使用 FreeCad Libpack 使用 rapidjson 编译 OCCT7.5?

Compile OCCT7.5 with rapidjson using FreeCad Libpack?

我希望在 Windows10(x64 通过 VS2019)中编译 OCCT 7.5 以与 FreeCAD 一起使用,以启用导出 glTF 文件,这需要 RapidJSON 支持(在 OCCT 中)。我从他们的 git 回购中检查了 OCCT 7.5.3 和 RapidJSON 1.1.0,然后抓住了 FreeCAD libpack 12.5.2 (for OCCT 7.5). I started from FreeCAD's build docs, then attempted to follow OCCT's build docs.

在 CMake-GUI 中配置 OCCT 项目时,我已经能够在 FreeCAD libpack 以及 RapidJSON 中找到我认为是某些变量(例如关于 FREETYPE 的变量)的正确值,但仍然得到配置中的一些错误,似乎无论我尝试什么值:

Could not find headers of used third-party products:
3RDPARTY_TCL_INCLUDE_DIR 3RDPARTY_TK_INCLUDE_DIR
...
Could not find DLLs of used third-party products: 3RDPARTY_TCL_DLL_DIR
3RDPARTY_TK_DLL_DIR

我尝试使用在 FreeCAD Libpack(及其相应目录)中找到的 *.lib、*.h 和 *.dll 文件作为 *_LIBRARY/INCLUDE/DLL 变量,但没有找到任何内容。我明白了

Info: TCL is used by OCCT
Could NOT find Tclsh (missing: TCL_TCLSH)

即使 tclsh86t.exe 存在于 libpack/bin 目录中。

要使用 FreeCAD libpack,3RDPARTY_TCL_* & 3RDPARTY_TK_* CMake 变量应该设置什么?

问题是我对 CMake 和 Cmake-gui 不熟悉:当指定 PATH 变量时,gui 打开一个 FILEPATH 对话框。我天真地想,“我不知道 CMake,所以我会相信 gui”。大错特错。

我手动编辑了 3RDPARTY_* 变量条目以指向 FreeCAD libpack 中的正确目录(或库,当需要时),使用每个变量名称和 description/hint 来确定变量的值应该是什么是。以下是我的作品,供参考: 我确实需要检查“高级”,以编辑 FREETYPE_LIBRARY_DEBUG 和 FREETYPE_LIBRARY_RELEASE 变量(CMake 将它们设置为在 jdk 目录中找到的独立库,大概是因为它已添加到系统路径在某个时候)。