cmake_minimum_required(VERSION 3.10) project(mruby_mcux) if(NOT DEFINED MRUBY_MCUX_TARGET) message(WARNING "MRUBY_MCUX_TARGET not defined, using default.") set(MRUBY_MCUX_TARGET imxrt10xx) endif() add_custom_command(OUTPUT libmruby.a COMMAND "${CMAKE_COMMAND}" "-E" "env" "MRUBY_CONFIG=${CMAKE_CURRENT_SOURCE_DIR}/configs/${MRUBY_MCUX_TARGET}.rb" "MRUBY_BUILD_DIR=${CMAKE_CURRENT_BINARY_DIR}/mruby" "INSTALL_DIR=${CMAKE_CURRENT_BINARY_DIR}/mruby/bin" "./minirake" WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/mruby" ) add_custom_target(mruby DEPENDS "libmruby.a" ) set_target_properties(mruby PROPERTIES ADDITIONAL_CLEAN_FILES "${CMAKE_CURRENT_BINARY_DIR}/mruby" ) add_library(${PROJECT_NAME} INTERFACE) target_link_libraries(${PROJECT_NAME} INTERFACE "mruby" "mruby_core" ) target_link_directories(${PROJECT_NAME} INTERFACE "${CMAKE_CURRENT_BINARY_DIR}/mruby/${MRUBY_MCUX_TARGET}/lib"