首先把官网提供的教程翻译来一遍
要看官网原文,见
https://dev.opencascade.org/doc/overview/html/build_upgrade__building_occt.html
构建OCCT
在构建OCCT之前,请确保安装了所有必需的第三方库。所需库的列表取决于将使用的OCCT模块以及您的偏好。典型的最小值是FreeType(可视化所必需)和Tcl/Tk(DRAW)。有关完整库列表,请参阅第三方库的要求。
安装第三方库的最简单方法是从开发门户下载带有预构建二进制文件的归档文件,对应于您的目标配置。您也可以从第三方库的来源构建第三方,有关说明,请参阅生成第三方。
在Linux和macOS上,我们建议尽可能使用由分布式开发人员维护的库。
使用CMake工具构建
本章描述了基于CMake的构建过程,现在建议将其作为从源代码生成Open CASCADE Technology二进制文件的标准方法。OCCT需要CMake 3.1版或更高版本。
CMake是一种为所选目标构建系统(例如Unix makefiles)或IDE(例如Visual Studio 2010)生成实际项目文件的工具。在这里,我们将以使用Visual Studio 2010的Windows平台为例来描述构建过程。然而,CMake是跨平台的,可以用基本相同的方式在Linux和macOS上构建OCCT。
CMake处理三个目录:源目录、构建目录或二进制目录和安装目录。
- 源目录是OCCT源代码在你系统中的位置;
- 构建目录或二进制目录是CMake配置和生成过程中创建的所有文件所在的位置。下面将描述上述过程。
- 安装目录是在构建由CMake生成过程创建的INSTALL项目后安装二进制文件的位置,以及OCCT在应用程序中使用所需的头文件和资源。
好的做法是不要使用源目录作为构建目录。不同的配置应该构建在不同的构建目录中以避免冲突。然而,可以为 OCCT 的多种配置(按平台、位数、编译器和构建类型区分)选择一个安装目录,例如:
d:/occt/ - the source directory
d:/tmp/occt-build-vc10-x64 - the build directory with the generated
solution and other intermediate files created during a CMake tool working
d:/occt-install - the installation directory that is
able to contain several OCCT configurations
配置流程
对于没有经验的用户,我们建议从cmake gui开始,这是一种由cmake在Windows、Mac和Linux上提供的跨平台gui工具。也可以使用命令行替代方案ccmake。
如果使用命令行工具,请从构建目录运行该工具,其中单个参数指示源(相对或绝对路径)目录,然后按c进行配置:
cd d:/tmp/occt-build-vc10-x64
ccmake d:/occt
如果使用GUI工具,请在不使用其他参数的情况下运行此工具,然后单击“Browse Source(浏览源)”指定源目录,单击“Browse Build(浏览构建)”指定构建(二进制)目录:
注意:项目的每个配置都应该构建在自己的目录中。当构建多个配置时,建议在构建目录的名称中指示系统、位和编译器(例如,d:/occt/build/win32-vc10)。
选择源目录和构建目录后,应按下“Configure(配置)”按钮以启动手动配置过程。它从选择目标配置程序开始。在我们的示例中,它是“Visual Studio 10 2010 Win64”。
注意:
要为通用Windows平台(UWP)构建OCCT,请指定交叉编译d:/occt/adm/templates/uwp.toolchain.config.cmake的工具链文件的路径。或者,如果从命令行使用CMake,请添加选项
-DCMAKE_SYSTEM_NAME=WindowsStore
-DCMAKE_SEYSTEM_VERSION=10.0。
通用Windows平台(UWP)仅在“Visual Studio 14 2015”上受支持。文件CASROOT/samples/xaml/ReadMe.md描述了xaml(UWP)样本的构建过程。
一旦按下“Finish”按钮,将执行配置过程的第一个过程。在过程结束时,CMake输出环境变量列表,这些变量必须正确指定才能成功配置。
错误消息提供了有关这些变量的一些信息。在正确指定所有必需的变量之前,此消息将在流程的每次传递后显示。
某些变量状态的变化会导致新变量的出现。CMake GUI工具用红色突出显示配置过程通过后出现的新变量。
注意:
有一个“grouped”选项,它用一个公共前缀对变量进行分组。
下表给出了配置阶段使用的环境变量的完整列表:
**注意:**在定义路径的CMake选项中,只有正斜杠(“/”)是可接受的。
第三方搜索机制
如果定义了3RDPARTY_DIR目录,则会在其中查找所需的第三方二进制文件,并忽略默认的系统文件夹。该过程期望在每个第三方产品自己的子目录中找到它们的二进制文件和头文件:bin、lib和include。搜索结果(在下一次配置过程中实现)记录在相应的变量中:
- 3RDPARTY__DIR–第三方目录的路径(带目录名)(例如D:/3RDPARTY/tcltk-86-32);
- 3RDPARTY__LIBRARY_DIR–包含库的目录的路径(例如D:/3RDPARTY/tcltk-86-32/lib);
- 3RDPARTY__INCLUDE_DIR–包含头文件的目录的路径(例如,D:/3RDPARTY/tcltk-86-32/INCLUDE);
- 3RDPARTY__DLL_DIR–包含共享库的目录的路径(例如D:/3RDPARTY/tcltk-86-32/bin)此变量仅与Windows平台相关。
注意:如果定义了最后一个库,则每个库和include目录都应该是产品目录的子目录。
搜索过程如下:
- 公共路径:3RDPARTY_DIR
- 特定第三方库的路径:3RDPARTY__DIR
- 标头和二进制文件的路径:
a.3RDPARTY_INCLUDE_DIR
b.3RDPARTYLIBRARY_DIR
c.3RDPARTY_DLL_DIR
如果未定义任何级别的变量(为空或<variable name>-NOTFOUND),并且定义了更高级别的变量,则将在下一个配置步骤中查找未定义变量的内容。如果第3级的搜索过程没有找到所需的文件,则会在默认位置进行搜索。
如果搜索结果(包括路径、库路径或dll路径)不符合您的期望,您可以更改3RDPARTY__*DIR变量,清除(如果它们不为空)3RDPARTY_dll_DIR、3RDPARTY._include_DIR和3RDPARTY-_library_DIR变量(或清除其中一个),然后再次运行配置过程。
此时,将在新标识的目录中执行搜索,结果将记录到相应的变量中(如有必要,请替换旧值)。例如,3RDPARTY_FREETYPE_DIR变量
d:/3rdparty/freetype-2.4.10
可以更改为
d:/3rdparty/freetype-2.5.3
在配置过程中,相关变量(3RDPARTY_FREETYPE_DLL_DIR、3RDPARTY_FREETTYPE_INCLUDE_DIR和3RDPARTX_FREETYPE_LIBRARY_DIR)将填充新发现的值。
注意:搜索到的库和头文件的名称是硬编码的。如果需要更改它们的名称,请在不重新配置的情况下更改相应的CMake变量(编辑CMakeCache.txt文件或在CMake gui中提前编辑):3RDPARTY_INCLUDE表示INCLUDE,3RDPARTYLIB表示库,3RDPARTY_DLL表示共享库。
项目生成
配置过程完成后,将使用“生成”按钮为目标IDE准备项目文件。在我们的练习中,将在构建目录中自动创建Visual Studio解决方案。
生成
转到生成文件夹,启动Visual Studio解决方案OCCT.sln,然后单击“生成”->“生成解决方案”进行生成。
默认情况下,生成解决方案过程会跳过INSTALL和Overview项目的生成。当构建过程完成构建时:
- 生成OCCT概述文档的概述项目(如果选中BUILD_DOC_Overview变量)
- the INSTALL project to run the installation process
为此,右键单击Overview/INSTALL项目,然后在解决方案资源管理器中选择“仅项目”->“仅构建”->“概述/INSTALL”。(For this, right-click on the Overview/INSTALL project and select Project Only -> Build Only -> Overview/INSTALL in the solution explorer.)
安装
安装是将可重新分发的资源(二进制文件、包含文件等)从构建目录提取到安装目录的过程。安装目录将没有项目文件、中间对象文件和任何其他与构建例程相关的信息。
通常,您使用OCCT的安装目录来链接特定的应用程序。目录结构如下:
data - data files for OCCT (brep, iges, stp)
doc - OCCT overview documentation in HTML format
inc - header files
samples - samples
src - all required source files for OCCT
tests - OCCT test suite
win32\vc10\bind - binary files (installed 3rdparties and occt)
\libd - libraries (installed 3rdparties and occt)
注意:上面的例子是为调试配置而给出的。但是,在发布版本中使用相同的安装目录通常是安全的。在后一种情况下,安装目录的内容将丰富为与发布配置相关的子目录和文件。特别是,二进制文件目录win64将扩展如下:
\win32\vc10\bind
\libd
\bin
\lib
如果为第三方产品(例如INSTALL_FREETYPE)启用了CMake安装标志,则相应的二进制文件将与OCCT的本地二进制文件一起复制到相同的bin(d)和lib(d)目录。如果您的基于OCCT的软件本身不使用Open CASCADE Technology的第三方(因此,将它们打包到专用目录中是没有意义的),那么这种库的组织将特别有用。
安装文件夹包含运行DRAWEXE(draw.bat或draw.sh)、示例(如果已安装)和overview.html(已安装OCCT概述文档的快捷方式)的脚本。
后面为Android生成部分,没有用到,也就不翻译了!