Build the Viewer on Linux/it

From Second Life Wiki
Jump to navigation Jump to search

Nota

La pagina e' incompleta.


Preparativi

Si assume che

  • l'ambiente di sviluppo sia pronto
  • i sorgenti e FMOD siano gia' stati scaricati e scompattati
  • la directory di FMOD sia posta nella stessa directory che contiene linden/indra/
  • la directory di riferimento e' linden/indra/


Preparazione dei Build Scripts

./develop.py configure


FMOD

  • necessario a meno di disabilitarlo esplicitamente
  • da eseguire dopo il primo ./develop.py configure

da verificare

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/


Compilazione

./develop.py build


Risultato

Al termine di una compilazione senza errori viene creato un archivio .tar.bz2 che andra' usato come quello che si scarica da secondlife.com. L'archivio si trova in linden/indra/... (todo)


Build Types

E' possibile creare versioni diverse del client.

  • 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


Personalizzazione interfaccia, menu etc.

Cambio di Shortcut per poter nascondere la GUI

Modificare indra/newview/llviewermenu.cpp


Errori

llcubemap / typedef struct Vertex

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);
set(GCC_WARNINGS "${GCC_WARNINGS} -Werror")
[ 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

Solution by Robin Cornelius