Skip to content

Commit a28bf63

Browse files
committed
1 parent 66f01c2 commit a28bf63

File tree

5 files changed

+28
-44
lines changed

5 files changed

+28
-44
lines changed

.github/workflows/ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ jobs:
4141
- run: rake mrubyc:pico:debug
4242
- run: |
4343
set -eux
44-
npm --prefix ./lib/rp2040js run start:micropython -- --image $PWD/build_pico/R2P2_PICO-FLASH*.uf2 | tee log.txt &
44+
npm --prefix ./lib/rp2040js run start:micropython -- --image $PWD/build/picoruby/pico/R2P2_PICO-FLASH*.uf2 | tee log.txt &
4545
sleep 10
4646
kill -9 %1
4747
# cat log.txt

.gitignore

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,4 @@
1-
build_pico/
2-
build_pico_w/
3-
build_pico2/
4-
build_pico2_w/
1+
build/
52
.rake_tasks~
63
tags
74
releases/

CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ set (R2P2_VERSION ${CMAKE_VERSION_NUMBER})
1515
set (R2P2_BUILDDATE ${CMAKE_BUILDDATE})
1616
set (R2P2_REVISION ${CMAKE_REVISION})
1717

18-
project("${R2P2_NAME}-${MSC_NAME}-${R2P2_VERSION}-${R2P2_BUILDDATE}-${R2P2_REVISION}")
18+
project("${R2P2_NAME}-${R2P2_VERSION}-${R2P2_BUILDDATE}-${R2P2_REVISION}")
1919

2020
add_compile_options(-Wall
2121
# int != int32_t as far as the compiler is concerned because gcc has int32_t as long int

Rakefile

Lines changed: 24 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -11,17 +11,7 @@ PICO_SDK_TAG = "2.2.0"
1111
PICO_EXTRAS_TAG = "sdk-#{PICO_SDK_TAG}"
1212

1313
def mruby_config(vm, board)
14-
name = (vm == 'mruby' ? 'microruby-' : '')
15-
case board
16-
when 'pico2'
17-
"r2p2-#{name}cortex-m33"
18-
when 'pico_w'
19-
"r2p2_w-#{name}cortex-m0plus"
20-
when 'pico2_w'
21-
"r2p2_w-#{name}cortex-m33"
22-
else
23-
"r2p2-#{name}cortex-m0plus"
24-
end
14+
"r2p2-#{vm}-#{board}"
2515
end
2616

2717
def def_board(board)
@@ -46,27 +36,20 @@ def def_build_type(mode)
4636
end
4737
end
4838

49-
def def_r2p2_name(board)
50-
case board
51-
when 'pico'
52-
'-D R2P2_NAME=R2P2_PICO'
53-
when 'pico2'
54-
'-D R2P2_NAME=R2P2_PICO2'
55-
when 'pico_w'
56-
'-D R2P2_NAME=R2P2_PICO_W'
57-
when 'pico2_w'
58-
'-D R2P2_NAME=R2P2_PICO2_W'
59-
else
60-
raise "Unknown board: #{board}"
61-
end
39+
def def_r2p2_name(vm, board)
40+
"-D R2P2_NAME=R2P2-#{vm.upcase}-#{board.upcase}"
6241
end
6342

6443
def def_msc(mode)
65-
'-D PICORUBY_MSC_FLASH=1 -D MSC_NAME=FLASH_MSC'
44+
'-D PICORUBY_MSC_FLASH=1'
6645
end
6746

6847
def def_picorb_vm(vm)
69-
vm == 'mrubyc' ? '-D PICORB_VM_MRUBYC=1' : '-D PICORB_VM_MRUBY=1'
48+
vm == 'picoruby' ? '-D PICORB_VM_MRUBYC=1' : '-D PICORB_VM_MRUBY=1'
49+
end
50+
51+
def build_dir(vm, board, mode)
52+
"build/#{vm}/#{board}/#{mode}"
7053
end
7154

7255
task :setup do
@@ -76,30 +59,31 @@ task :setup do
7659
end
7760
end
7861

79-
%w[mrubyc mruby].each do |vm|
62+
%w[picoruby microruby].each do |vm|
8063
namespace vm do
8164
%w[pico pico_w pico2 pico2_w].each do |board|
8265
namespace board do
83-
%w[debug production].each do |mode|
84-
desc "Build for #{board} with #{vm} VM (#{mode})"
66+
%w[debug prod].each do |mode|
67+
desc "Build #{vm} for #{board} (#{mode})"
8568
task mode => :check_pico_sdk do
69+
dir = build_dir(vm, board, mode)
70+
FileUtils.mkdir_p dir
8671
FileUtils.cd "lib/picoruby" do
8772
sh "rake test" if ENV['DO_TEST']
8873
sh "MRUBY_CONFIG=#{mruby_config(vm, board)} #{mode=='debug' ? 'PICORUBY_DEBUG=1' : ''} rake"
8974
end
90-
build_dir = "build_#{board}"
9175
defs = <<~DEFS
9276
-D PICO_CYW43_SUPPORTED=1 \
9377
-D MRUBY_CONFIG=#{mruby_config(vm, board)} \
94-
-D BUILD_DIR=#{build_dir} \
78+
-D BUILD_DIR=#{dir} \
9579
#{def_picorb_vm(vm)} \
96-
#{def_r2p2_name(board)} \
80+
#{def_r2p2_name(vm, board)} \
9781
#{def_board(board)} \
9882
#{def_build_type(mode)} \
9983
#{def_msc(mode)}
10084
DEFS
101-
sh "cmake -B #{build_dir} #{defs}"
102-
sh "cmake --build #{build_dir}"
85+
sh "cmake -B #{dir} #{defs}"
86+
sh "cmake --build #{dir}"
10387
end
10488
end
10589
end
@@ -108,17 +92,20 @@ end
10892
end
10993

11094
namespace :clean do
111-
%w[mrubyc mruby].each do |vm|
95+
%w[picoruby microruby].each do |vm|
11296
namespace vm do
11397
%w[pico pico_w pico2 pico2_w].each do |board|
114-
desc "Clean build for #{board} with #{vm} VM"
98+
desc "Clean #{vm} for #{board} (both debug and prod)"
11599
task board do
116100
FileUtils.cd "lib/picoruby" do
117101
if File.exist?("build_config/#{mruby_config(vm, board)}.rb")
118102
sh "MRUBY_CONFIG=#{mruby_config(vm, board)} rake clean"
119103
end
120104
end
121-
FileUtils.rm_f(Dir["build_#{board}/R2P2*.*"])
105+
%w[debug prod].each do |mode|
106+
dir = build_dir(vm, board, mode)
107+
FileUtils.rm_f(Dir["#{dir}/R2P2*.*"]) if Dir.exist? dir
108+
end
122109
end
123110
end
124111
end

0 commit comments

Comments
 (0)