diff options
| -rw-r--r-- | MITL | 2 | ||||
| -rw-r--r-- | README.md | 2 | ||||
| -rw-r--r-- | doc/mrbgems/README.md | 51 | ||||
| -rw-r--r-- | include/mruby.h | 2 | ||||
| -rw-r--r-- | tasks/mrbgem_spec.rake | 12 |
5 files changed, 56 insertions, 13 deletions
@@ -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"), @@ -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"), diff --git a/doc/mrbgems/README.md b/doc/mrbgems/README.md index 1ad39a02b..f821379de 100644 --- a/doc/mrbgems/README.md +++ b/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 diff --git a/include/mruby.h b/include/mruby.h index 1317ee17d..be52e962b 100644 --- a/include/mruby.h +++ b/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 diff --git a/tasks/mrbgem_spec.rake b/tasks/mrbgem_spec.rake index 468a594ac..7b6751390 100644 --- a/tasks/mrbgem_spec.rake +++ b/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 |
