FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
mruby/tasks/mruby_build_gem.rake at master · clockmaker002/mruby · GitHub
clockmaker002
/
mruby
Public
forked from
mruby/mruby
Notifications
You must be signed in to change notification settings
Fork
0
Star
0
Code
Pull requests
0
Actions
Projects
Wiki
Security and quality
0
Insights
Additional navigation options
Code
Pull requests
Actions
Projects
Wiki
Security and quality
Insights
Expand file tree
Breadcrumbs
mruby
/
tasks
/
mruby_build_gem.rake
Copy path
More file actions
More file actions
Latest commit
History
History
History
122 lines (102 loc) · 3.82 KB
Breadcrumbs
mruby
/
tasks
/
mruby_build_gem.rake
Copy path
File metadata and controls
122 lines (102 loc) · 3.82 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
module
MRuby
module
LoadGems
def
gembox
(
gemboxfile
)
gembox
=
File
.
expand_path
(
"
#{
gemboxfile
}
.gembox"
,
"
#{
MRUBY_ROOT
}
/mrbgems"
)
fail
"Can't find gembox '
#{
gembox
}
'"
unless
File
.
exist?
(
gembox
)
GemBox
.
config
=
self
GemBox
.
path
=
gembox
instance_eval
File
.
read
(
gembox
)
GemBox
.
path
=
nil
end
def
gem
(
gemdir
,
&
block
)
caller_dir
=
File
.
expand_path
(
File
.
dirname
(
/^(.*?):
\d
/
.
match
(
caller
.
first
)
.
to_a
[
1
]
)
)
if
gemdir
.
is_a?
(
Hash
)
gemdir
=
load_special_path_gem
(
gemdir
)
elsif
GemBox
.
path
&&
gemdir
.
is_a?
(
String
)
gemdir
=
File
.
expand_path
(
gemdir
,
File
.
dirname
(
GemBox
.
path
)
)
else
gemdir
=
File
.
expand_path
(
gemdir
,
caller_dir
)
end
gemrake
=
File
.
join
(
gemdir
,
"mrbgem.rake"
)
fail
"Can't find
#{
gemrake
}
"
unless
File
.
exist?
(
gemrake
)
Gem
.
current
=
nil
load
gemrake
return
nil
unless
Gem
.
current
Gem
.
current
.
dir
=
gemdir
Gem
.
current
.
build
=
self
.
is_a?
(
MRuby
::
Build
)
?
self
:
MRuby
::
Build
.
current
Gem
.
current
.
build_config_initializer
=
block
gems
<<
Gem
.
current
cxx_srcs
=
[
'src'
,
'test'
,
'tools'
]
.
map
do
|
subdir
|
Dir
.
glob
(
"
#{
Gem
.
current
.
dir
}
/
#{
subdir
}
/*.{cpp,cxx,cc}"
)
end
.
flatten
enable_cxx_abi
unless
cxx_srcs
.
empty?
Gem
.
current
end
def
load_special_path_gem
(
params
)
if
params
[
:github
]
params
[
:git
]
=
"https://github.com/
#{
params
[
:github
]
}
.git"
elsif
params
[
:bitbucket
]
if
params
[
:method
]
==
"ssh"
params
[
:git
]
=
"git@bitbucket.org:
#{
params
[
:bitbucket
]
}
.git"
else
params
[
:git
]
=
"https://bitbucket.org/
#{
params
[
:bitbucket
]
}
.git"
end
elsif
params
[
:mgem
]
mgem_list_dir
=
"
#{
gem_clone_dir
}
/mgem-list"
mgem_list_url
=
'https://github.com/mruby/mgem-list.git'
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
require
'yaml'
conf_path
=
"
#{
mgem_list_dir
}
/
#{
params
[
:mgem
]
}
.gem"
conf_path
=
"
#{
mgem_list_dir
}
/mruby-
#{
params
[
:mgem
]
}
.gem"
unless
File
.
exist?
conf_path
fail
"mgem not found:
#{
params
[
:mgem
]
}
"
unless
File
.
exist?
conf_path
conf
=
YAML
.
load
File
.
read
conf_path
fail
"unknown mgem protocol:
#{
conf
[
'protocol'
]
}
"
if
conf
[
'protocol'
]
!=
'git'
params
[
:git
]
=
conf
[
'repository'
]
params
[
:branch
]
=
conf
[
'branch'
]
if
conf
[
'branch'
]
end
if
params
[
:core
]
gemdir
=
"
#{
root
}
/mrbgems/
#{
params
[
:core
]
}
"
elsif
params
[
:path
]
require
'pathname'
gemdir
=
Pathname
.
new
(
params
[
:path
]
)
.
absolute?
?
params
[
:path
]
:
"
#{
root
}
/
#{
params
[
:path
]
}
"
elsif
params
[
:git
]
url
=
params
[
:git
]
gemdir
=
"
#{
gem_clone_dir
}
/
#{
url
.
match
(
/([-
\w
]+)(
\.
[-
\w
]+|)$/
)
.
to_a
[
1
]
}
"
# by default the 'master' branch is used
branch
=
params
[
:branch
]
?
params
[
:branch
]
:
'master'
if
File
.
exist?
(
gemdir
)
if
$pull_gems
git
.
run_pull
gemdir
,
url
else
gemdir
end
else
options
=
[
params
[
:options
]
]
||
[
]
options
<<
"--recursive"
options
<<
"--branch
\"
#{
branch
}
\"
"
options
<<
"--depth 1"
unless
params
[
:checksum_hash
]
FileUtils
.
mkdir_p
"
#{
gem_clone_dir
}
"
git
.
run_clone
gemdir
,
url
,
options
end
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
else
fail
"unknown gem option
#{
params
}
"
end
gemdir
end
def
enable_gems?
!
@gems
.
empty?
end
end
# LoadGems
end
# MRuby
Back
|
FazBrowse Home
|
New Git URL