53 lines
1.5 KiB
CMake
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"
|
|
) |