2013-02-24 19:44:10 +00:00
|
|
|
# Building
|
|
|
|
|
|
|
|
You must have a 64-bit machine for building and running the project. Always
|
|
|
|
run your system updater before building and make sure you have the latest
|
|
|
|
video drivers for your card.
|
|
|
|
|
|
|
|
## Setup
|
|
|
|
|
2013-10-18 06:35:54 +00:00
|
|
|
### Windows
|
|
|
|
|
2017-09-28 15:05:04 +00:00
|
|
|
* Windows 8 or later
|
2018-05-11 01:08:41 +00:00
|
|
|
* Visual Studio 2017
|
|
|
|
* Windows Universal CRT SDK
|
|
|
|
* [Python 3.4+](https://www.python.org/downloads/)
|
2018-11-22 15:20:09 +00:00
|
|
|
* You will also need the [Windows 8.1 SDK](https://msdn.microsoft.com/en-us/windows/desktop/bg162891)
|
2018-05-11 01:08:41 +00:00
|
|
|
* (for VS2017 just click the Windows 8.1 SDK option in the Individual Components section in the Visual Studio Installer)
|
2013-10-18 06:35:54 +00:00
|
|
|
|
2018-05-11 01:08:41 +00:00
|
|
|
Ensure Python is in your PATH.
|
2013-10-18 06:35:54 +00:00
|
|
|
|
2019-02-22 07:43:19 +00:00
|
|
|
I recommend using [Cmder](https://cmder.net/) for git and command
|
2014-10-25 18:42:54 +00:00
|
|
|
line usage.
|
|
|
|
|
2013-10-18 06:35:54 +00:00
|
|
|
#### Debugging
|
|
|
|
|
2014-12-20 01:09:39 +00:00
|
|
|
VS behaves oddly with the debug paths. Open the xenia project properties
|
2013-10-18 06:35:54 +00:00
|
|
|
and set the 'Command' to `$(SolutionDir)$(TargetPath)` and the
|
|
|
|
'Working Directory' to `$(SolutionDir)..\..`. You can specify flags and
|
|
|
|
the file to run in the 'Command Arguments' field (or use `--flagfile=flags.txt`).
|
|
|
|
|
2015-08-30 01:06:30 +00:00
|
|
|
By default logs are written to a file with the name of the executable. You can
|
|
|
|
override this with `--log_file=log.txt`.
|
2013-02-24 19:44:10 +00:00
|
|
|
|
2015-09-21 04:31:05 +00:00
|
|
|
If running under Visual Studio and you want to look at the JIT'ed code
|
|
|
|
(available around 0xA0000000) you should pass `--emit_source_annotations` to
|
|
|
|
get helpful spacers/movs in the disassembly.
|
|
|
|
|
2015-08-18 21:18:00 +00:00
|
|
|
### Linux
|
|
|
|
|
2015-09-26 04:17:32 +00:00
|
|
|
Linux support is extremely experimental and presently incomplete.
|
2015-08-18 21:18:00 +00:00
|
|
|
|
2015-09-26 04:17:32 +00:00
|
|
|
The build script uses LLVM/Clang 3.8. GCC should also work, but is not easily
|
|
|
|
swappable right now.
|
2015-08-18 21:18:00 +00:00
|
|
|
|
2018-11-22 15:20:09 +00:00
|
|
|
[CodeLite](https://codelite.org) is the IDE of choice and `xb premake` will spit
|
2015-09-26 04:17:32 +00:00
|
|
|
out files for that. Make also works via `xb build`.
|
2015-08-18 21:18:00 +00:00
|
|
|
|
2015-12-31 22:26:39 +00:00
|
|
|
To get the latest Clang on an ubuntu system:
|
|
|
|
|
|
|
|
```
|
|
|
|
sudo -E apt-add-repository -y "ppa:ubuntu-toolchain-r/test"
|
|
|
|
curl -sSL "http://llvm.org/apt/llvm-snapshot.gpg.key" | sudo -E apt-key add -
|
|
|
|
echo "deb http://llvm.org/apt/precise/ llvm-toolchain-precise main" | sudo tee -a /etc/apt/sources.list > /dev/null
|
|
|
|
sudo -E apt-get -yq update &>> ~/apt-get-update.log
|
2017-12-20 20:11:23 +00:00
|
|
|
sudo -E apt-get -yq --no-install-suggests --no-install-recommends --force-yes install clang-4.0 clang-format-4.0
|
2015-12-31 22:26:39 +00:00
|
|
|
```
|
|
|
|
|
2016-05-12 15:06:36 +00:00
|
|
|
You will also need some development libraries. To get them on an ubuntu system:
|
|
|
|
```
|
2017-12-20 20:11:23 +00:00
|
|
|
sudo apt-get install libgtk-3-dev libpthread-stubs0-dev liblz4-dev libglew-dev libx11-dev libvulkan-dev libc++-dev libc++abi-dev
|
2016-05-12 15:06:36 +00:00
|
|
|
```
|
|
|
|
|
|
|
|
In addition, you will need the latest OpenGL libraries and drivers for your hardware. Intel and the open source
|
|
|
|
drivers are not supported as they do not yet support OpenGL 4.5.
|
|
|
|
|
2017-12-20 20:11:23 +00:00
|
|
|
#### Linux NVIDIA Vulkan Drivers
|
|
|
|
|
|
|
|
You'll need to install the latest NVIDIA drivers to enable Vulkan support on Linux.
|
|
|
|
|
|
|
|
First, remove all existing NVIDIA drivers:
|
|
|
|
|
|
|
|
```
|
|
|
|
sudo apt-get purge nvidia*
|
|
|
|
```
|
|
|
|
|
|
|
|
Add the graphics-drivers PPA to your system:
|
|
|
|
|
|
|
|
```
|
|
|
|
sudo add-apt-repository ppa:graphics-drivers
|
|
|
|
sudo apt update
|
|
|
|
```
|
|
|
|
|
|
|
|
Install the NVIDIA drivers (newer ones may be released after 387; check online):
|
|
|
|
|
|
|
|
```
|
|
|
|
sudo apt install nvidia-387
|
|
|
|
```
|
|
|
|
|
|
|
|
Either reboot the computer, or inject the NVIDIA drivers:
|
|
|
|
|
|
|
|
```
|
|
|
|
sudo rmmod nouveau
|
|
|
|
sudo modprobe nvidia
|
|
|
|
```
|
|
|
|
|
2015-07-01 02:34:48 +00:00
|
|
|
## Running
|
2013-02-24 19:44:10 +00:00
|
|
|
|
2013-10-18 06:35:54 +00:00
|
|
|
To make life easier you can use `--flagfile=myflags.txt` to specify all
|
2017-12-20 20:11:23 +00:00
|
|
|
arguments, including using `--target=my.xex` to pick an executable. You
|
|
|
|
can also specify `--log_file=stdout` to log to stdout rather than a file.
|