unicode cmake visual-studio-2013 compiler-flags

¿Cómo configuro Unicode como juego de caracteres en los proyectos ALL_BUILD y ZERO_CHECK Visual Studio 2013 que Cmake genera?



visual-studio-2013 compiler-flags (3)

Actualmente estoy usando CMake para crear un montón de proyectos de Visual Studio 2013 y funciona. Sin embargo, los proyectos ZERO_CHECK y ALL_BUILD creados automáticamente están configurados para usar MBCS de forma predeterminada, aunque quiero que utilicen el juego de caracteres Unicode.

Especifiqué el uso del juego de caracteres Unicode para mis proyectos con lo siguiente:

ADD_DEFINITIONS(-DUNICODE) ADD_DEFINITIONS(-D_UNICODE)

Y funcionó. Intenté establecer los indicadores del compilador de c ++ con algo como:

SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /UMBCS /D_UNICODE /DUNICODE")

o incluso :

ADD_DEFINITIONS(-DUNICODE) ADD_DEFINITIONS(-D_UNICODE)

antes de la configuración de mi proyecto, pero no afectó ZERO_CHECK y ALL_BUILD en absoluto. Algunas ideas ?


ZERO_CHECK y ALL_BUILD son metas meta. Todos sus proyectos dependen de ZERO_CHECK , todos sus proyectos son dependencias de ALL_BUILD , pero esos dos proyectos no generan bibliotecas ni ejecutables, por lo tanto, no tiene que preocuparse por sus configuraciones de compilación.

También podría haber otros meta objetivos como, por ejemplo, INSTALL si usó la función install() .


Puede usar cmake --build . -- /p:CharacterSet=Unicode cmake --build . -- /p:CharacterSet=Unicode para construir su proyecto con Unicode configurado como conjunto de caracteres. De hecho, de esta manera pasas un parámetro para hacer esto a MSBuild, no a CMake.


Encontré una solución.

Gracias a Mike, me di cuenta de que estaba buscando en la dirección incorrecta. Como CMake no brinda acceso a los meta-objetivos (y puedo entender por qué), uno debe configurar el entorno de Visual Studio para hacer que MFC compile con MBCS.

Este enlace explica por qué Microsoft eliminó la compatibilidad nativa con MBCS para proyectos MFC y este enlace proporciona una descarga para el paquete MFC-MBCS.

Seguiré siendo cuidadoso con esto porque aún quiero que mis proyectos usen Unicode, y usaré los indicadores de CMake en consecuencia. Sin embargo, ZERO_PROJECT y ALL_BUILD ahora compilan muy bien.

Es la publicación de Raman Sharma la que finalmente me hizo ver la luz.

Gracias chicos, hicieron mi día: D

Atentamente !

RL