CMake和Visual Studio资源文件

时间:2011-11-18 13:30:03

标签: c++ visual-studio visual-studio-2005 cmake resource-files

我正在将使用Visual Studio 2005创建的C ++项目转换为CMake,并且偶然发现了项目中包含的资源文件的一些问题。

该项目包含.rc文件,一堆.ico个文件和一个.rc2文件。

常规.rc文件在生成的项目中正常工作并使用资源编译器。然而,.ico.rc2文件只是在被包含时会引起问题,因为在生成的项目中,Visual Studio会尝试使用C / C ++编译器编译它们。

我假设这些文件包含在.rc文件中,因此它可能只是不将它们包含在CMakeLists.txt文件中,但因为显然可以在项目中列出它们(它们在原始项目中可见)我想这样做,以便生成的项目的用户可以看到正在使用这些文件。

在CMake中处理这些额外VS资源文件的正确方法是什么?

2 个答案:

答案 0 :(得分:2)

尝试set_source_files_properties(your.ico your.rc2 PROPERTIES LANGUAGE RC)

答案 1 :(得分:1)

默认情况下,它不应对这些文件执行任何操作。源文件属性LANGUAGE应为空,因此应通过文件类型检查文件的操作。哪个不应该是什么,因为它不应该编译。

检查你的CMakeLists.txt,它不包含会破坏该属性的set_source_files_properties命令。

如果你想对这些文件做些什么,可以采取以下两种方法:

使用add_custom_target,您可以在构建项目时添加它们并为它们运行自定义命令。假设文件已更改。

使用configure_file,您可以根据需要轻松将它们复制到构建目录。使用COPYONLY标志。