mcbuild 0.0.20 → 0.0.25

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/mcbuild.rb +44 -5
  3. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0b80f613f68e560197d7899581224a133e145e72
4
- data.tar.gz: f0a804299d1c9638b16bea67f6727ea12feee00b
3
+ metadata.gz: 599ebcf5fb1a22decc4ed9c16cb970ab6a5a7196
4
+ data.tar.gz: 3f32fed9a52705a080ee18d5083c37b9d3242154
5
5
  SHA512:
6
- metadata.gz: 515d1ca6c34105a29e9726efe680170262914ec662c2a7835394721382c11a48e306de88a3963f02c540844eb225a3da56d7f46a3e687831b13ba69cb21f593b
7
- data.tar.gz: 999cd1576866712678a0b8d993dd53be25fbcbbf94ff9e6a36b8c654d0835a67b3aee1ae197ae60b7333c2544025b59c0fe646466496975714325a0ad0bd5575
6
+ metadata.gz: de764a8d147f0fdc176bb18796e9192639210d4e254314b93ab21db18561894f9aa1fa0e97108a1a50c483ec61be9b1e5d6f45ca84be6438a5f08b6a2e7d672c
7
+ data.tar.gz: 9b5ea6411442dcb062f0624bd63e48b3f4d5804a7df0756e21ead6dc200bc932d4d01bf985c8101557bd9507d127730665a7b15bff72f3e45929b07363a284c7
data/lib/mcbuild.rb CHANGED
@@ -2,6 +2,17 @@
2
2
  require 'find'
3
3
  require 'fileutils'
4
4
 
5
+ class MCTarget
6
+ def self.RaspberryPi2
7
+ #'armv7l-unknown-linux-gnueabihf'
8
+ 'arm-eabi -marm -mfpu=vfp -mcpu=arm1176jzf-s -mtune=arm1176jzf-s -mfloat-abi=hard'
9
+ end
10
+
11
+ def self.MacOS
12
+ 'x86_64-apple-darwin'
13
+ end
14
+ end
15
+
5
16
  class MCConfig
6
17
  def self.support_machines
7
18
  ['x86_64', 'armv6', 'armv7', 'armv7s', 'arm64']
@@ -107,7 +118,8 @@ class MCBuild
107
118
  end
108
119
 
109
120
  def initialize(dir)
110
- @mach = MCBuild.detect_machine
121
+ @target = ''
122
+ @mach = ''
111
123
  @flags = MCBuild.detect_machine_macro
112
124
 
113
125
  @d = remove_slash(dir)
@@ -168,6 +180,11 @@ class MCBuild
168
180
  self
169
181
  end
170
182
 
183
+ def set_target(target)
184
+ @target = target
185
+ self
186
+ end
187
+
171
188
  def set_arch(arch)
172
189
  @mach = arch
173
190
  self
@@ -196,7 +213,7 @@ class MCBuild
196
213
  def info
197
214
  puts "Monk-C compiler use settings:"
198
215
  puts "--------------------------------"
199
- puts " CPU Arch -> #{@mach}"
216
+ puts " CPU target -> #{@target}"
200
217
  puts " C standard -> #{@std}"
201
218
  puts " name -> #{@name}"
202
219
  puts " filename extension -> #{@fext}"
@@ -286,14 +303,35 @@ class MCBuild
286
303
  self
287
304
  end
288
305
 
289
- def compile_file(file)
290
- base = File.basename(file, ".c")
306
+ def compiler_command
291
307
  cmd = "cc"
308
+ if @target != ''
309
+ cmd += " -target #{@target}"
310
+ end
292
311
  if @mach != ''
293
312
  cmd += " -arch #{@mach}"
294
313
  end
295
314
  cmd += " -std=#{@std}"
296
315
  cmd += " #{@flags}"
316
+ cmd
317
+ end
318
+
319
+ def linker_command
320
+ cmd = "cc"
321
+ if @target != ''
322
+ cmd += " -target #{@target}"
323
+ end
324
+ if @mach != ''
325
+ cmd += " -arch #{@mach}"
326
+ end
327
+ #cmd += " -std=#{@std}"
328
+ #cmd += " #{@flags}"
329
+ cmd
330
+ end
331
+
332
+ def compile_file(file)
333
+ base = File.basename(file, ".c")
334
+ cmd = compiler_command
297
335
  cmd += " -c -o #{@d}/#{@outpath}/#{base}#{@oext} #{file} #{@compile_arg}"
298
336
  puts(cmd)
299
337
  system(cmd)
@@ -329,7 +367,8 @@ class MCBuild
329
367
  end
330
368
 
331
369
  def archive_exe
332
- cmd = "cc -o #{@d}/#{@outpath}/archive/#{@name} #{@d}/#{@outpath}/*#{@oext} #{@link_arg}"
370
+ cmd = linker_command
371
+ cmd += " -o #{@d}/#{@outpath}/archive/#{@name} #{@d}/#{@outpath}/*#{@oext} #{@link_arg}"
333
372
  puts(cmd)
334
373
  system(cmd)
335
374
  self
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mcbuild
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.20
4
+ version: 0.0.25
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sun Yuli