xenia/docs/building.md
Ben Vanik d3665cc2e6 Support for VS2013 (and auto picking), a Win xb script, and readme updates.
This also removes the dependency on D3DX, which is only included in the
DXSDK, meaning that just the Win8+ SDK should be required now.
2013-10-17 23:35:54 -07:00

3.3 KiB

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

Windows

Install and add Python to your PATH (C:\Python27\).

Visual Studio 2013

Should work out of the box - just load the sln.

Visual Studio 2012 (Express)

Basic testing has been done with 2012 Express (all I have access to).

Debugging

VS behaves oddly with the debug paths. Open the xenia-run project properties 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).

OS X

Only tested on OS X 10.8 (Mountain Lion).

Linux

Only tested on Ubuntu 12.10.

  • random things (sudo apt-get install make flex bison texinfo)
  • clang (sudo apt-get install clang)

Pretty much just install what's asked for as you try to xb setup or xb build.

xenia-build

A simple build script is included to manage basic tasks such as building dependencies.

./xenia-build.py --help

On Windows the xb.bat file enables you to issue all commands by just typing xb. Note that you should run everything from the root xenia\ folder.

On Linux/OSX the xeniarc bash file has some aliases that save some keypresses:

source xeniarc
xb  -> python xenia-build.py
xbb -> python xenia-build.py build
xbc -> python xenia-build.py clean

Commands

setup

Run this on initial checkout to pull down all dependencies and setup LLVM.

xb setup

pull

Does a git pull in addition to updating submodules and rebuilding dependencies and gyp outputs. Use this, if possible, instead of git pull.

xb pull

gyp

Updates all of the supported gyp projects. If you're using Visual Studio or Xcode to build or debug your projects you'll need to run this after you change gyp/gypi files.

xb gyp

build

Builds all xenia targets using ninja. Release is built by default; specify --debug to build the debug configuration.

xb build
xb build --debug

clean

Cleans just xenia outputs from the build/ directory. A following build will just have the rebuild xenia and not all of the dependencies.

xb clean

nuke

Cleans up xenia outputs as well as all dependencies. A full build will be required after this so only do this if you want to reclaim your disk space or something is really wrong.

xb nuke

Running

Use the wrapper shell scripts under bin/ to run tools. They will ensure the tools are built (but not that they are up to date) before running and allow switching between the debug and release variants with --debug.

To make life easier you can use --flagfile=myflags.txt to specify all arguments, including using --target=my.xex to pick an executable.

xenia-info

Dumps information about a xex file.

./bin/xenia-info some.xex

xenia-run

Runs a xex.

./bin/xenia-run some.xex