Initial project skeleton.

This includes a working gyp-based build of an executable that uses LLVM.
This commit is contained in:
Ben Vanik
2013-01-11 01:23:08 -08:00
parent c03f57c8c6
commit 7e4a9220d7
21 changed files with 920 additions and 9 deletions

View File

@@ -15,13 +15,12 @@ Coming soon (maybe):
## Quickstart
git clone https://github.com/benvanik/xenia.git
./xenia-build.sh setup
./xenia-build.sh build
./bin/xenia some.xex
cd xenia && source xeniarc
xb setup
xb build
./bin/xenia-run some.xex
## Building
### Requirements
## Requirements
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
@@ -43,8 +42,85 @@ Windows SDK, the full DirectX SDK, and the Kinect SDK.
#### OS X
* [Xcode 4](http://developer.apple.com/xcode/)
Only tested on OS X 10.8 (Mountain Lion).
### Dependencies
* [Xcode 4](http://developer.apple.com/xcode/) + command line tools
* [Homebrew](http://mxcl.github.com/homebrew/)
TODO
## Building
A simple build script is included to manage basic tasks such as building
dependencies.
./xenia-build.py --help
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 - including LLVM - 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`.
### xenia-info
Dumps information about a xex file.
./bin/xenia-info some.xex
### xenia-run
Runs a xex.
./bin/xenia-run some.xex