问题描述
我想知道如何从当前开发版本的源代码构建Unity。请涵盖以下主题:
-
编译Unity需要哪些软件包?
-
我在哪里可以获得当前的源代码?
-
实际配置和编译Unity的步骤是什么?
-
是否可以安全地运行最新版本以及存储库中的版本?
最佳解决思路
从源头构建Unity
在本指南中,您将构建一个独立版本的Unity trunk(本地安装在您的主目录中),因此您无需担心从Ubuntu存储库中损坏版本,也无需在整个过程中获取root权限。整个过程(除了安装构建依赖项)。
0.安装构建依赖项
您需要运行一次以安装所有必需的构建依赖项:
sudo apt-get install bzr cmake compiz-dev gnome-common libbamf3-dev libboost-dev \
libboost-serialization-dev libgconf2-dev libgdu-dev libglewmx1.6-dev \
libgnome-desktop-3-dev libibus-1.0-dev libindicator3-dev libjson-glib-dev \
libnotify-dev libnux-2.0-dev libpci-dev libsigc++-2.0-dev libunity-dev \
libunity-misc-dev libutouch-geis-dev libxxf86vm-dev libzeitgeist-dev xsltproc
如果您启用了源代码存储库(又名deb-src
),则可以使用:
sudo apt-get build-dep unity
1.准备环境
将SOURCE
和PREFIX
替换为您希望源和构建文件的目录。在这个例子中,我把它们放在我的主目录中:
export SOURCE=$HOME/source/unity
export PREFIX=$HOME/build/unity
export PKG_CONFIG_PATH="$PREFIX/lib/pkgconfig:$PKG_CONFIG_PATH"
export LD_LIBRARY_PATH="$PREFIX/lib:$LD_LIBRARY_PATH"
export LD_RUN_PATH="$PREFIX/lib:$LD_RUN_PATH"
export XDG_DATA_DIRS="$PREFIX/share:$XDG_DATA_DIRS"
mkdir -p "$PREFIX"
mkdir -p "$SOURCE"
cd "$SOURCE"
2.建立Nux
您可能需要获取最新版本的Nux
才能编译Unity中继:
bzr branch lp:nux
cd nux
./autogen.sh --disable-examples --disable-gputests --disable-tests --prefix="$PREFIX"
make -j4
make install
cd ..
提示:大多数现代台式机和笔记本电脑都有几个核心。通过利用这一点,您可以大大加快编译速度。 make
命令具有内置支持,您可以使用-jN开关激活,其中N是并行运行的作业数。一个好的经验法则是运行处理器核心数量的2倍。因此,在普通的双核计算机上,您应该运行make -j4
以最小化编译时间。
3.建立团结
现在抓住最新的Unity代码并构建它:
bzr branch lp:unity
cd unity
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Debug -DCOMPIZ_PLUGIN_INSTALL_TYPE=local -DGSETTINGS_LOCALINSTALL=ON -DCMAKE_INSTALL_PREFIX="$PREFIX"
make -j4
make install
就是这样,退出并重新登录,你应该运行最新的Unity。或者,您可以运行
setsid $PREFIX/bin/unity
4.更新
确保准备环境,如步骤1中所述,然后只需输入top-level目录nux
和unity
,运行bzr pull
,重建并重新安装。
我建议删除并重新创建unity
目录中的build
目录,以确保没有旧文件弄乱您的构建。
5.删除Unity
删除三个目录$SOURCE
,$PREFIX
和~/.compiz-1
。
有用的链接:
次佳解决思路
我已经根据Wayland构建脚本和这些说明创建了一个脚本,以自动安装必备软件,克隆,更新,配置和构建Unity。
https://github.com/bitshifter/Unity-Build/raw/master/build-unity.sh
第三种解决思路
在您的主目录中构建
有时出于测试原因,在您的主目录中构建Unity和nux非常有用,这样您就可以尝试查看是否在trunk中修复了某些内容而不会破坏软件包和/或PPA。我问杰森史密斯(Unity Dev)他是如何构建Unity的,他向我解释了他的方法:
-
确保您拥有此答案中的所有build dependencies。
-
首先在你家中创建一个名为”staging”的目录,这是我们构建Unity的地方。创建一个准备构建环境的小脚本,用您自己的主目录替换主目录:
#!/bin/bash PREFIX=/home/jorge/staging export XDG_DATA_DIRS="$PREFIX/share:$XDG_DATA_DIRS" export LD_LIBRARY_PATH="$PREFIX/lib/" export PKG_CONFIG_PATH="$PREFIX/lib/pkgconfig/"
我称之为
unity.sh
,每次我想构建Unity时都会运行它。所以基本上chmod +x unity.sh
然后./unity.sh
当你想要建立。 -
构建nux:
bzr branch lp:nux cd nux ./autogen.sh --prefix=/home/jorge/staging make -j4 make install cd ..
-
建立团结:
bzr branch lp:unity cd unity mkdir build cd build cmake .. -DCMAKE_INSTALL_PREFIX=/home/jorge/staging/ -DCMAKE_BUILD_TYPE=Debug -DCOMPIZ_PLUGIN_INSTALL_TYPE=local -DGSETTINGS_LOCALINSTALL=ON make -j4 make install
注意:这会在您的主目录中构建nux和unity,这里不需要sudo或类似的东西。
-
注销并重新登录将自动运行此版本的Unity /nux,因为它是在
~/.compiz
中构建的 -
要恢复正常软件包,只需注销,删除
~/.compiz
并重新登录。
第四种思路
可以在包unity
中找到默认环境(Unity)的源代码。使用apt-get source unity
安装源代码,使用sudo apt-get build-dep unity
构建它并将其删除。
这将让您将发射器放在右侧,底部,顶部等位置。
第五种思路
这里有很好的官方文档 – Developing Unity。
以下是构建Unity的摘录 – 从源代码安装和编译
Building Unity
These instructions will help you build unity from source. However, there are a few things to consider:
- It is recommend that you never copy anything you’ve built locally outside your home directory. Doing so is asking for trouble, especially as we’re building the entire desktop shell. If you manage to ruin your system-wide desktop shell you’ll be a very sad programmer!
- It is assumed that you’re running the precise Ubuntu release.
- It is also assumed that you want to build unity from trunk (that is, lp:unity).
Getting the source code:
If you don’t already have Bazaar installed, install it now:
sudo apt-get install bzr
You will want to make yourself a folder for the unity code. Do something like this:
mkdir -p ~/code/unity cd ~/code/unity
Let’s grab the code from launchpad:
bzr branch lp:unity trunk
This may take a while.
Installing Build Dependancies:We need to get the build-dependancies for unity. Thankfully, apt-get makes this trivial:
sudo apt-get build-dep unity
Compiling Unity:
Use this set of bash functions to make this step significantly easier. To use them, copy the following bash code into a file in your home directory called
.bash_functions
:function recreate-build-dir() { rm -r build mkdir build cd build } function remake-autogen-project() { ./autogen.sh --prefix=$HOME/staging --enable-debug make clean && make && make install } function remake-unity() { recreate-build-dir cmake .. -DCMAKE_BUILD_TYPE=Debug -DCOMPIZ_PLUGIN_INSTALL_TYPE=local -DCMAKE_INSTALL_PREFIX=$HOME/staging/ -DGSETTINGS_LOCALINSTALL=ON make && make install } function unity-env { export PATH=~/staging/bin:$PATH export XDG_DATA_DIRS=~/.config/compiz-1/gsettings/schemas:~/staging/share:/usr/share:/usr/local/share export LD_LIBRARY_PATH=~/staging/lib:${LD_LIBRARY_PATH} export LD_RUN_PATH=~/staging/lib:${LD_RUN_PATH} export PKG_CONFIG_PATH=~/staging/lib/pkgconfig:${PKG_CONFIG_PATH} export PYTHONPATH=~/staging/lib/python2.7/site-packages:$PYTHONPATH }
Now run this in a terminal:
echo ". ~/.bash_functions" >> ~/.bashrc
This ensures that the next time you open a bash shell the functions listed above will be available to you. To avoid having to close and re-open a terminal, we can read them manually just this once:
. ~/.bash_functions
You should now be able to run:
remake-unity
from the
trunk/
directory we created earlier. That’s it – you’re building unity!
第六种思路
最近安装变得棘手:一个名为GTK Load的compiz中添加了一个新模块(或者它将在XInternAtom中崩溃)。我们需要激活这个模块才能使用4.0.1,但激活它会崩溃统一3.8。
保持两者都变得越来越困难。我这样做的方式是:
-
进入compiz-1文件夹并使用.so1重命名所有.so,libgtkloader.so除外
-
用unity 4.0.1重新启动compiz
-
在compizconfig-settings-manager中激活gtk Load模块
-
将库重命名为.so
-
重启compiz。