tengo una sección de código que se activa de forma condicional dependiendo de una #define, así:¿Cómo puedo definir una variable cuando llamo a CMake, para que qtcreator sepa que está definido?
#ifdef VARIABLE
code.function();
#endif
El guión cmake tiene un comando de 'opciones' que establece la variable de la siguiente manera:
option(VARIABLE "Want to use VARIABLE?" ON)
if(VARIABLE)
message(STATUS "VARIABLE")
set(VARIABLE_FLAG "-DVARIABLE")
endif()
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${VARIABLE_FLAG} -Wall")
Estoy usando cmake para construir el proyecto y qtcreator como IDE. Mi problema es que qtcreator cree que VARIABLE no está definido, por lo que mi código no está resaltado, pero cuando lo construyo en una consola, se define VARIABLE. Entonces, ¿qué parámetros debo pasar a qtcreator para ejecutar cmake, para que sepa que VARIABLE está definido y resalta mi código? ¿Hay alguna forma de hacer esto?
Ps: Solo uso qtcreator para editar archivos, la parte de compilación se realiza mediante comandos de consola.
Más complejidad de la que me gustaría simplemente para corregir el resaltado de sintaxis de qtcreator, pero funciona. Además, aprendí cómo configurar archivos de cabecera usando cmake, así que creo que fue una gran respuesta. Además, gracias por hacer mi pregunta más clara. – Salsa
¡De nada! En general, creo que es mejor usar un archivo de encabezado que solo esté incluido cuando sea necesario para hacer algo como esto. De esta forma, solo los archivos que se deben reconstruir se reconstruirán en una reconstrucción incremental después de cambiar el valor de VARIABLE en CMake ... La segunda mejor manera es usar add_definitions() en el archivo CMakeLists de nivel superior para que todos los archivos compilados obtengan definición. Pero luego si cambia el valor en CMake, esto lleva a una reconstrucción completa. – DLRdave