diff options
author | Damien George <damien@micropython.org> | 2021-04-08 23:45:28 +1000 |
---|---|---|
committer | Damien George <damien@micropython.org> | 2021-04-09 13:33:26 +1000 |
commit | 212fe7f33e7427899ee245cda5ab1776b38a79e2 (patch) | |
tree | 7f2ceb3285bb5440a9be47e6e95c57d704de6251 | |
parent | 5dcc9b3b16cf6a27acf01bdf8a7d23ae2aff56e3 (diff) |
extmod/extmod.cmake: Add support to build btree module with CMake.
Signed-off-by: Damien George <damien@micropython.org>
-rw-r--r-- | extmod/extmod.cmake | 48 | ||||
-rw-r--r-- | ports/esp32/main/CMakeLists.txt | 2 |
2 files changed, 49 insertions, 1 deletions
diff --git a/extmod/extmod.cmake b/extmod/extmod.cmake index 691c3ce9b..a54047519 100644 --- a/extmod/extmod.cmake +++ b/extmod/extmod.cmake @@ -4,6 +4,8 @@ set(MICROPY_EXTMOD_DIR "${MICROPY_DIR}/extmod") set(MICROPY_OOFATFS_DIR "${MICROPY_DIR}/lib/oofatfs") set(MICROPY_SOURCE_EXTMOD + ${MICROPY_DIR}/lib/embed/abort_.c + ${MICROPY_DIR}/lib/utils/printf.c ${MICROPY_EXTMOD_DIR}/machine_i2c.c ${MICROPY_EXTMOD_DIR}/machine_mem.c ${MICROPY_EXTMOD_DIR}/machine_pulse.c @@ -43,3 +45,49 @@ set(MICROPY_SOURCE_EXTMOD ${MICROPY_EXTMOD_DIR}/virtpin.c ${MICROPY_EXTMOD_DIR}/nimble/modbluetooth_nimble.c ) + +# Library for btree module and associated code + +set(MICROPY_LIB_BERKELEY_DIR "${MICROPY_DIR}/lib/berkeley-db-1.xx") + +if(EXISTS "${MICROPY_LIB_BERKELEY_DIR}/btree/bt_close.c") + add_library(micropy_extmod_btree OBJECT + ${MICROPY_LIB_BERKELEY_DIR}/btree/bt_close.c + ${MICROPY_LIB_BERKELEY_DIR}/btree/bt_conv.c + ${MICROPY_LIB_BERKELEY_DIR}/btree/bt_debug.c + ${MICROPY_LIB_BERKELEY_DIR}/btree/bt_delete.c + ${MICROPY_LIB_BERKELEY_DIR}/btree/bt_get.c + ${MICROPY_LIB_BERKELEY_DIR}/btree/bt_open.c + ${MICROPY_LIB_BERKELEY_DIR}/btree/bt_overflow.c + ${MICROPY_LIB_BERKELEY_DIR}/btree/bt_page.c + ${MICROPY_LIB_BERKELEY_DIR}/btree/bt_put.c + ${MICROPY_LIB_BERKELEY_DIR}/btree/bt_search.c + ${MICROPY_LIB_BERKELEY_DIR}/btree/bt_seq.c + ${MICROPY_LIB_BERKELEY_DIR}/btree/bt_split.c + ${MICROPY_LIB_BERKELEY_DIR}/btree/bt_utils.c + ${MICROPY_LIB_BERKELEY_DIR}/mpool/mpool.c + ) + + target_include_directories(micropy_extmod_btree PRIVATE + ${MICROPY_LIB_BERKELEY_DIR}/PORT/include + ) + + target_compile_definitions(micropy_extmod_btree PRIVATE + __DBINTERFACE_PRIVATE=1 + mpool_error=printf + abort=abort_ + "virt_fd_t=void*" + ) + + # The include directories and compile definitions below are needed to build + # modbtree.c and should be added to the main MicroPython target. + + list(APPEND MICROPY_INC_CORE + "${MICROPY_LIB_BERKELEY_DIR}/PORT/include" + ) + + list(APPEND MICROPY_DEF_CORE + __DBINTERFACE_PRIVATE=1 + "virt_fd_t=void*" + ) +endif() diff --git a/ports/esp32/main/CMakeLists.txt b/ports/esp32/main/CMakeLists.txt index 2bfc09558..2223ecd03 100644 --- a/ports/esp32/main/CMakeLists.txt +++ b/ports/esp32/main/CMakeLists.txt @@ -3,10 +3,10 @@ get_filename_component(MICROPY_DIR ${PROJECT_DIR}/../.. ABSOLUTE) # Include core source components. include(${MICROPY_DIR}/py/py.cmake) -include(${MICROPY_DIR}/extmod/extmod.cmake) if(NOT CMAKE_BUILD_EARLY_EXPANSION) include(${MICROPY_DIR}/py/usermod.cmake) + include(${MICROPY_DIR}/extmod/extmod.cmake) endif() set(MICROPY_QSTRDEFS_PORT |