c++ - vs2017配置cmake - vs使用cmake




CMake和Visual Studio资源文件 (2)

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

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

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

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

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


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


默认情况下,它不应该对这些文件做任何事情。 源文件属性LANGUAGE应该是空的,因此应该通过文件类型检查文件的动作。 这不应该是什么,因为它不是它应该编译的东西。

检查你的CMakeLists.txt是否包含一个与该属性混淆的set_source_files_properties命令。

如果你想对文件做些什么,这里有两种方法可以做到这一点:

通过add_custom_target,您可以在构建项目时添加它们并为它们运行自定义命令。 当然,这些文件已经改变了。

有了configure_file,如果需要的话,你可以很容易地将它们复制到一个build目录。 用COPYONLY标志。





resource-files