Permalink
Browse files

Merge branch 'master' of github.com:mruby/mruby

  • Loading branch information...
2 parents 3d149f6 + 0e529c2 commit 4d3991e561cda90e3ce03aba7602fa62bf577393 @matz matz committed May 2, 2013
Showing with 56 additions and 13 deletions.
  1. +1 −1 MITL
  2. +1 −1 README.md
  3. +41 −10 doc/mrbgems/README.md
  4. +1 −1 include/mruby.h
  5. +12 −0 tasks/mrbgem_spec.rake
View
2 MITL
@@ -1,4 +1,4 @@
-Copyright (c) 2012 mruby developers
+Copyright (c) 2013 mruby developers
Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the "Software"),
View
2 README.md
@@ -71,7 +71,7 @@ documentation with examples under *examples/mrbgems*.
## License
-Copyright (c) 2012 mruby developers
+Copyright (c) 2013 mruby developers
Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the "Software"),
View
51 doc/mrbgems/README.md
@@ -98,19 +98,50 @@ The mrbgems build process will use this specification to compile Object and Ruby
files. The compilation results will be add to *lib/libmruby.a*. This file is used
by tools like `mruby` and `mirb` to empower the GEM functionality.
+The following properties can be set inside of your `MRuby::Gem::Specification` for
+information purpose:
+
+* `spec.license` or `spec.licenses` (A single license or a list of them under which this GEM is licensed)
+* `spec.author` or `spec.authors` (Developer name or a list of them)
+* `spec.version` (Current version)
+* `spec.description` (Detailed description)
+* `spec.summary` (Short summary)
+* `spec.homepage` (Homepage)
+* `spec.requirements` (External requirements as information for user)
+
+It is required for every GEM to have a license and an author!
+
+In case your GEM is depending on other GEMs please use
+`spec.add_dependency(gem, *requirements)` like:
+
+ MRuby::Gem::Specification.new('c_and_ruby_extension_example') do |spec|
+ spec.license = 'MIT'
+ spec.authors = 'mruby developers'
+
+ # add GEM dependency mruby-parser.
+ # Version has to be between 1.0.0 and 1.5.2
+ spec.add_dependency('mruby-parser', '> 1.0.0', '< 1.5.2')
+ end
+
+The usage of versions is optional.
+
+__ATTENTION:__
+The dependency system is currently (May 2013) under development and doesn't check
+or resolve dependencies!
+
In case your GEM has more complex build requirements you can use
the following options additionally inside of your GEM specification:
-* spec.cflags (C compiler flags for this GEM)
-* spec.mruby_cflags (global C compiler flags for everything)
-* spec.mruby_ldflags (global linker flags for everything)
-* spec.mruby_libs (global libraries for everything)
-* spec.mruby_includes (global includes for everything)
-* spec.rbfiles (Ruby files to compile)
-* spec.objs (Object files to compile)
-* spec.test_rbfiles (Ruby test files for integration into mrbtest)
-* spec.test_objs (Object test files for integration into mrbtest)
-* spec.test_preload (Initialization files for mrbtest)
+* `spec.cflags` (C compiler flags)
+* `spec.mruby_cflags` (global C compiler flags for everything)
+* `spec.mruby_ldflags` (global linker flags for everything)
+* `spec.mruby_libs` (global libraries for everything)
+* `spec.mruby_includes` (global includes for everything)
+* `spec.rbfiles` (Ruby files to compile)
+* `spec.objs` (Object files to compile)
+* `spec.test_rbfiles` (Ruby test files for integration into mrbtest)
+* `spec.test_objs` (Object test files for integration into mrbtest)
+* `spec.test_preload` (Initialization files for mrbtest)
## C Extension
View
2 include/mruby.h
@@ -1,7 +1,7 @@
/*
** mruby - An embeddable Ruby implementation
**
-** Copyright (c) mruby developers 2010-2012
+** Copyright (c) mruby developers 2010-2013
**
** Permission is hereby granted, free of charge, to any person obtaining
** a copy of this software and associated documentation files (the
View
12 tasks/mrbgem_spec.rake
@@ -30,6 +30,9 @@ module MRuby
attr_accessor :bins
+ attr_accessor :requirements
+ attr_reader :dependencies
+
attr_block MRuby::Build::COMMANDS
def initialize(name, &block)
@@ -63,6 +66,9 @@ module MRuby
@bins = []
+ @requirements = []
+ @dependencies = []
+
instance_eval(&@initializer)
if !name || !licenses || !authors
@@ -80,6 +86,12 @@ module MRuby
define_gem_init_builder
end
+ def add_dependency(name, *requirements)
+ requirements = ['> 0.0.0'] if requirements.empty?
+ requirements.flatten!
+ @dependencies << [:gem => name, :requirements => requirements]
+ end
+
def self.bin=(bin)
@bins = [bin].flatten
end

0 comments on commit 4d3991e

Please sign in to comment.