| Age | Commit message (Collapse) | Author |
|
|
|
ref #3267 #3470
By this commit, mruby do not use C++ ABI mode unless
you specify explicitly. It compiles C files by C
compilers, with C++ exception enabled when it sees
C++ files in your configured mrbgems.
I haven't tried visualcpp, so please submit an issue
if you see any problem with C++ gems on Windows.
|
|
Since mgem's function almost the same as git gems, but you can see they already
avoid pulling from source after the gem has already been cloned.
You can see from the `load_special_path_gem` method found in the file
`mruby_build_gem.rake`, or extracted here:
```ruby
if File.exist? mgem_list_dir
git.run_pull mgem_list_dir, mgem_list_url if $pull_gems
else
FileUtils.mkdir_p mgem_list_dir
git.run_clone mgem_list_dir, mgem_list_url, "--depth 1"
end
```
Also, later in this same method; mgem will set the `git` params.
Doing this will trigger the following block:
```ruby
if File.exist?(gemdir)
if $pull_gems
git.run_pull gemdir, url
else
gemdir
end
else
# ... clone
end
```
You can see here, this checks if `$pull_gems` is enabled before pulling.
Lastly, the final condition for this method is here:
```ruby
if params[:checksum_hash]
# Jump to the specified commit
git.run_checkout gemdir, params[:checksum_hash]
else
# Jump to the top of the branch
git.run_checkout gemdir, branch if $pull_gems
end
```
What we changed was the `else` condition of this block to follow the same
behavior as the aforementioned code. In doing so, we can avoid two things:
* Excess `clone` calls can slow down builds (times number of gems used)
* We _don't_ want our code to _update_ during build
To explain, if during build time there are some changes in the gem we are
depending upon: updating during compile time could actually break our
application.
This is what we're trying to avoid.
|
|
|
|
|
|
Add —-recursive option to automatically update submodules from git mgems
|
|
|
|
|
|
https://github.com/mruby/mgem-list ).
|
|
|
|
Some tools may be written in C++.
|
|
|
|
This allows to use a mgem with a specific checksum hash.
The following modification were necessary to implement this
function:
- add run_checkout build command to use 'git checkout'
- skip shallow copy in case checksum_hash is used
- make 'master' the default branch if branch isn't defined
|
|
|
|
|
|
|
|
- File.exists? is deprecated since 2.1.0
- tasks/mruby_build_commands.rake:268: ambiguous argument
|
|
|
|
In the case where a relative path is specified to a gembox from
build_config.rb, it was previously tricky to specify relative gem paths
from inside that gembox.
For example, consider a project in which mruby is checked out as a
submodule in the project root:
+- project_root
|
+- mruby/
| |
| +- build_config.rb
| |
| +- ...
|
+- my_gembox/
|
+- my_gembox.gembox
|
+- my_gem/
|
+- mrbgem.rake
|
+- ...
If build_config.rb refers to my_gembox with a relative path, it's
difficult for my_gembox to then refer to my_gem. With this proposed
change, my_gembox.gembox can look like this:
MRuby::GemBox.new do |conf|
conf.gem "my_gem"
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|