Difference between revisions of "User:Opensource Obscure/Compiling"

From Second Life Wiki
Jump to navigation Jump to search
(update, reorganization)
m (cleanup)
Line 11: Line 11:
----
----


=== Dipendenze ===
== Dipendenze ==
Ho disinstallato ccache e gcc-4.1.
Ho disinstallato ccache e gcc-4.1.
  sudo apt-get install cmake flex bison build-essential python libx11-dev zlib1g-dev libssl-dev mesa-common-dev libglu1-mesa-dev libc6-dev libstdc++6 libxrender-dev
  sudo apt-get install cmake flex bison build-essential python libx11-dev zlib1g-dev libssl-dev mesa-common-dev libglu1-mesa-dev libc6-dev libstdc++6 libxrender-dev
Line 18: Line 18:
  sudo pip install autobuild
  sudo pip install autobuild


=== Compilare i sorgenti ===
== Compilare i sorgenti ==


  '''hg clone''' ''https://bitbucket.org/merov_linden/viewer-autobuild2010''
  '''hg clone''' ''https://bitbucket.org/merov_linden/viewer-autobuild2010''
Line 24: Line 24:
  '''autobuild build -c RelWithDebInfo'''
  '''autobuild build -c RelWithDebInfo'''


=== gcc / Ubuntu ===
== gcc / Ubuntu ==


Il gcc che c'è di default nelle versioni recenti di Ubuntu non va bene, si deve usare invece la versione 4.1. Ecco come mantenere entrambe le versioni di gcc installate nel sistema, scegliendo con ''update-alternatives --config gcc'' quale versione usare effettivamente quando viene chiamato gcc:
Il gcc che c'è di default nelle versioni recenti di Ubuntu non va bene, si deve usare invece la versione 4.1. Ecco come mantenere entrambe le versioni di gcc installate nel sistema, scegliendo con ''update-alternatives --config gcc'' quale versione usare effettivamente quando viene chiamato gcc:
Line 41: Line 41:
D'ora in poi il sistema userà la versione 4.1 di gcc. Ripetere l'ultimo passo se c'è bisogno di usare la versione più recente di gcc.
D'ora in poi il sistema userà la versione 4.1 di gcc. Ripetere l'ultimo passo se c'è bisogno di usare la versione più recente di gcc.


== Patches, personalizzazione interfaccia, menu etc. ==
== Applicare una patch ==
 
=== Applicare una patch ===


Esempio:
Esempio:
  user@box:~/snowglobe/linden$ '''patch -p0 <''' SNOW-247_translation_breaks_chat_bubbles.diff  
  user@box:~/snowglobe/linden$ '''patch -p0 <''' SNOW-247_translation_breaks_chat_bubbles.diff  


=== Cambio di Shortcut per poter nascondere la GUI ===
== Cambio di Shortcut per poter nascondere la GUI ==


Modificare indra/newview/llviewermenu.cpp
Modificare indra/newview/llviewermenu.cpp
Line 62: Line 60:




== FOLLOWING STUFF is OUT OF DATE ==
== Old stuff ==


== Preparazione dei Build Scripts ==
=== FMOD ===
 
cd linden/indra/
./develop.py configure
 
 
== FMOD ==


* necessario a meno di disabilitarlo esplicitamente
* necessario a meno di disabilitarlo esplicitamente
Line 85: Line 77:
  cp api/libfmod-3.75.so ../linden/libraries/i686-linux/lib_debug/ \
  cp api/libfmod-3.75.so ../linden/libraries/i686-linux/lib_debug/ \
  cd ../linden/indra/
  cd ../linden/indra/
== Compilare as usual ==
cd indra/
./develop.py build
o
cd indra/viewer-linux-i686/
make


=== altro ===
=== altro ===
(Non sicuro) - viewer-linux-i686-relwithdebinfo/CMakeCache.txt --> per sostituire "(Developer)" nel floater '''About Second Life'''
(Non sicuro) - viewer-linux-i686-relwithdebinfo/CMakeCache.txt --> per sostituire "(Developer)" nel floater '''About Second Life'''


== Build Types ==  
=== Build Types ===


* Usare directory separate per build types diversi
* Usare directory separate per build types diversi
Line 111: Line 93:
  ./develop.py -t Release build
  ./develop.py -t Release build


=== Ombre / Shadows ===


== Ombre / Shadows ==
Il ramo di sviluppo da usare e' render-pipeline.
([https://lists.secondlife.com/pipermail/sldev/2009-March/012999.html vedi qui]) - Open up the debug settings, and search for
([https://lists.secondlife.com/pipermail/sldev/2009-March/012999.html vedi qui]) - Open up the debug settings, and search for
  RenderShadowClipPlanes(?)
  RenderShadowClipPlanes(?)
Line 121: Line 101:
and you will find the distance at which shadows show to be increased, be aware tho that they might be a little more rough up close. The other settings I tinkered with, but in the end left at the default...tho you can also increase the amount of blur passes (beware FPS hits), and the strength of the blur and gaussian.
and you will find the distance at which shadows show to be increased, be aware tho that they might be a little more rough up close. The other settings I tinkered with, but in the end left at the default...tho you can also increase the amount of blur passes (beware FPS hits), and the strength of the blur and gaussian.


 
=== Come trovare le dipendenze richieste ===
== Pacchetti da installare ==
([https://lists.secondlife.com/pipermail/sldev/2009-March/013050.html vedi qui]) - ESEMPIO con omvviewer:
 
apt-get install cmake flex bison libglu1-mesa-dev libssl-dev
 
Come trovare le dipendenze richieste ([https://lists.secondlife.com/pipermail/sldev/2009-March/013050.html vedi qui]) - ESEMPIO con omvviewer:
  omvviewer/indra/build/newview>ldd ./omvviewer
  omvviewer/indra/build/newview>ldd ./omvviewer


== Errori ==
=== llcubemap / typedef struct Vertex ===
[ 31%] Building CXX object llrender/CMakeFiles/llrender.dir/llcubemap.o
cc1plus: warnings being treated as errors
In file included from ;)/sources/1-21-r99587/linden/indra/llrender/llcubemap.cpp:44:
;)/sources/1-21-r99587/linden/indra/llrender/llrender.h:222: error: ‘typedef’ was ignored in this declaration
make[2]: *** [llrender/CMakeFiles/llrender.dir/llcubemap.o] Error 1
make[1]: *** [llrender/CMakeFiles/llrender.dir/all] Error 2
make: *** [all] Error 2
[https://lists.secondlife.com/pipermail/sldev/2008-August/011428.html Solution by Robin Cornelius]
=== format not a string literal and no format arguments ===
Se si ottiene questo errore, fare una delle due:
* sostituire in indra/linux_crash_logger/llcrashloggerlinux.cpp :
dialog_text);
con
"%s", dialog_text);
* In indra/cmake/00-Common.cmake > Line 183, commentare cosi' ([https://lists.secondlife.com/pipermail/sldev/2009-March/013048.html vedi qui] - [https://lists.secondlife.com/pipermail/sldev/2009-March/013049.html spiegazione]):
set(GCC_WARNINGS "${GCC_WARNINGS} -Werror")


[[Category:Compiling viewer]]
[[Category:Compiling viewer]]

Revision as of 15:25, 8 April 2011

BACK to User:Opensource_Obscure


Dipendenze

Ho disinstallato ccache e gcc-4.1.

sudo apt-get install cmake flex bison build-essential python libx11-dev zlib1g-dev libssl-dev mesa-common-dev libglu1-mesa-dev libc6-dev libstdc++6 libxrender-dev
sudo apt-get install libogg-dev libpng12-dev libdbus-glib-1-dev libgtk2.0-dev
sudo apt-get install mercurial python-pip
sudo pip install autobuild

Compilare i sorgenti

hg clone https://bitbucket.org/merov_linden/viewer-autobuild2010
cd viewer-autobuild2010
autobuild build -c RelWithDebInfo

gcc / Ubuntu

Il gcc che c'è di default nelle versioni recenti di Ubuntu non va bene, si deve usare invece la versione 4.1. Ecco come mantenere entrambe le versioni di gcc installate nel sistema, scegliendo con update-alternatives --config gcc quale versione usare effettivamente quando viene chiamato gcc:

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.1 41 --slave /usr/bin/g++ g++ /usr/bin/g++-4.1 --slave /usr/bin/gcov gcov /usr/bin/gcov-4.1
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.4 44 --slave /usr/bin/g++ g++ /usr/bin/g++-4.4 --slave /usr/bin/gcov gcov /usr/bin/gcov-4.4
sudo update-alternatives --config gcc

a questo punto, selezionare gcc-4.1:

------------------------------------------------------------
* 0            /usr/bin/gcc-4.4   44        modalità automatica
  1            /usr/bin/gcc-4.1   41        modalità manuale
  2            /usr/bin/gcc-4.4   44        modalità manuale
Premere Invio per mantenere il valore predefinito[*] o digitare il numero della selezione:1
update-alternatives: viene usato /usr/bin/gcc-4.1 per fornire /usr/bin/gcc (gcc) in modalità manuale.

D'ora in poi il sistema userà la versione 4.1 di gcc. Ripetere l'ultimo passo se c'è bisogno di usare la versione più recente di gcc.

Applicare una patch

Esempio:

user@box:~/snowglobe/linden$ patch -p0 < SNOW-247_translation_breaks_chat_bubbles.diff 

Cambio di Shortcut per poter nascondere la GUI

Modificare indra/newview/llviewermenu.cpp

SpaceNavigator

Nota: Non funziona più con i kernel recenti. Con Kirstens funziona.

Va inizialmente creato (una tantum) il file /etc/udev/rules.d/41-spacenavigator.rules con questo contenuto (forse basta la terza riga):

KERNEL=="event[0-9]*", SYSFS{idVendor}=="046d", SYSFS{idProduct}=="c603", SYMLINK+="input/spacemouse", GROUP="plugdev"
KERNEL=="event[0-9]*", SYSFS{idVendor}=="046d", SYSFS{idProduct}=="c623", SYMLINK+="input/spacetraveler", GROUP="plugdev"
KERNEL=="event[0-9]*", SYSFS{idVendor}=="046d", SYSFS{idProduct}=="c626", SYMLINK+="input/spacenavigator", GROUP="plugdev"


Old stuff

FMOD

  • necessario a meno di disabilitarlo esplicitamente
  • da fare dopo il primo ./develop.py configure
  • le istruzioni seguenti presuppongono che la directory di fmod sia posta nella stessa directory che contiene linden/indra/, e che ci si trovi in quest'ultima
cd ../../fmodapi375linux/ && cp api/inc/* ../linden/libraries/i686-linux/include/ && cp api/libfmod-3.75.so ../linden/libraries/i686-linux/lib_release_client/ && cp api/libfmod-3.75.so ../linden/libraries/i686-linux/lib_release/ && cp api/libfmod-3.75.so ../linden/libraries/i686-linux/lib_debug/ && cd ../linden/indra

oppure

cd ../../fmodapi375linux/ \
cp api/inc/* ../linden/libraries/i686-linux/include/ \
cp api/libfmod-3.75.so ../linden/libraries/i686-linux/lib_release_client/ \
cp api/libfmod-3.75.so ../linden/libraries/i686-linux/lib_release/ \
cp api/libfmod-3.75.so ../linden/libraries/i686-linux/lib_debug/ \
cd ../linden/indra/

altro

(Non sicuro) - viewer-linux-i686-relwithdebinfo/CMakeCache.txt --> per sostituire "(Developer)" nel floater About Second Life

Build Types

  • Usare directory separate per build types diversi
  • RelWithDebInfo e' il default
  • Sembra che non valga la pena di compilare versioni Debug

Debug:

./develop.py -t Debug configure
./develop.py -t Debug build

Release:

./develop.py -t Release configure
./develop.py -t Release build

Ombre / Shadows

(vedi qui) - Open up the debug settings, and search for

RenderShadowClipPlanes(?)

Put in values like

50 150 300 

and you will find the distance at which shadows show to be increased, be aware tho that they might be a little more rough up close. The other settings I tinkered with, but in the end left at the default...tho you can also increase the amount of blur passes (beware FPS hits), and the strength of the blur and gaussian.

Come trovare le dipendenze richieste

(vedi qui) - ESEMPIO con omvviewer:

omvviewer/indra/build/newview>ldd ./omvviewer