如何从源代码构建 Unity?

hto*_*que 66 unity install-from-source

我想知道如何从当前开发版本中的源代码构建 Unity。请涵盖以下主题:

  • 编译Unity需要哪些包?
  • 我从哪里获得当前的源代码?
  • 实际配置和编译Unity的步骤是什么?
  • 是否可以安全地运行最新版本和存储库中的版本?

小智 64

从源头构建 Unity

在本指南中,您将构建一个单独版本的 Unity 主干(本地安装到您的主目录),因此您无需担心会损坏 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
Run Code Online (Sandbox Code Playgroud)

如果您deb-src启用了源代码存储库(又名),则可以改为使用:

sudo apt-get build-dep unity
Run Code Online (Sandbox Code Playgroud)

1. 准备环境

用您希望源和构建文件去的目录替换SOURCEPREFIX。在这个例子中,我把它们都放在我的主目录中:

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"
Run Code Online (Sandbox Code Playgroud)

2. 构建 Nux

您可能需要获取最新版本的NuxUnity 主干才能编译:

bzr branch lp:nux
cd nux
./autogen.sh --disable-examples --disable-gputests --disable-tests --prefix="$PREFIX"
make -j4
make install
cd ..
Run Code Online (Sandbox Code Playgroud)

提示:大多数现代台式机和笔记本电脑都有多个内核。利用这一点,您可以大大加快编译速度。该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
Run Code Online (Sandbox Code Playgroud)

就是这样,注销并重新登录,您应该运行最新的 Unity。或者,您可以运行

setsid $PREFIX/bin/unity
Run Code Online (Sandbox Code Playgroud)

4. 更新

确保按照步骤 1 中的描述准备环境,然后只需输入顶级目录nuxunity、运行bzr pull、重建和重新安装。

我建议删除并重新创建build目录中的unity目录,以确保没有旧文件干扰您的构建。

5. 移除 Unity

删除三个目录$SOURCE,$PREFIX~/.compiz-1


有用的链接:


小智 9

我已经基于 Wayland 构建脚本和这些指令制作了一个脚本来自动安装先决条件、克隆、更新、配置和构建 Unity。

https://github.com/bitshifter/Unity-Build/raw/master/build-unity.sh


Jor*_*tro 7

在您的主目录中构建

有时出于测试原因,在您的主目录中构建 Unity 和 nux 很有用,这样您就可以尝试查看主干中是否修复了某些内容,而无需处理软件包和/或 PPA。我问 Jason Smith(Unity Dev)他是如何构建 Unity 的,他向我解释了他的方法:

  1. 确保您拥有此答案中的所有构建依赖项

  2. 首先在您的家中创建一个名为“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/"
    
    Run Code Online (Sandbox Code Playgroud)

    unity.sh每次我想构建 Unity 时,我都会调用它并运行它。所以基本上chmod +x unity.sh然后./unity.sh当你想要构建时。

  3. 构建 nux:

    bzr branch lp:nux
    cd nux
    ./autogen.sh --prefix=/home/jorge/staging
    make -j4
    make install
    cd ..
    
    Run Code Online (Sandbox Code Playgroud)
  4. 建立统一:

    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
    
    Run Code Online (Sandbox Code Playgroud)

注意:这会在您的主目录中构建 nux 和 unity,这里不需要 sudo 或类似的东西。

  • 注销并重新登录将自动运行此版本的 Unity/nux,因为它是内置的 ~/.compiz
  • 要恢复到正常包,只需注销、删除~/.compiz并重新登录。


ish*_*ish 6

默认环境 (Unity) 的源代码可以在包中找到unity。安装源代码apt-get source unity,构建它的依赖项sudo apt-get build-dep unity并破解。

这将使您可以将启动器定位在右侧、底部、顶部等位置。