GithubHelp home page GithubHelp logo

raven-cli's Introduction

Raven-Cli Beta

The Raven Framework command line utility makes it easy to get started building GBA ROMs.

Use the raven --help command for a description of all raven cli commands.

Note that this project is still under construction.

Supported platforms

The current build of raven cli has only been tested and confirmed working on MacOSX. Linux and Windows support is planned:

Linux: #25

Windows: #26

Installing

$ npm install -g raven-cli

Starting a raven project

$ raven start

This command will generate your project folder with the necessary files to get started. The resulting project folder structure will look as follows:

|-- raven.json
`-- src
   `-- sample.c

The raven.json file will contain your project's configuration, while the sample.c file will contain the primary entry-point to your game.

Developing your game

Start by modifying the generated source file. The libgba library (https://github.com/devkitPro/libgba) is automatically linked to your project. Option to link other libraries is planned for the future.

Building your project

$ raven build

Running the build command will generate the build folder. In this folder, you will find your build rom (build/<project_name>_mb.gba). You can ignore the other files in that folder, as they are just required and generated files used to build the final .gba ROM.

Note that raven expects the .c file with the main entry-point to the game to be named the same as the project (the same as the name field in raven.json).

Cleaning your project

$ raven clean

Run this command to clean your project folder of non-essential files. This command will delete your build folder.

Source control

We suggest that you ignore the build folder when submitting your changes to a source control service.

Contributing to Raven-Cli

TODO: Document the contribution process

License

TODO: Add license agreements (probably GPL)

Libraries and tools in /tools/ARM come from the devkitPro project (http://devkitpro.org/).

raven-cli's People

Contributors

0505gonzalez avatar

Stargazers

 avatar

Watchers

 avatar

raven-cli's Issues

Windows support

Verify that the command line tool works in Windows, provide fixes if it does not.

Library generation

Raven cli should be able to generate a library project using raven start --library

Makefile should be generated from src/templates/lib_makefile.template

Liscense

Figure out liscensing and include it in the project

libs array in raven.json

Project generator should generate a libs array which will contain string paths to the libraries.

Paths can be relative to the project or absolute.

Clean up RavenCli

Currently it's very hard to read. Move action function definitions down

Use async calls to fs

Currently ProjectBuilder and ProjectCreator are using sync calls to fs. Use Async so errors can be bubbled up.

Linux support

Verify that the cli tool works on linux and create fixes if it doesn't

raven clean fails when build folder is corrupted

Repro:

  • Introduce syntax error into clean project source code
  • run raven build
  • Build folder should be created, but .gba file will not exist
  • Run raven clean

Expected:
build folder is deleted

Actual:
Error is returned

Clean up project Makefile

  • Remove unnecessary rules and definitions
  • Refactor so that it's easier to read
  • Update comments for better understanding

Normalize raven path

Raven path in generated Makefile

Current:
RAVEN_PATH := /Users/gonzalez/dev/raven-cli/src/raven/../..

Expected:
RAVEN_PATH := /Users/gonzalez/dev/raven-cli.

Raven clean

Implement raven clean command which deletes the build folder

Re-use build folder

  • Create command raven clean which will delete the build folder
  • If build folder exists, just call make

Clean up lib Makefile

  • Remove unnecessary rules or declarations
  • Handle mkdirs gracefully (no error if folder already exists
  • Make more readable
  • Update comments to make it more understandable

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.