diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2012-05-22 10:13:08 -0700 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2012-05-22 10:13:08 -0700 |
| commit | 618697cbb6f2cb96f6e7d076d2beda3bb98b2577 (patch) | |
| tree | 283f3971bb4ff37ef137853bc89154fa13c04edd /test | |
| parent | 1eb02552eae24854f66ecc32104f6c2dcf6a9efb (diff) | |
| parent | 9f89da6eef2c830db6fc3abb08fe755ae7ce9b6c (diff) | |
| download | mruby-618697cbb6f2cb96f6e7d076d2beda3bb98b2577.tar.gz mruby-618697cbb6f2cb96f6e7d076d2beda3bb98b2577.zip | |
Merge pull request #182 from thecodeshop/cmake
Add CMake build infrastructure
Diffstat (limited to 'test')
| -rw-r--r-- | test/CMakeLists.txt | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt new file mode 100644 index 000000000..45031fc72 --- /dev/null +++ b/test/CMakeLists.txt @@ -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 |
