-
Notifications
You must be signed in to change notification settings - Fork 2
/
Rakefile
51 lines (42 loc) · 1.61 KB
/
Rakefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
mruby_version = '2.0.0'
task default: 'build_mruby'
desc 'Clean the project build files'
task :clean do
FileUtils.remove_dir 'ios/MRuby.framework', true
FileUtils.remove_dir 'tvos/MRuby.framework', true
FileUtils.remove_dir 'mruby/build', true
end
desc 'Build MRuby for iOS and tvOS'
task :build_mruby => :clean do
Dir.chdir('mruby') do
ENV['MRUBY_CONFIG'] = '../build_config.rb'
system 'rake'
Dir.chdir('build') do
FileUtils.mkdir_p 'ios-universal'
`lipo ios/lib/libmruby.a ios-simulator/lib/libmruby.a -create -output ios-universal/libmruby.a`
FileUtils.mkdir_p 'tvos-universal'
`lipo tvos/lib/libmruby.a tvos-simulator/lib/libmruby.a -create -output tvos-universal/libmruby.a`
end
end
FileUtils.mkdir_p 'ios/MRuby.framework/Headers'
FileUtils.cp_r 'mruby/include/.', 'ios/MRuby.framework/Headers'
FileUtils.cp 'Info.plist', 'ios/MRuby.framework'
FileUtils.cp 'mruby/build/ios-universal/libmruby.a', 'ios/MRuby.framework/MRuby'
FileUtils.mkdir_p 'tvos/MRuby.framework/Headers'
FileUtils.cp_r 'mruby/include/.', 'tvos/MRuby.framework/Headers'
FileUtils.cp 'Info.plist', 'tvos/MRuby.framework'
FileUtils.cp 'mruby/build/tvos-universal/libmruby.a', 'tvos/MRuby.framework/MRuby'
end
desc 'Set MRuby submodule to latest release'
task :mruby_latest do
system 'git submodule update --remote && '\
'cd mruby && '\
"git checkout tags/#{mruby_version}"
end
desc 'Set MRuby submodule to master branch'
task :mruby_master do
system 'git submodule update --remote && '\
'cd mruby && '\
'git checkout master && '\
'git pull --rebase'
end