Como eu construo o Unity a partir do código-fonte?

64

Gostaria de saber como eu criaria o Unity a partir do código-fonte na versão atual de desenvolvimento. Por favor, cubra os seguintes tópicos:

  • Quais pacotes são necessários para compilar o Unity?
  • Onde eu obteria o código-fonte atual?
  • Quais são as etapas para realmente configurar e compilar o Unity?
  • É possível executar com segurança a versão mais recente junto com a versão dos repositórios?
por htorque 28.02.2011 / 20:50

6 respostas

65

Construindo Unidade da Origem

Neste guia, você criará uma versão separada do tronco do Unity (instalada localmente em seu diretório pessoal), para que você não precise se preocupar em corromper a versão dos repositórios do Ubuntu e também não precisará obter o root permissões durante todo o processo (exceto para instalar as dependências de compilação).

0. Instalando dependências de construção

Você precisará executar isso uma vez para instalar todas as dependências de criação necessárias:

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

Se você tiver repositórios de código-fonte (também conhecidos como deb-src ) ativados, poderá usar:

sudo apt-get build-dep unity

1. Preparando o ambiente

Substitua SOURCE e PREFIX pelos diretórios que você deseja que a origem e os arquivos de compilação sejam enviados. Neste exemplo eu coloquei ambos no meu diretório home:

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. Construindo o Nux

Você provavelmente precisará pegar a versão mais recente do Nux para obter o tronco do Unity para compilar:

bzr branch lp:nux
cd nux
./autogen.sh --disable-examples --disable-gputests --disable-tests --prefix="$PREFIX"
make -j4
make install
cd ..

Dica : a maioria dos desktops e laptops modernos tem vários núcleos. Você pode acelerar bastante a compilação aproveitando isso. O comando make tem suporte embutido para isso, que você pode ativar usando a opção -jN , onde N é o número de jobs a serem executados em paralelo. Uma boa regra é executar 2 vezes o número de núcleos em seu processador. Assim, em um computador dual core normal, você deve executar make -j4 para minimizar o tempo de compilação.

3. Unidade de construção

Agora, pegue o código Unity mais recente e crie-o:

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

É isso aí, saia e volte a entrar e você deve estar executando o último Unity. Como alternativa , você pode executar

setsid $PREFIX/bin/unity

4. Atualizando

Certifique-se de preparar o ambiente como descrito na etapa 1 e, em seguida, insira os dois diretórios de nível superior nux e unity , execute bzr pull , reconstrua e reinstale.

Sugiro remover e recriar o diretório build no diretório unity , para garantir que nenhum arquivo antigo esteja mexendo na sua compilação.

5. Removendo Unity

Remova os três diretórios $SOURCE , $PREFIX e ~/.compiz-1 .

Link Útil:

  • link
por htorque 12.01.2013 / 11:09
9

Eu criei um script baseado no script de construção Wayland e essas instruções para automatizar a instalação de pré-requisitos, clonagem, atualização, configuração e construção do Unity.

link

    
por Cam 27.03.2011 / 08:11
7

Criando no seu diretório pessoal

Às vezes, por motivos de teste, é útil criar o Unity e o nux no seu diretório inicial para que você possa tentar ver se algo está corrigido no tronco sem mexer em pacotes e / ou PPAs. Eu perguntei a Jason Smith (Unity Dev) como ele construiu a Unity e ele me explicou o método:

  1. Verifique se você tem todas as dependências de criação desta resposta.

  2. Primeiro, crie um diretório em sua casa chamado "staging", e é aqui que vamos construir o Unity. Crie um pequeno script que prepare o ambiente de compilação, substitua o diretório inicial por seu próprio:

    #!/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/"
    

    Eu chamo isso de unity.sh e executo toda vez que quero construir o Unity. Então, basicamente, chmod +x unity.sh e, em seguida, ./unity.sh quando você deseja criar.

  3. Construir nux:

    bzr branch lp:nux
    cd nux
    ./autogen.sh --prefix=/home/jorge/staging
    make -j4
    make install
    cd ..
    
  4. Criar unidade:

    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
    

NOTA: Isso cria nux e unidade em seu diretório inicial, não há necessidade de sudo aqui ou algo assim.

  • Fazer o logout e voltar a executar essa versão do Unity / nux automaticamente, já que ela foi criada em ~/.compiz
  • Para reverter para os pacotes normais, efetue logout, exclua ~/.compiz e faça login novamente.
por Jorge Castro 20.08.2011 / 03:28
6

O código-fonte para o ambiente padrão (Unity) pode ser encontrado no pacote unity . Instale a fonte com apt-get source unity , as dependências para construir com sudo apt-get build-dep unity e hackar.

Isso permitirá que você posicione o lançador na parte direita, inferior, superior etc.

    
por ish 29.06.2012 / 03:53
4

Existe uma excelente documentação oficial aqui - Developing Unity .

Aqui está um trecho dele sobre a construção do Unity - instalando a partir do código-fonte e compilando

  

Unidade de construção

     

Estas instruções ajudarão você a criar união a partir da fonte. Contudo,   Há algumas coisas a serem consideradas:

     
  • É recomendável que você nunca copie nada que tenha criado localmente fora do seu diretório pessoal. Fazer isso é pedir problemas   especialmente porque estamos construindo o shell inteiro da área de trabalho. Se você gerenciar   para arruinar o seu shell de desktop em todo o sistema você vai ser muito triste   programador!
  •   
  • Assume-se que você está executando o lançamento preciso do Ubuntu.
  •   
  • Também é assumido que você deseja construir a unidade a partir do tronco (isto é, lp: unity).
  •   

Obtendo o código-fonte:

     

Se você ainda não tem o Bazaar instalado, instale-o agora:

sudo apt-get install bzr
     

Você desejará criar uma pasta para o código de unidade. Faz   algo assim:

mkdir -p ~/code/unity
cd ~/code/unity
     

Vamos pegar o código da barra de lançamento:

bzr branch lp:unity trunk
     

Isso pode demorar um pouco. Instalando Dependências de Construção:

     

Precisamos obter as dependências de construção para a união. Felizmente, o apt-get   torna isso trivial:

sudo apt-get build-dep unity
     

Compilando a unidade:

     

Use este conjunto de funções bash para tornar esta etapa significativamente mais fácil.   Para usá-los, copie o seguinte código bash em um arquivo em sua casa   diretório chamado .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
}
     

Agora execute isso em um terminal:

echo ". ~/.bash_functions" >> ~/.bashrc
     

Isso garante que na próxima vez que você abrir um shell bash as funções   listados acima estarão disponíveis para você. Para evitar ter que fechar e   reabrir um terminal, podemos lê-los manualmente só desta vez:

. ~/.bash_functions
     

Agora você deve conseguir executar:

remake-unity
     

do diretório trunk/ que criamos anteriormente. É isso aí - você é   construindo unidade!

    
por Nitin Venkatesh 07.01.2013 / 16:00
2

A instalação ficou mais complicada recentemente: um novo módulo foi adicionado ao compiz chamado GTK Load (ou ele irá travar no XInternAtom). Precisamos ativar este módulo para usar o 4.0.1, mas ativá-lo irá falhar na unidade 3.8.

Está ficando difícil manter os dois. A maneira que eu fiz foi para:

  • vá na pasta compiz-1 e renomeie tudo .so por .so1, exceto libgtkloader.so
  • reinicie o compiz com a unidade 4.0.1
  • ative o módulo Load do gtk no compizconfig-settings-manager
  • renomeie as bibliotecas de volta para .so
  • reinicie o compiz.
por Yann 05.07.2011 / 15:58