Advertisement
Guest User

Ubuntu 14.10 build instructions for HiFi - 1-11-15

a guest
Jan 11th, 2015
216
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.35 KB | None | 0 0
  1. All of this credit goes to @OmegaHeron on Gitter/HiFi for the 14.10 build instructions:
  2.  
  3. It's became increasingly difficult to support HiFi compiling on Ubuntu 14.04, so, much as I prefer to stick with long term support releases, I've converted to 14.10 and now using QT at version = to HiFi builds vs one behind as on old setup.
  4.  
  5. Here's the quick and dirty steps to setup Ubuntu 14.10 Desktop leading to compiling assignment-client, domain-server and interface. This was tested on a clean install with an ancient Dell Laptop leading to a fully functional stack and Interface (albeit with interface running at a staggering 2 frames/second).
  6.  
  7. Start with dependency install
  8.  
  9. sudo apt-get install qt5-default build-essential git cmake qtscript5-dev libglm-dev libssl-dev qttools5-dev qtmultimedia5-dev libqt5svg5-dev libqt5webkit5-dev freeglut3-dev libxmu-dev libxi-dev libxrender-dev libsdl2-dev libquazip-qt5-dev screen
  10.  
  11. Make a directory if you like to help keep things organized. I use $HOME/build
  12.  
  13. mkdir $HOME/build
  14. cd $HOME/build
  15.  
  16. Pull in HiFi source, gverb and qxmpp
  17.  
  18. git clone https://github.com/highfidelity/hifi.git
  19. git clone https://github.com/highfidelity/gverb.git
  20. git clone https://github.com/qxmpp-project/qxmpp.git
  21.  
  22. Build qxmpp
  23.  
  24. cd $HOME/build/qxmpp
  25. qmake
  26. make
  27. sudo make install
  28.  
  29. If you want to clean up some space run
  30. make clean
  31.  
  32. The install will generate an error at end when it tries to generate HTML documentation - harmless, ignore it, don't panic - carry on.
  33.  
  34. Create symlinks for gverb
  35.  
  36. cd $HOME/build
  37. ln -s $HOME/build/gverb/include $HOME/build/hifi/interface/external/gverb/include
  38. ln -s $HOME/build/gverb/src $HOME/build/hifi/interface/external/gverb/src
  39.  
  40. Next we have to obtain a new dependency about to be introduced - Intel Threaded Building Blocks. I'm going to go with a binary install downloaded from Intel's project site. I also did it from source - so if you want that, have at it.
  41.  
  42. wget https://www.threadingbuildingblocks.org/sites/default/files/software_releases/linux/tbb43_20141204oss_lin.tgz
  43.  
  44. tar zxvf tbb43_20141204oss_lin.tgz
  45.  
  46. sudo mv tbb43_20141204oss /opt
  47.  
  48. Next we need to define an environment variable
  49.  
  50. export TBB_ROOT_DIR='/opt/tbb43_20141204oss'
  51.  
  52. It's probably a good idea to add that to your shell config as it's going to stop you building HiFi if not defined. It you want to do this do;
  53.  
  54. nano $HOME/.profile
  55.  
  56. Go to end of file and add the line;
  57.  
  58. export TBB_ROOT_DIR='/opt/tbb43_20141204oss'
  59.  
  60. Hit Control O then Control X to save and exit.
  61.  
  62. Now create a directory to compile in so we don't pollute HiFi's source tree
  63.  
  64. mkdir $HOME/build/compile
  65. cd $HOME/build/compile
  66. cmake ../hifi/
  67.  
  68. You should see no errors at this point, other than missing bits for leapmotion, vissage etc. Again - ignore those and carry on.
  69.  
  70. make assignment-client
  71. make domain-server
  72. make interface
  73.  
  74. If that all goes well you're ready to setup a run area for your newly compiled bits. The following is based on my way of doing things.
  75.  
  76. mkdir $HOME/run
  77. mkdir $HOME/run/resources
  78. cp $HOME/build/compile/assignment-client/assignment-client $HOME/run
  79. cp $HOME/build/compile/domain-server/domain-server $HOME/run
  80. cp $HOME/build/compile/interface/interface $HOME/run
  81.  
  82. Next it's important to populate resources with bits both domain-server and interface need to run proper. My choice is to symlink the resources from HiFi's source tree - this keeps it automatically up to date.
  83.  
  84. cd $HOME/run/resources
  85. ln -s $HOME/build/hifi/domain-server/resources/web $HOME/run/resources/web
  86. ln -s $HOME/build/hifi/domain-server/resources/describe-settings.json $HOME/run/resources/describe-settings.json
  87. ln -s $HOME/build/hifi/interface/resources/config $HOME/run/resources/config
  88. ln -s $HOME/build/hifi/interface/resources/html $HOME/run/resources/html
  89. ln -s $HOME/build/hifi/interface/resources/icons $HOME/run/resources/icons
  90. ln -s $HOME/build/hifi/interface/resources/images $HOME/run/resources/images
  91. ln -s $HOME/build/hifi/interface/resources/info $HOME/run/resources/info
  92. ln -s $HOME/build/hifi/interface/resources/mention-sounds $HOME/run/resources/mention-sounds
  93. ln -s $HOME/build/hifi/interface/resources/meshes $HOME/run/resources/meshes
  94. ln -s $HOME/build/hifi/interface/resources/shaders $HOME/run/resources/shaders
  95. ln -s $HOME/build/hifi/interface/resources/sounds $HOME/run/resources/sounds
  96. ln -s $HOME/build/hifi/interface/resources/styles $HOME/run/resources/styles
  97. ln -s $HOME/build/hifi/interface/resources/visage $HOME/run/resources/visage
  98.  
  99. $HOME/resources is where your voxel, metavoxel and entity data will be saved.
  100.  
  101. To run stack (your own domain) execute the following;
  102.  
  103. cd $HOME/run
  104. screen -dmS d ./domain-server
  105. screen -dmS a ./assignment-client -n 5
  106.  
  107. To run interface execute the following;
  108.  
  109. cd $HOME/run
  110. ./interface
  111.  
  112. To terminate stack do this;
  113.  
  114. screen -r d
  115. type a single Control C
  116. screen -r a
  117.  
  118. WAIT about 30 seconds or more before you terminate assignment-client, this can avoid some unpredictable nastiness with models being lost from build.
  119.  
  120. type a single Control C
  121.  
  122. Done. Good luck and happy HiFing smile
  123.  
  124. If you want to see what assignment or domain is doing but not terminate after screen -r d (or a) then instead of Control C type Control A D which will detach the screen session leaving the server running.
  125.  
  126. Some of the lines seem to wrap no matter what I do - the longer lines creating the sym links especially, watch for that.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement