mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
Add native and cross compiling CMake build support
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
# build standalone mrbtest runner containing all *.rb tests
|
||||
|
||||
if(NOT CMAKE_CROSSCOMPILING)
|
||||
|
||||
file(GLOB MRBTEST_SRC_RB "assert.rb" "t/*.rb")
|
||||
|
||||
# generate a single rb file from all existing test *.rb
|
||||
add_custom_command(OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/mrbtest.rbtmp"
|
||||
DEPENDS xpcat
|
||||
COMMAND xpcat -o "${CMAKE_CURRENT_BINARY_DIR}/mrbtest.rbtmp" ${MRBTEST_SRC_RB}
|
||||
)
|
||||
|
||||
# mruby compile and generate C byte array representation
|
||||
add_custom_command(OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/mrbtest.ctmp"
|
||||
DEPENDS mrbc "${CMAKE_CURRENT_BINARY_DIR}/mrbtest.rbtmp"
|
||||
COMMAND mrbc -Bmrbtest_irep -o"${CMAKE_CURRENT_BINARY_DIR}/mrbtest.ctmp"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/mrbtest.rbtmp"
|
||||
)
|
||||
|
||||
# aggregate mruby's *.rb test files as a single C file
|
||||
add_custom_command(OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/mrbtest.c"
|
||||
DEPENDS xpcat init_mrbtest.c "${CMAKE_CURRENT_BINARY_DIR}/mrbtest.ctmp"
|
||||
COMMAND xpcat -o "${CMAKE_CURRENT_BINARY_DIR}/mrbtest.c"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/init_mrbtest.c"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/mrbtest.ctmp"
|
||||
)
|
||||
|
||||
add_executable(mrbtest
|
||||
EXCLUDE_FROM_ALL
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/driver.c"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/mrbtest.c"
|
||||
)
|
||||
target_link_libraries(mrbtest libmruby_static ${MRUBY_LIBS})
|
||||
|
||||
add_custom_target(test
|
||||
DEPENDS mrbtest
|
||||
COMMAND "${CMAKE_CURRENT_BINARY_DIR}/mrbtest"
|
||||
)
|
||||
|
||||
endif()
|
||||
|
||||
# vim: ts=2 sts=2 sw=2 et
|
||||
Reference in New Issue
Block a user