README.md in neutron-0.0.0 vs README.md in neutron-0.1.0

- old
+ new

@@ -1,11 +1,7 @@ # Neutron -Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/neutron`. To experiment with that code, run `bin/console` for an interactive prompt. - -TODO: Delete this and the text above, and describe your gem - ## Installation Add this line to your application's Gemfile: ```ruby @@ -20,20 +16,77 @@ $ gem install neutron ## Usage -TODO: Write usage instructions here +Rake & Neutron sample, which compiles Vala program: +```ruby +# File structure: +# ./Rakefile +# src/main.vala +# src/gui.vala +# src/http.vala +# Required packages: +# glib-2.0 +# gtk+-3.0 +# libsoup-2.4 +# Target file: +# ./sample + +require 'neutron' +require 'neutron/pkgconf' +require 'neutron/cc' +require 'neutron/valac' + +Dir.chdir('src/') # We'll compile our stuff here + +# Neutron::PkgConf checks package availability for us +packages = Neutron::PkgConf.new %w[ + glib-2.0 + gtk+-3.0 + libsoup-2.4 +] + +task :default => :build +task :build => %w[valac link] + +# Compile our sources. Will not compile already compiled +# files because Neutron.files() excludes them +task :valac do + Neutron::Valac.compile( + *Neutron.files(Neutron::FileList['*.vala'], '.vala.o').sources, # Sources + args: packages.to_valac # Provide list of packages to valac + ) +end + +# Link .o files and libraries +task :link do + # Neutron:CC provides methods for using C and C++ compilers + Neutron::CC.link( + *Neutron::FileList['*.vala.o'], # Object files + '../sample', # Target file + args: packages.to_cc(cflags: false) # Package list + ) +end +``` + +## ToDo + +1. Gem-like version-checker +2. Shared-Object builder +3. `install` tool (must install headers, binaries, shared objects) +4. Finders for Boost, SFML, Qt, etc + ## Development After checking out the repo, run `bin/setup` to install dependencies. You can also run `bin/console` for an interactive prompt that will allow you to experiment. To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org). ## Contributing -Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/neutron. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct. +Bug reports and pull requests are welcome on GitHub at https://github.com/handicraftsman/neutron. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct. ## License The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).