Comment puis-je créer Unity à partir des sources?

64

J'aimerais savoir comment créer Unity à partir du code source dans la version de développement actuelle. Veuillez couvrir les sujets suivants:

  • Quels paquets sont nécessaires pour compiler Unity?
  • Où puis-je obtenir le code source actuel?
  • Quelles sont les étapes pour configurer et compiler Unity?
  • Est-il possible d’exécuter en toute sécurité la dernière version à côté de la version depuis les référentiels?
posée htorque 28.02.2011 - 20:50
la source

6 réponses

65

Construire l'unité à partir de la source

Dans ce guide, vous allez créer une version séparée de la jonction Unity (installée localement dans votre répertoire personnel), vous n'avez donc pas à vous soucier de la corruption de la version des dépôts Ubuntu et vous n'aurez pas non plus besoin de root autorisations tout au long du processus (sauf pour l'installation des dépendances de construction).

0. Installation des dépendances de construction

Vous devrez exécuter cette opération une fois pour installer toutes les dépendances de construction nécessaires:

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

Si vous avez activé les référentiels de code source (alias deb-src ), vous pouvez utiliser à la place:

sudo apt-get build-dep unity

1. Préparer l'environnement

Remplacez SOURCE et PREFIX par les répertoires auxquels vous souhaitez que les fichiers source soient générés. Dans cet exemple, je mets les deux dans mon répertoire personnel:

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. Construire Nux

Vous devrez probablement récupérer la dernière version de Nux pour compiler la jonction Unity:

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

Conseil : la plupart des ordinateurs de bureau et portables modernes possèdent plusieurs cœurs. Vous pouvez considérablement accélérer la compilation en en tirant profit. La commande make dispose d'une prise en charge intégrée que vous pouvez activer à l'aide du commutateur -jN N correspond au nombre de tâches à exécuter en parallèle. Une bonne règle à suivre consiste à exécuter 2 fois le nombre de cœurs sur votre processeur. Ainsi, sur un ordinateur dual core normal, vous devez exécuter make -j4 pour minimiser le temps de compilation.

3. Construire l'unité

Maintenant, prenez le dernier code Unity et compilez-le:

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

Voilà, déconnectez-vous et reconnectez-vous et vous devriez lancer la dernière version d'Unity. Alternativement , vous pouvez lancer

setsid $PREFIX/bin/unity

4. Mise à jour

Assurez-vous de préparer l'environnement comme décrit à l'étape 1, puis entrez simplement les deux répertoires de niveau supérieur nux et unity , exécutez bzr pull , reconstruisez et réinstallez.

Je suggère de supprimer et de recréer le répertoire build dans le répertoire unity , pour vous assurer qu'aucun ancien fichier ne perturbe votre construction.

5. Supprimer l'unité

Supprimez les trois répertoires $SOURCE , $PREFIX et ~/.compiz-1 .

Lien utile:

  • lien
réponse donnée htorque 12.01.2013 - 11:09
la source
9

J'ai créé un script basé sur le script de génération Wayland et ces instructions pour automatiser l'installation des prérequis, le clonage, la mise à jour, la configuration et la création d'Unity.

lien

    
réponse donnée Cam 27.03.2011 - 08:11
la source
7

Construire dans votre répertoire personnel

Parfois, pour tester des raisons, il est utile de créer Unity et nux dans votre répertoire personnel pour que vous puissiez essayer de voir si quelque chose est corrigé dans le tronc sans contourner les packages et / ou les PPA. J'ai demandé à Jason Smith (Unity Dev) comment il construisait Unity et il m'a expliqué sa méthode:

  1. Assurez-vous d’avoir toutes les dépendances de génération de cette réponse.

  2. Commencez par créer un répertoire dans votre maison appelé "staging", c'est là que nous allons créer Unity. Créez un petit script qui préparera l'environnement de génération, remplacez le répertoire de base par le vôtre:

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

    J'appelle ceci unity.sh et je l'exécute chaque fois que je veux construire Unity. Donc, essentiellement, chmod +x unity.sh et ./unity.sh lorsque vous voulez construire.

  3. Build nux:

    bzr branch lp:nux
    cd nux
    ./autogen.sh --prefix=/home/jorge/staging
    make -j4
    make install
    cd ..
    
  4. Créer l’unité:

    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
    

REMARQUE: Cela crée nux et unité dans votre répertoire personnel, il n’ya pas besoin de sudo ici ou de quelque chose comme ça.

  • La déconnexion et la ré-exécution exécuteront automatiquement cette version d'Unity / nux car elle a été construite dans ~/.compiz
  • Pour revenir aux paquets normaux, déconnectez-vous, supprimez ~/.compiz et reconnectez-vous.
réponse donnée Jorge Castro 20.08.2011 - 03:28
la source
6

Le code source de l’environnement par défaut (Unity) se trouve dans le package unity . Installez le source avec apt-get source unity , les dépendances pour le construire avec sudo apt-get build-dep unity et le pirater.

Cela vous permettra de positionner le lanceur à droite, en bas, en haut, etc.

    
réponse donnée ish 29.06.2012 - 03:53
la source
4

La documentation officielle est excellente - Developing Unity .

Voici un extrait sur la création d'Unity - installation à partir de sources et compilation

  

Créer l’unité

     

Ces instructions vous aideront à construire l'unité à partir de la source. cependant,   il y a quelques points à considérer:

     
  • Il est recommandé de ne jamais copier tout ce que vous avez créé localement en dehors de votre répertoire personnel. Faire cela demande des ennuis,   d'autant plus que nous construisons l'intégralité du shell de bureau. Si vous gérez   pour ruiner votre coque de bureau à l'échelle du système, vous serez très triste   programmeur!
  •   
  • On suppose que vous exécutez la version précise d’Ubuntu.
  •   
  • On suppose également que vous voulez construire l’unité à partir du tronc (c’est-à-dire lp: unity).
  •   

Obtenir le code source:

     

Si Bazaar n’est pas déjà installé, installez-le maintenant:

sudo apt-get install bzr
     

Vous voudrez créer un dossier pour le code d’unité. Faire   quelque chose comme ça:

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

Prenons le code du tableau de bord:

bzr branch lp:unity trunk
     

Cela peut prendre un certain temps.
Installation des dépendances de génération:

     

Nous devons obtenir les dépendances de construction pour l’unité. Heureusement, apt-get   rend cette triviale:

sudo apt-get build-dep unity
     

Compiler l’unité:

     

Utilisez cet ensemble de fonctions bash pour faciliter considérablement cette étape.   Pour les utiliser, copiez le code bash suivant dans un fichier de votre domicile   répertoire appelé .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
}
     

Maintenant, lancez ceci dans un terminal:

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

Cela garantit que la prochaine fois que vous ouvrez un shell bash, les fonctions   énumérés ci-dessus seront à votre disposition. Pour éviter d'avoir à fermer et   ré-ouvrir un terminal, nous pouvons les lire manuellement juste une fois:

. ~/.bash_functions
     

Vous devriez maintenant pouvoir exécuter:

remake-unity
     

du répertoire trunk/ que nous avons créé précédemment. C'est ça - tu es   construire l'unité!

    
réponse donnée Nitin Venkatesh 07.01.2013 - 16:00
la source
2

L'installation est devenue plus compliquée récemment: un nouveau module a été ajouté à compiz nommé GTK Load (ou il va planter dans XInternAtom). Nous devons activer ce module pour utiliser la version 4.0.1, mais l'activer provoquera une panne de l'unité 3.8.

Ça devient difficile de les garder tous les deux. La façon dont je l'ai fait était de:

  • allez dans le dossier compiz-1 et renommez tout .so par .so1, sauf pour libgtkloader.so
  • redémarrer avec l'unité 4.0.1
  • activer le module gtk Load dans compizconfig-settings-manager
  • renommez les bibliothèques en .so
  • redémarrer compiz.
réponse donnée Yann 05.07.2011 - 15:58
la source

Lire d'autres questions sur les étiquettes