我正在使用catch for unit test framework,它需要将我的c文件编译为c ++。但是,在运行主程序时,我希望它被编译为C。
Component
使用SET_SOURCE_FILES_PROPERTIES我可以强制将特定文件编译为C ++但是我无法编译主程序。在评论该行时,我可以编译主程序,但不能编译单元测试。
如何让cmake将主程序编译为c,将测试源编译为c ++?
答案 0 :(得分:0)
执行此操作的一种简单方法是创建符号链接:
ln -s maintenance.c maintenance-test.cpp
然后你可以编译两个对象:一个使用你的C编译器,一个使用C ++。
你甚至可以让CMake在生成步骤中创建符号链接:
add_custom_command(OUTPUT maintenance-test.cpp
COMMAND ${CMAKE_COMMAND} -E create_symlink maintenance.c maintenance-test.cpp)