Skip to content

Commit e505937

Browse files
committed
rake sqlite3 (confirmed only it is buildable)
1 parent d0bef2d commit e505937

File tree

4 files changed

+62
-59
lines changed

4 files changed

+62
-59
lines changed

CMakeLists.txt

Lines changed: 18 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,10 @@ cmake_minimum_required(VERSION 3.24)
44
# note: this must happen before project()
55
include(pico_sdk_import.cmake)
66

7+
#####################################################
8+
# project specific configuration from here
9+
710
add_definitions(
8-
-DNDEBUG
911
-DMRBC_USE_HAL_RP2040
1012
-DMRBC_REQUIRE_32BIT_ALIGNMENT
1113
-DMAX_REGS_SIZE=256
@@ -16,14 +18,6 @@ add_definitions(
1618
-DPICORBC_PTR_SIZE=4
1719
-DNO_CLOCK_GETTIME=1
1820
)
19-
if(PICORUBY_NO_MSC)
20-
add_definitions(-DPICORUBY_NO_MSC)
21-
else()
22-
add_definitions(-DPICORUBY_MSC_FLASH)
23-
endif()
24-
25-
#####################################################
26-
# project specific configuration from here
2721

2822
execute_process (COMMAND date +%Y%m%d OUTPUT_VARIABLE CMAKE_BUILDDATE OUTPUT_STRIP_TRAILING_WHITESPACE)
2923
execute_process (COMMAND git rev-parse --short HEAD OUTPUT_VARIABLE CMAKE_REVISION OUTPUT_STRIP_TRAILING_WHITESPACE)
@@ -33,10 +27,17 @@ set (PRK_BUILDDATE ${CMAKE_BUILDDATE})
3327
set (PRK_REVISION ${CMAKE_REVISION})
3428
configure_file ("${CMAKE_SOURCE_DIR}/include/version.h.in" "${CMAKE_SOURCE_DIR}/include/version.h")
3529

36-
if(PICORUBY_NO_MSC)
37-
project("prk_firmware-${PRK_VERSION}-${PRK_BUILDDATE}-no_msc")
30+
if(DEFINED ENV{PICORUBY_NO_MSC})
31+
add_definitions(-DPICORUBY_NO_MSC)
32+
project("prk_firmware-no_msc-${PRK_VERSION}-${PRK_BUILDDATE}-${PRK_REVISION}")
3833
else()
39-
project("prk_firmware-${PRK_VERSION}-${PRK_BUILDDATE}-${PRK_REVISION}")
34+
add_definitions(-DPICORUBY_MSC_FLASH)
35+
if(DEFINED ENV{PICORUBY_SQLITE3})
36+
add_definitions(-DPICORUBY_SQLITE3)
37+
project("prk_firmware-sqlite3-${PRK_VERSION}-${PRK_BUILDDATE}-${PRK_REVISION}")
38+
else()
39+
project("prk_firmware-${PRK_VERSION}-${PRK_BUILDDATE}-${PRK_REVISION}")
40+
endif()
4041
endif()
4142

4243
# Initializing the Raspberry Pi Pico SDK should happen after project created
@@ -46,6 +47,7 @@ file(GLOB SRCS src/*.c)
4647
add_executable(${PROJECT_NAME}
4748
${SRCS}
4849
${CMAKE_SOURCE_DIR}/lib/picoruby/mrbgems/picoruby-filesystem-fat/ports/rp2040/flash_disk.c
50+
${CMAKE_SOURCE_DIR}/lib/picoruby/mrbgems/picoruby-filesystem-fat/ports/rp2040/sd_disk.c
4951
${CMAKE_SOURCE_DIR}/lib/picoruby/mrbgems/picoruby-filesystem-fat/ports/rp2040/msc_disk.c
5052
${CMAKE_SOURCE_DIR}/lib/picoruby/mrbgems/picoruby-gpio/ports/rp2040/gpio.c
5153
${CMAKE_SOURCE_DIR}/lib/picoruby/mrbgems/picoruby-i2c/ports/rp2040/i2c.c
@@ -63,7 +65,10 @@ set(RBC ${CMAKE_CURRENT_SOURCE_DIR}/lib/picoruby/bin/picorbc)
6365

6466
# Ruby
6567

66-
if(PICORUBY_NO_MSC)
68+
if(DEFINED ENV{PICORUBY_NO_MSC})
69+
add_dependencies(${PROJECT_NAME}
70+
keymap
71+
)
6772
add_custom_target(keymap
6873
COMMAND ${RBC} -Bkeymap -o ./keymap.c ../keymap.rb
6974
WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
@@ -100,12 +105,6 @@ add_dependencies(${PROJECT_NAME}
100105
${RUBY_TASK_FILES}
101106
)
102107

103-
if(PICORUBY_NO_MSC)
104-
add_dependencies(${PROJECT_NAME}
105-
keymap
106-
)
107-
endif()
108-
109108
target_include_directories(${PROJECT_NAME} PRIVATE
110109
${CMAKE_SOURCE_DIR}/tinyusb
111110
${CMAKE_SOURCE_DIR}/lib/picoruby/include/hal_no_impl

Rakefile

Lines changed: 38 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
require "fileutils"
22

3-
MRUBY_CONFIG = "prk_firmware-cortex-m0plus"
3+
ENV['MRUBY_CONFIG'] = "prk_firmware-cortex-m0plus"
44
PICO_SDK_TAG = "1.5.0"
55

6-
task :default => :all
6+
task :default => :production
77

88
task :setup do
99
sh "bundle install"
@@ -13,40 +13,53 @@ task :setup do
1313
end
1414
end
1515

16-
desc "build production"
17-
task :all => [:libmruby, :test, :cmake_production, :build]
16+
task :all => [:libmruby, :test, :cmake, :build]
17+
1818

1919
desc "build debug (you may need to rake clean before this)"
20-
task :debug => [:libmruby, :test, :cmake_debug, :build]
20+
task :debug do
21+
ENV['PICORUBY_DEBUG'] = '1'
22+
ENV['-DCMAKE_BUILD_TYPE'] = 'Debug'
23+
Rake::Task[:all].invoke
24+
end
2125

22-
file "lib/picoruby" do
23-
sh "git submodule update --init --recursive"
26+
desc "build production"
27+
task :production do
28+
Rake::Task[:all].invoke
2429
end
2530

26-
task :libmruby_no_msc => "lib/picoruby" do
27-
FileUtils.cd "lib/picoruby" do
28-
sh "rake test"
29-
sh "CFLAGS='-DPICORUBY_NO_MSC=1' MRUBY_CONFIG=#{MRUBY_CONFIG} rake"
31+
desc "build PRK Firmware inclusive of keymap.rb (without mass storage)"
32+
task :build_with_keymap, ['keyboard_name'] do |_t, args|
33+
unless args.keyboard_name
34+
raise "Argument `keyboard_name` missing.\nUsage: rake build_with_keymap[prk_meishi2]"
3035
end
36+
dir = "keyboards/#{args.keyboard_name}"
37+
FileUtils.mkdir_p "#{dir}/build"
38+
ENV['PICORUBY_NO_MSC'] = '1'
39+
ENV['PRK_BUILD_DIR'] = "#{dir}/"
40+
Rake::Task[:all].invoke
3141
end
3242

33-
task :libmruby => "lib/picoruby" do
34-
FileUtils.cd "lib/picoruby" do
35-
sh "rake test"
36-
sh "MRUBY_CONFIG=#{MRUBY_CONFIG} rake"
37-
end
43+
desc "build production with SQLite3 and SD card"
44+
task :sqlite3 do
45+
ENV['PICORUBY_SQLITE3'] = '1'
46+
ENV['PICORUBY_SD_CARD'] = '1'
47+
Rake::Task[:all].invoke
3848
end
3949

40-
def mruby_config
41-
"MRUBY_CONFIG=#{MRUBY_CONFIG}"
50+
file "lib/picoruby" do
51+
sh "git submodule update --init --recursive"
4252
end
4353

44-
task :cmake_debug do
45-
sh "#{mruby_config} cmake -DCMAKE_BUILD_TYPE=Debug -B build"
54+
task :libmruby => "lib/picoruby" do
55+
FileUtils.cd "lib/picoruby" do
56+
sh "rake test"
57+
sh "rake"
58+
end
4659
end
4760

48-
task :cmake_production do
49-
sh "#{mruby_config} cmake -B build"
61+
task :cmake do
62+
sh "cmake -B #{ENV['PRK_BUILD_DIR']}build"
5063
end
5164

5265
task :check_pico_sdk => :check_pico_sdk_path do
@@ -71,19 +84,7 @@ end
7184

7285
desc "build without cmake preparation"
7386
task :build => :check_pico_sdk do
74-
sh "cmake --build build"
75-
end
76-
77-
desc "build PRK Firmware inclusive of keymap.rb (without mass storage)"
78-
task :build_with_keymap, ['keyboard_name'] => [:libmruby_no_msc, :test] do |_t, args|
79-
unless args.keyboard_name
80-
raise "Argument `keyboard_name` missing.\nUsage: rake build_with_keymap[prk_meishi2]"
81-
end
82-
dir = "keyboards/#{args.keyboard_name}"
83-
FileUtils.mkdir_p "#{dir}/build"
84-
#sh "cmake -DPICORUBY_NO_MSC=1 -DCMAKE_BUILD_TYPE=Debug -B #{dir}/build"
85-
sh "#{mruby_config} cmake -DPICORUBY_NO_MSC=1 -B #{dir}/build"
86-
sh "cmake --build #{dir}/build"
87+
sh "cmake --build #{ENV['PRK_BUILD_DIR']}build"
8788
end
8889

8990
desc "clean built that includes keymap"
@@ -119,7 +120,7 @@ end
119120
desc "clean built"
120121
task :clean do
121122
FileUtils.cd "lib/picoruby" do
122-
sh "MRUBY_CONFIG=#{MRUBY_CONFIG} rake clean"
123+
sh "rake clean"
123124
end
124125
FileUtils.cd "build" do
125126
FileUtils.rm_rf Dir.glob("prk_firmware-*.*")
@@ -134,7 +135,7 @@ end
134135
desc "deep clean built"
135136
task :deep_clean do
136137
FileUtils.cd "lib/picoruby" do
137-
sh "MRUBY_CONFIG=#{MRUBY_CONFIG} rake deep_clean"
138+
sh "rake deep_clean"
138139
end
139140
FileUtils.cd "build" do
140141
FileUtils.rm_rf Dir.glob("*")

src/main.c

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,11 @@
3131
#include <keymap.c>
3232
#endif
3333

34-
35-
#define MEMORY_SIZE (1024*200)
34+
#if defined(PICORUBY_SQLITE3)
35+
#define MEMORY_SIZE (1024*190)
36+
#else
37+
#define MEMORY_SIZE (1024*200)
38+
#endif
3639

3740
static uint8_t memory_pool[MEMORY_SIZE];
3841

0 commit comments

Comments
 (0)