現在の開発リリースでソースコードからUnityをビルドする方法を知りたいです。以下のトピックをカバーしてください:
このガイドでは、Unityトランクの別個のバージョン(ホームディレクトリにローカルにインストールされる)を構築します。そのため、Ubuntuリポジトリからバージョンが破損することを心配する必要はありません。また、ルートパーミッションを取得する必要もありません。プロセス全体(ビルド依存関係のインストールを除く)。
0ビルド依存関係のインストール
必要なすべてのビルド依存関係をインストールするには、これを1回実行する必要があります。
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の構築
Unityトランクをコンパイルするには、おそらくNux
の最新バージョンを入手する必要があります。
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の構築
次に、最新の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で説明したように環境を準備し、トップレベルディレクトリnux
とunity
の両方を入力し、bzr pull
を実行し、再構築して再インストールします。
古いファイルがビルドに干渉していないことを確認するために、build
ディレクトリ内のunity
ディレクトリを削除して再作成することをお勧めします。
5。 Unityの削除
3つのディレクトリ$SOURCE
、$PREFIX
、および~/.compiz-1
を削除します。
便利なリンク:
Waylandビルドスクリプトとこれらの手順に基づいてスクリプトを作成し、前提条件のインストール、Unityの複製、更新、構成、ビルドを自動化しました。
https://github.com/bitshifter/Unity-Build/raw/master/build-unity.sh
テストの理由から、ホームディレクトリにUnityとnuxをビルドすると、パッケージやPPAをいじることなく、トランクで何かが修正されているかどうかを確認できることがあります。 Jason Smith(Unity Dev)にUnityのビルド方法を尋ね、彼にその方法を説明しました。
この回答から ビルドの依存関係 がすべて揃っていることを確認してください。
まず、ホームに「ステージング」というディレクトリを作成します。これが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 ..
Unityのビルド:
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と単一性が構築されます。ここにSudoなどは必要ありません。
~/.compiz
で構築されているため、自動的に実行されます。~/.compiz
を削除して再度ログインします。デフォルト環境(Unity)のソースコードは、パッケージunity
にあります。 apt-get source unity
でソースをインストールし、Sudo apt-get build-dep unity
でビルドするための依存関係を作成して、ハックします。
これにより、ランチャーを右、下、上などに配置できます。
ここには優れた公式ドキュメントがあります- Developing Unity 。
Unityのビルドに関する抜粋を以下に示します-ソースからインストールしてコンパイルする
Unityの構築
これらの手順は、ソースから統一を構築するのに役立ちます。ただし、考慮すべきことがいくつかあります。
- ホームディレクトリの外部でローカルに構築したものは絶対にコピーしないことをお勧めします。特にデスクトップシェル全体を構築しているため、そうすることは問題を引き起こしています。システム全体のデスクトップシェルを台無しにしたら、非常に悲しいプログラマーになります!
- 正確なUbuntuリリースを実行していることを前提としています。
- また、トランク(つまり、lp:unity)から単一性を構築することも想定されています。
ソースコードの取得:
Bazaarをまだインストールしていない場合は、今すぐインストールします。
Sudo apt-get install bzr
自分自身を統一コードのフォルダーにしたいと思うでしょう。このようなことをしてください:
mkdir -p ~/code/unity cd ~/code/unity
ランチパッドからコードを取得しましょう:
bzr branch lp:unity trunk
これは時間がかかる場合があります。
ビルド依存関係のインストール:統一のためにビルド依存性を取得する必要があります。ありがたいことに、apt-getはこれを簡単にします。
Sudo apt-get build-dep unity
Unityのコンパイル:
この一連のbash関数を使用して、この手順を大幅に簡単にします。これらを使用するには、次のbashコードを
.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 }
これをターミナルで実行します:
echo ". ~/.bash_functions" >> ~/.bashrc
これにより、次にbashシェルを開いたときに、上記の機能が使用可能になります。端末を閉じて再度開く必要を回避するために、これを一度だけ手動で読み取ることができます。
. ~/.bash_functions
これで実行できるはずです:
remake-unity
前に作成した
trunk/
ディレクトリから。それだけです-あなたは団結を築いています!
最近、インストールが複雑になりました。新しいモジュールがGTK Loadという名前のcompizに追加されました(またはXInternAtomでクラッシュします)。 4.0.1を使用するには、このモジュールをアクティブ化する必要がありますが、アクティブ化するとUnity 3.8がクラッシュします。
両方を維持するのは難しくなっています。私がやった方法は: