cmake将主程序编译为c,单元测试编译为c ++

时间:2017-08-18 22:37:01

标签: cmake

我正在使用catch for unit test framework,它需要将我的c文件编译为c ++。但是,在运行主程序时,我希望它被编译为C。

Component

使用SET_SOURCE_FILES_PROPERTIES我可以强制将特定文件编译为C ++但是我无法编译主程序。在评论该行时,我可以编译主程序,但不能编译单元测试。

如何让cmake将主程序编译为c,将测试源编译为c ++?

1 个答案:

答案 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)