2011-11-18 17 views
7

Estoy convirtiendo un proyecto de C++ creado con Visual Studio 2005 en CMake y he tropezado con un pequeño problema con los archivos de recursos que se incluyen en el proyecto. El proyecto incluye un archivo .rc, un conjunto de archivos .ico y un archivo .rc2.Archivos de recursos de CMake y Visual Studio

El archivo .rc normal funciona bien en el proyecto generado y utiliza el compilador de recursos. Sin embargo, los archivos .ico y .rc2 están causando problemas cuando recién se están incluyendo, porque en el proyecto generado Visual Studio intenta compilarlos utilizando el compilador C/C++.

Supongo que estos archivos están incluidos en el archivo .rc, por lo que probablemente sería útil simplemente no incluirlos en el archivo CMakeLists.txt, pero dado que es obviamente posible enumerarlos en el proyecto (están visibles en el proyecto original) Me gustaría hacerlo, para que el usuario del proyecto generado pueda ver que estos archivos están siendo utilizados.

¿Cuál es la forma correcta de manejar estos archivos extra de recursos VS en CMake?

+0

No sé CMake, pero tiene razón acerca de cómo se usan los archivos de recursos. Si desea tenerlos en el archivo CMakeLists.txt, debe ponerlos en algún destino que no se compile, debe ser algo en la documentación. –

+0

@JoachimPileborg: Gracias por la información. Sí, el problema es que tampoco sé CMake y no he encontrado nada en los documentos que parezcan relacionados ... :) – villintehaspam

+0

¿Lo encontraste en algunos informes de errores sobre MinGW, aunque parece que debería funcionar? "Como alguien del IRC insinuó, agregué los archivos resource.h/resource.rc a la lista de fuentes add_executable() del proyecto". –

Respuesta

2

Probar set_source_files_properties(your.ico your.rc2 PROPERTIES LANGUAGE RC).

1

De manera predeterminada, no debería hacer nada con esos archivos. La propiedad del archivo de origen IDIOMA debe estar vacía y, por lo tanto, la acción del archivo debe verificarse mediante el tipo de archivo. Lo cual no debería ser nada, ya que no es algo que deba compilarse.

Revise su CMakeLists.txt que no contiene un comando set_source_files_properties que pueda interferir con esa propiedad.

Si usted quiere hacer algo con los archivos, aquí hay dos maneras de hacer las cosas:

Con add_custom_target se pueden agregar ellos y ejecutar comandos personalizados para ellos cuando se genera el proyecto. De acuerdo, los archivos han cambiado.

Con archivo_configuración, puede copiarlos fácilmente en un directorio de compilación si es necesario. Con la bandera COPYONLY.

Cuestiones relacionadas