欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

OGRE学习之创建OGRE指南

程序员文章站 2024-03-25 19:56:40
...

本文翻译自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。