MRuby_MCUXpresso/CMakeLists.txt

53 lines
1.5 KiB
CMake

cmake_minimum_required(VERSION 3.10)
project(mruby_mcux)
# Specify mRuby configuration file via variables
if(NOT DEFINED MRUBY_MCUX_TARGET)
message(WARNING "MRUBY_MCUX_TARGET not defined, using default.")
set(MRUBY_MCUX_TARGET imxrt1052) # Default target
endif()
add_custom_command(
OUTPUT
"mruby/${MRUBY_MCUX_TARGET}/lib/libmruby.a__" # FIXME: Force the target run every time...
"mruby/${MRUBY_MCUX_TARGET}/lib/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_libs
DEPENDS
"mruby/${MRUBY_MCUX_TARGET}/lib/libmruby.a__" # FIXME: Force the target run every time...
"mruby/${MRUBY_MCUX_TARGET}/lib/libmruby.a"
)
set_target_properties(mruby_libs PROPERTIES
ADDITIONAL_CLEAN_FILES "${CMAKE_CURRENT_BINARY_DIR}/mruby"
)
add_library(${PROJECT_NAME} INTERFACE)
add_dependencies(${PROJECT_NAME} mruby_libs)
target_include_directories(${PROJECT_NAME} INTERFACE
"${CMAKE_CURRENT_BINARY_DIR}/mruby/${MRUBY_MCUX_TARGET}/include"
"mruby/include"
"mrbgems"
)
target_link_directories(${PROJECT_NAME} INTERFACE
"${CMAKE_CURRENT_BINARY_DIR}/mruby/${MRUBY_MCUX_TARGET}/lib"
)
target_link_libraries(${PROJECT_NAME} INTERFACE
"mruby"
"c"
"m"
)