Merge pull request #1505 from vircadia/docs/more-revisions

Documentation format revisions.
This commit is contained in:
Kalila 2022-01-22 18:58:04 -05:00 committed by GitHub
commit 05506d902a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 84 additions and 76 deletions

View file

@ -1,75 +1,81 @@
# Build Linux
*Last Updated on December 1, 2020*
*Last Updated on January 6, 2022*
Please read the [general build guide](BUILD.md) for information on dependencies required for all platforms. Only Linux specific instructions are found in this file.
You can use the [Vircadia Builder](https://github.com/vircadia/vircadia-builder) to build on Linux more easily. Alternatively, you can follow the manual steps below.
## Ubuntu 16.04/18.04 specific build guide
### Ubuntu 16.04 only
Add the following line to *.bash_profile*
`export QT_QPA_FONTDIR=/usr/share/fonts/truetype/dejavu/`
### Ubuntu 18.04 server only
## Ubuntu 18.04
### Ubuntu 18.04 Server only
Add the universe repository:
_(This is not enabled by default on the server edition)_
_(This is not enabled by default on the server edition.)_
```bash
sudo add-apt-repository universe
sudo apt-get update
```
#### Install build tools:
### Install build tools:
- First update the repositories:
```bash
sudo apt-get update -y
sudo apt-get upgrade -y
```
- git
- Install git
```bash
sudo apt-get install git -y
```
Verify by git --version
- g++
Verify git was installed by running `git --version`.
- Install g++
```bash
sudo apt-get install g++ -y
```
Verify by g++ --version
- *Ubuntu 18.04* cmake
Verify g++ was installed by running `g++ --version`.
- **Ubuntu 18.04** CMake
```bash
sudo apt-get install cmake -y
```
Verify by cmake --version
- *Ubuntu 16.04* cmake
```bash
wget https://cmake.org/files/v3.14/cmake-3.14.2-Linux-x86_64.sh
sudo sh cmake-3.14.2-Linux-x86_64.sh --prefix=/usr/local --exclude-subdir
```
#### Install build dependencies:
Verify CMake was installed by running `cmake --version`.
### Install build dependencies:
- OpenSSL:
```bash
sudo apt-get install libssl-dev
```
Verify with `openssl version`
Verify OpenSSL was installed by running `openssl version`.
- OpenGL:
```bash
sudo apt-get install libgl1-mesa-dev -y
sudo ln -s /usr/lib/x86_64-linux-gnu/libGL.so.346.35 /usr/lib/x86_64-linux-gnu/libGL.so.1.2.0
```
- Verify OpenGL:
- First install mesa-utils with the command `sudo apt install mesa-utils -y`
- Then run `glxinfo | grep "OpenGL version"`
#### To compile interface in a server you must install:
Verify OpenGL:
- First install mesa-utils with the command `sudo apt install mesa-utils -y`.
- Then run `glxinfo | grep "OpenGL version"`.
### Extra dependencies to compile Interface on a server
- Install the following:
```bash
sudo apt-get -y install libpulse0 libnss3 libnspr4 libfontconfig1 libxcursor1 libxcomposite1 libxtst6 libxslt1.1
```
- Misc dependencies:
```bash
sudo apt-get install libasound2 libxmu-dev libxi-dev freeglut3-dev libasound2-dev libjack0 libjack-dev libxrandr-dev libudev-dev libssl-dev zlib1g-dev
```
- Install Python 3 and required packages:
```bash
sudo apt-get install python python3 python3-distro
```
- Install node, required to build the jsdoc documentation:
- Install Node.js as it is required to build the jsdoc documentation:
```bash
sudo apt-get install nodejs
```
@ -81,16 +87,17 @@ Clone this repository:
git clone https://github.com/vircadia/vircadia.git
```
To compile a DEV version checkout the branch you need. To get a list of all tags:
```bash
git fetch -a
```
Then checkout the main branch with:
Then checkout the master branch with:
```bash
git checkout master
```
If you need a different branch, you can get a list of all tags with:
```bash
git fetch --tags
git tag
```
### Using a custom Qt build
Qt binaries are only provided for Ubuntu. In order to build on other distributions, a Qt5 install
@ -104,6 +111,18 @@ The system's Qt can be used, if the development packages are installed, by setti
also the last version available in the Qt 5 branch. It is expected that Linux distributions will have
Qt 5.15.2 available for a long time.
### Architecture support
If the build is intended to be packaged for distribution, the `VIRCADIA_CPU_ARCHITECTURE`
CMake variable needs to be set to an architecture specific value.
By default, it is set to `-march=native -mtune=native`, which yields builds optimized for a particular
machine, but these builds will not work on machines lacking same CPU instructions.
For packaging, it is recommended to set it to a different value, for example `-msse3`. This will help ensure that the build will run on all reasonably modern CPUs.
Setting `VIRCADIA_CPU_ARCHITECTURE` to an empty string will use the default compiler settings and yield maximum compatibility.
### Compiling
Create the build directory:
@ -118,33 +137,34 @@ Prepare makefiles:
cmake ..
```
- If cmake fails with a vcpkg error - delete /tmp/hifi/vcpkg.
If cmake fails with a vcpkg error, then delete `~/vircadia-files/vcpkg/`.
Start compilation of the server and get a cup of coffee:
#### Server
To compile the Domain server:
```bash
make domain-server assignment-client
```
To compile interface:
*Note: For a server, it is not necessary to compile the Interface.*
#### Interface
To compile the Interface client:
```bash
make interface
```
The commands above will compile with a single thread. If you have enough memory,
you can decrease your build time using the `-j` flag. Since most x64 CPUs
support two threads per core, this works out to CPU_COUNT*2. As an example, if
you have a 2 core machine, you could use:
```
The commands above will compile with a single thread. If you have enough memory, you can decrease your build time using the `-j` flag. Since most x64 CPUs support two threads per core, this works out to CPU_COUNT*2. As an example, if you have a 2 core machine, you could use:
```bash
make -j4 interface
```
In a server, it does not make sense to compile interface.
### Running the software
#### Domain server
Running domain server:
Running Domain server:
```bash
./domain-server/domain-server
```
@ -158,24 +178,16 @@ Running assignment client:
#### Interface
Running interface:
Running Interface:
```bash
./interface/interface
```
Go to localhost in the running interface.
Go to "localhost" in the running Interface to visit your newly launched Domain server.
#### Notes
### Notes
If your goal is to set up a development environment, it is desirable to set the
directory that vcpkg builds into with the `HIFI_VCPKG_BASE` environment variable.
If your goal is to set up a development environment, it is desirable to set the directory that vcpkg builds into with the `HIFI_VCPKG_BASE` environment variable.
For example, you might set `HIFI_VCPKG_BASE` to `/home/$USER/vcpkg`.
By default, vcpkg will build in the system `/tmp` directory.
If build is intended for packaging or creation of AppImage, `VIRCADIA_CPU_ARCHITECTURE`
CMake variable needs to be set to architecture specific value.
It defaults to `-march=native -mtune=native`, which yields builds optimized for particular
machine, but builds will not work on machines lacking same CPU instructions.
For packaging and AppImage it is recommended to set it to different value, for example `-msse3`.
Setting `VIRCADIA_CPU_ARCHITECTURE` to empty string will use default compiler settings and yield
maximum compatibility.
By default, vcpkg will build in the `~/vircadia-files/vcpkg/` directory.

View file

@ -1,6 +1,6 @@
# Build MacOS
# Build macOS
*Last Updated on October 19, 2021*
*Last Updated on December 1, 2021*
Please read the [general build guide](BUILD.md) for information on dependencies required for all platforms. This will include the necessary environment variables to customize your build. Only macOS specific instructions are found in this document.
@ -21,9 +21,9 @@ brew install cmake openssl npm
Download an install Python 3.6.6 or higher from [here](https://www.python.org/downloads/).
Execute the `Update Shell Profile.command` script that is provided with the installer.
### MacOS SDK
### macOS SDK
You will need version `10.12` of the macOS SDK for building, otherwise you may have crashing or other unintended issues due to the deprecation of OpenGL on macOS. You can get that SDK from [here](https://github.com/phracker/MacOSX-SDKs). You must copy it in to your Xcode SDK directory, e.g.
You will need version `10.12` of the macOS SDK for building, otherwise you may experience crashing or other unintended issues due to the deprecation of OpenGL on macOS. You can get that SDK from [here](https://github.com/phracker/MacOSX-SDKs). You must copy it in to your Xcode SDK directory, e.g.
```bash
cp -rp ~/Downloads/MacOSX10.12.sdk /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/
@ -64,14 +64,17 @@ You can append `-j4` to assign more threads to build with. The number indicates
To package the installation, you can simply run `make package` afterwards.
## Notes
## Architecture Support
If build is intended for packaging or creation of AppImage, `VIRCADIA_CPU_ARCHITECTURE`
CMake variable needs to be set to architecture specific value.
It defaults to `-march=native -mtune=native`, which yields builds optimized for particular
machine, but builds will not work on machines lacking same CPU instructions.
For packaging and AppImage it is recommended to set it to different value, for example `-msse3`.
Setting `VIRCADIA_CPU_ARCHITECTURE` to empty string will use default compiler settings and yield
If the build is intended to be packaged for distribution, the `VIRCADIA_CPU_ARCHITECTURE`
CMake variable needs to be set to an architecture specific value.
By default, it is set to `-march=native -mtune=native`, which yields builds optimized for a particular
machine, but these builds will not work on machines lacking same CPU instructions.
For packaging, it is recommended to set it to a different value, for example `-msse3`. This will help ensure that the build will run on all reasonably modern CPUs.
Setting `VIRCADIA_CPU_ARCHITECTURE` to an empty string will use the default compiler settings and yield
maximum compatibility.
## FAQ

View file

@ -54,7 +54,6 @@ Vircadia™ is a 3D social software project seeking to incrementally bring about
- [For Windows - Interface & Server](https://github.com/vircadia/vircadia/blob/master/INSTALLER.md)
- [For Mac - Interface](https://github.com/vircadia/vircadia/blob/master/INSTALLER.md#os-x)
- [For Linux - Server .deb - Vircadia Builder](INSTALLER.md#ubuntu-1804--deb)
- [For Linux - Server .rpm - Vircadia Builder](INSTALLER.md#amazon-linux-2--rpm)
- [For Linux - Interface AppImage - Vircadia Builder](https://github.com/vircadia/vircadia-builder/blob/master/README.md#building-appimages)
### Boot to Metaverse: [The Goal](https://vircadia.com/vision/)
@ -94,10 +93,4 @@ Keep in mind that Vircadia consists of multiple smaller projects that might have
#### Supporters of the Vircadia Project
| [ksuprynowicz (74hc595)](https://github.com/ksuprynowicz) |
| --- |
| <p align="center">[<img src="https://vircadia.com/wp-content/uploads/2021/07/74hc595_profile_2-1.png" width="80" alt="ksuprynowicz" />](https://github.com/ksuprynowicz)</p>
#### Sponsors of Open Source
<img src="https://vircadia.com/wp-content/uploads/2021/11/CBT_OS-logo_White-V.png" width="250" alt="CrossBrowserTesting" />
Two (2) anonymous, three (3) total sponsors through GitHub. ❤️