web-dev-qa-db-ja.com

ソースからUnityをビルドするにはどうすればよいですか?

現在の開発リリースでソースコードからUnityをビルドする方法を知りたいです。以下のトピックをカバーしてください:

  • Unityをコンパイルするにはどのパッケージが必要ですか?
  • 現在のソースコードはどこで入手できますか?
  • Unityを実際に構成およびコンパイルする手順は何ですか?
  • リポジトリのバージョンと一緒に最新バージョンを安全に実行することは可能ですか?
64
htorque

ソースから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。環境の準備

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"

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で説明したように環境を準備し、トップレベルディレクトリnuxunityの両方を入力し、bzr pullを実行し、再構築して再インストールします。

古いファイルがビルドに干渉していないことを確認するために、buildディレクトリ内のunityディレクトリを削除して再作成することをお勧めします。

5。 Unityの削除

3つのディレクトリ$SOURCE$PREFIX、および~/.compiz-1を削除します。


便利なリンク:

65
Stefano Candori

Waylandビルドスクリプトとこれらの手順に基づいてスクリプトを作成し、前提条件のインストール、Unityの複製、更新、構成、ビルドを自動化しました。

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

9
Cam

ホームディレクトリに構築する

テストの理由から、ホームディレクトリにUnityとnuxをビルドすると、パッケージやPPAをいじることなく、トランクで何かが修正されているかどうかを確認できることがあります。 Jason Smith(Unity Dev)にUnityのビルド方法を尋ね、彼にその方法を説明しました。

  1. この回答から ビルドの依存関係 がすべて揃っていることを確認してください。

  2. まず、ホームに「ステージング」というディレクトリを作成します。これが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でビルドしたいときです。

  3. ビルドnux:

    bzr branch lp:nux
    cd nux
    ./autogen.sh --prefix=/home/jorge/staging
    make -j4
    make install
    cd ..
    
  4. 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などは必要ありません。

  • ログアウトしてから再度ログインすると、このバージョンのUnity/nuxは~/.compizで構築されているため、自動的に実行されます。
  • ログアウトするだけで通常のパッケージに戻すには、~/.compizを削除して再度ログインします。
7
Jorge Castro

デフォルト環境(Unity)のソースコードは、パッケージunityにあります。 apt-get source unityでソースをインストールし、Sudo apt-get build-dep unityでビルドするための依存関係を作成して、ハックします。

これにより、ランチャーを右、下、上などに配置できます。

6
ish

ここには優れた公式ドキュメントがあります- 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/ディレクトリから。それだけです-あなたは団結を築いています!

4
Nitin Venkatesh

最近、インストールが複雑になりました。新しいモジュールがGTK Loadという名前のcompizに追加されました(またはXInternAtomでクラッシュします)。 4.0.1を使用するには、このモジュールをアクティブ化する必要がありますが、アクティブ化するとUnity 3.8がクラッシュします。

両方を維持するのは難しくなっています。私がやった方法は:

  • compiz-1フォルダーに移動し、すべての.soの名前を.so1に変更します(libgtkloader.soを除く)
  • unity 4.0.1でcompizを再起動します
  • compizconfig-settings-managerでgtk Loadモジュールをアクティブにします
  • ライブラリの名前を.soに戻します
  • compizを再起動します。
2
Yann