CMake/CTest 与 wine/qemu 整合
CMake/CTest integration with wine/qemu
我有:
我为包括
在内的不同平台开发原生 unity 插件
- iOS
- Android
- Windows
- OSX
我使用 cmake
作为构建系统,使用 ctest
作为单元测试
我的构建环境 - osx
,所以 运行 在 osx 上进行单元测试不是问题。
我也知道为了测试 Android 和 Windows 我可以相应地使用 qemu
和 wine
。
问题:
我只是想知道 cmake/ctest
提供任何变量来指定某些模拟器,例如 wine
或 qemu
?或者我应该为此编写一些自定义脚本吗?
如何在 iOS(设备或模拟器)上 运行 本机单元测试? qemu
可以吗?
我已经为 wine
编写了自己的解决方案
WineCTestWrapper.cmake:
macro (add_wine_test_wrapper_script TEST)
set(TESTNAME ${TEST})
configure_file (
${PROJECT_SOURCE_DIR}/thirdparty/cmake/modules/WineCTestWrapper.sh.in
${CMAKE_CURRENT_BINARY_DIR}/${TESTNAME} @ONLY
)
endmacro ()
WineCTestWrapper.sh.in:
#!/bin/bash
# simple wrapper for windows PE-executable format
wine @TESTNAME@.exe
使用方法:
include(WineCTestWrapper)
...
find_program(WINE_FOUND wine)
add_test(some_test some_test)
if(WINE_FOUND)
add_wine_test_wrapper_script(some_test)
endif()
请注意,默认情况下 MXE 创建带有 .exe
后缀的可执行文件,此解决方案使用此 'feature'
更新
另一个可能的解决方案https://cmake.org/pipermail/cmake/2008-August/023534.html
查看 CMAKE_CROSSCOMPILING_EMULATOR。最好在你的工具链文件中设置它。
我有:
我为包括
在内的不同平台开发原生 unity 插件- iOS
- Android
- Windows
- OSX
我使用 cmake
作为构建系统,使用 ctest
作为单元测试
我的构建环境 - osx
,所以 运行 在 osx 上进行单元测试不是问题。
我也知道为了测试 Android 和 Windows 我可以相应地使用 qemu
和 wine
。
问题:
我只是想知道
cmake/ctest
提供任何变量来指定某些模拟器,例如wine
或qemu
?或者我应该为此编写一些自定义脚本吗?如何在 iOS(设备或模拟器)上 运行 本机单元测试?
qemu
可以吗?
我已经为 wine
WineCTestWrapper.cmake:
macro (add_wine_test_wrapper_script TEST)
set(TESTNAME ${TEST})
configure_file (
${PROJECT_SOURCE_DIR}/thirdparty/cmake/modules/WineCTestWrapper.sh.in
${CMAKE_CURRENT_BINARY_DIR}/${TESTNAME} @ONLY
)
endmacro ()
WineCTestWrapper.sh.in:
#!/bin/bash
# simple wrapper for windows PE-executable format
wine @TESTNAME@.exe
使用方法:
include(WineCTestWrapper)
...
find_program(WINE_FOUND wine)
add_test(some_test some_test)
if(WINE_FOUND)
add_wine_test_wrapper_script(some_test)
endif()
请注意,默认情况下 MXE 创建带有 .exe
后缀的可执行文件,此解决方案使用此 'feature'
更新
另一个可能的解决方案https://cmake.org/pipermail/cmake/2008-August/023534.html
查看 CMAKE_CROSSCOMPILING_EMULATOR。最好在你的工具链文件中设置它。