mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
Merge branch 'master' of github.com:mruby/mruby
This commit is contained in:
@@ -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"),
|
||||
|
||||
+41
-10
@@ -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
|
||||
|
||||
|
||||
+1
-1
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user