当前位置: 首页 > 工具软件 > OGRE > 使用案例 >

OGRE学习之创建OGRE指南

章阳波
2023-12-01

本文翻译自OGRE 1.12.0官网

OGRE支持在所有平台上使用CMake作为其构建系统。这篇文章将向您解释怎样使用CMake从源代码构建Ogre。你需要一个>=3,。3版本的CMake。

What is CMake?

CMake是一个跨平台的构建系统,或者更准确的说是构建配置器。它是一个程序,从一组CMake脚本为你的平台创建一个本级构建系统,允许你构建Ogre。构建过程可以通过CMake进行配置。Ogre提供了几个可用于自定义构建的选项。

Preparing the build environment

你现在应该在Ogre源文件之外的某个地方为Ogre创建一个构建目录。这是CMake将为你选择的平台和编译器创建构建系统的目录,也是编译Ogre库的地方。这样,可以使Ogre源目录保持整洁,你也可以在同一个Ogre源中使用多个构建目录。

Getting dependencies(依赖包)

默认情况下,在你第一次运行CMake时,ogre将自动构建基本依赖项。如果你更愿意使用系统范围的库,请设置OGRE_BUIL_DEPENDENCIES=OFF。

默认情况下,Ogre会将依赖项安装到build dir中的子文件夹Dependencies中。您可以通过在CMake中设置OGRE_DEPENDENCIES_DIR来配置它。例如,使它指向所有项目的公共依赖项文件夹。在此目录中,你必须具有子目录bin,lib分别放置依赖项的.dll,.lib和头文件。

在linux上,你还需要以下系统头来构建GL RenderSystems(Ubntu命令):

sudo apt-get install libgles2-mesa-dev libxt-dev libxaw7-dev

此外,我们建议按转发以下可选包:

sudo apt-get install nvidia-cg-toolkit libsdl2-dev doxygen

这些将启用SampleBrower中的输入处理功能并构建文档。

如果你无法获取平台的预构建二进制文件,请阅读下面的条目,并从网站获取源包,然后根据其文档构建它。

Essential dependencies(基本依赖)

freetype:http://www.freetype.org/

Recommended dependencies:

zlib:http://www.zlib.net/

zziplib:https://github.com/paroj/ZZIPlib

SDL:https://www.libsdl.org/

Optional dependencies:

(+)可以用于线程而不是std::thread

Running CMake现在,通过在控制台键入名称或者从开始菜单中选择名称来启动CMake-gui。在源代码位置字段中输入Ogre源目录的路径(包含此文件的目录)。在“构建二进制文件的位置”字段中,输入你创建的构建目录的路径。选中Configure(配置)将会出现一个对话框,要求你选择一个生成器。

查看CMake  documentation详细信息,了解哪个适用于您的平台和编译器。

Note:

在OSX上,你必须使用Xcode生成器来获取正确的SampleBrower.app包。

单击Finish.CMake现在将收集与你的构建环境的一些信息,并城市找到依赖项。然后它将显示构建选项列表。你可以根据自己的喜好调整设置,例如:取消选中任何OGRE_BUILD_XXX选项将禁用该特定组件的构建。符合你的条件后,再次单击“Configure”。然后CMake将为你创建构建系统。

Buiding

转至你选择的构建目录。CMake为你生成了一个构建系统,你现在将用它来构建Ogre。如果你使用的是Visual Studio,则应该找到OGRE.sln文件。打开并编译目标BUILD_ALL。同样,你会发现一个用来在MacOS上构建Ogre的Xcode。

如果你希望触发构建控制台,则转到你的构建目录并调用相应的如下的make程序来开始构建过程。

cmake --build . --config release

如果你安装了doxygon并且CMake选择了它,那么会有一个名为OgreDoc的额外构建目标,你可以选择构建它。这将从头文件中新生成Ogre类的API文档。在Visual Studio中,只需在Linux类型上选择并构建目标OgreDoc:

make OgreDoc

Installing

构建完成后,你可以选择让构建系统将构建的库和标头复制到干净的位置。建议你执行此步骤,因为这样可以更轻松的在项目中使用Ogre。在Visual Studio中,只需选择并构建目标INSTALL。在MSVC中使用命令行时,输入:

cmake --build . --config release --target INSTALL

对于基于Makefile的生成器,请输入;

make install  # (or sudo make install, if root privileges are required)

在Linux上,默认情况下,Ogre将安装到/usr/local。在Wwindow上,这将在你的构建目录中创建文件夹sdk,并在那里复制所有必需的库。你可以通过更改CMake中的变量CMAKE_INSTALL_PREFIX来更改安装位置。

Building on Mac OX for IOS OS

要为iOS构建Ogre,您需要将ios交叉工具链指定为cmake as

cmake -DCMAKE_TOOLCHAIN_FILE=CMake/toolchain/ios.toolchain.xcode.cmake -G Xcode .

不幸的是,您现在必须执行一些手动步骤才能使生成的构建系统正常工作。

现在已经在构建目录中生成了一个Xcode项目,因此要启动Ogre构建,请打开OGRE.xcodeproj并像往常一样构建。要在设备上运行样本,您需要安装有效的iOS Developer证书。对于每个示例,双击“组和文件”列表中的目标。确保在“代码签名标识”下拉菜单中选择了有效标识。另外,因为我们无法告诉CMake你想要的Xcode项目格式,你必须自己更改。打开“项目”菜单,选择“编辑项目设置”。单击设置窗口中的常规选项卡。将项目格式更改为Xcode 3.1-compatible。另外,你需要手动设置Info.plist文件的Bundle Identifier属性,以匹配所选代码签名标识的App ID。这可以从“目标属性”面板完成。如果要为设备构建,它必须与有效开发人员证书的捆绑标识符匹配。

Building as Window Store or Window Phone application

你需要Windows 8.0或更高版本,建议使用Windows 10。

您需要Visual Studio 2012或更高版本,建议使用Visual Studio 2015,因为它与Universal 10.0.240.0,WinStore 8.0 / 8.1和WinPhone 8.0 / 8.1 SDK捆绑在一起。

下载并安装CMake 3.4或更高版本。

必须使用修补的依赖项,使用适当的WINAPI_FAMILY进行编译。 不支持Cg。 您可以使用https://bitbucket.org/eugene_gff/ogre-dependencies-winrt  - 具有针对Win32的VS2012和VS2013项目,WinRT(可以重用于WinPhone)编译计划在运行CMake之前使用的所有配置的依赖项。 Win32和WinRT的依赖项必须位于不同的文件夹中,Win32版本可以从OgreDependencies.VS201x.sln构建,WinRT可以从OgreDependencies.VS201x.WinRT.sln构建。

运行CMake,指定源和二进制文件夹,而不是“Configure”,选择“Visual Studio 14 2015”生成器和“指定交叉编译选项”选项,指定操作系统=“WindowsStore”或“WindowsPhone”,版本=“8.0” ,“8.1”或UAP操作系统=“WindowsStore”,Version =“10.0.10240.0”,“10.0.10586.0”然后“Finish”,为OGRE_DEPENDENCIES_DIR指定WinRT依赖项文件夹,“Configure”,应该没有更多错误,那么 按“Generate”。

选择SampleBrowser作为启动项目并运行。

Notes:

1.代码和生成的CMake解决方案应该在本地NTFS驱动器上,并且不能在网络驱动器上,包括VMWare共享文件夹 - 或者当您尝试编译/链接/运行生成的exe时,你将遇到错误。

2.Ogre使用d3dcompiler_xx.dll来编译着色器,而WinStore和WinPhone 8.1项目可以不受限制地使用它,因为它是操作系统的一部分。但WinStore和WinPhone 8.0应用程序应该从缓存加载已编译的着色器,因为d3dcompiler_xx.dll仅在开发期间可用。因此,为了避免在开发期间部署d3dcompiler_xx.dll(使用d3dcompiler_xx.dll进行其他配置)以及生成此类缓存,请使用这些平台的8.1版本。

3.在运行在VMware下的操作系统中运行WinPhone模拟器:我们能够通过两个步骤运行模拟和调试而不会出现问题:(a)在VM> CPU的设置下,确保您可以选择通过IntelVT-x / EPT功能,(b)编辑配置文件.vmx并添加参数:hypervisor.cpuid.v0 =“FALSE”在VMware中运行和窗口最大化时,所有版本的Visual Studio 2012都有窗口刷新问题,解决方案只是将Visual Studio窗口的大小更改为更小的屏幕宽度和高度。

Building for WebAssembly(using Emscripten)

安装Emscripten SDK(请参阅www.emscripten.org上的完整文档),并确保正确设置环境变量(例如,在尝试构建之前运行源<emsdk_path> /emsdk_env.sh)

使用emscripten以交叉编译模式运行cmake,如下所示:

mkdir build-wasm
emcmake cmake .. -DCMAKE_BUILD_TYPE=Release
emmake make

注意:为了简化过程,使用'emcmake'和'emmake'包装器。这些工具由Emscripten提供,用于正确设置交叉编译环境。

这不会构建完整的SampleBrowser,而只是一个最小的Sample。生成的EmscriptenSample.html将放在$ {CMAKE_BINARY_DIR} / bin /中。

要防止任何跨源问题,请以python3 -m http.server 8000启动本地Web服务器并访问localhost:8000。

 类似资料: