ho una sezione di codice che viene condizionato attivato in funzione di un # define, come questo:Come definisco una variabile quando chiamo CMake, in modo che qtcreator sappia che è definito?
#ifdef VARIABLE
code.function();
#endif
Lo script CMake ha un comando 'Opzioni' che imposta la variabile in questo modo:
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")
Sto usando cmake per costruire il progetto e qtcreator come IDE. Il mio problema è che qtcreator pensa che VARIABLE non sia definito quindi il mio codice non è evidenziato, ma quando lo costruisco su una console, VARIABLE è definito. Quindi, quali parametri dovrei passare a qtcreator per eseguire cmake, in modo che sappia che VARIABLE è definito ed evidenzia il mio codice? C'è un modo per fare questo?
Ps: uso solo qtcreator per modificare i file, la parte di compilazione viene eseguita tramite i comandi della console.
Più complessità di quanto mi piacerebbe solo per correggere l'evidenziazione della sintassi di qtcreator, ma funziona. Inoltre, ho imparato come configurare i file header usando cmake, quindi penso che sia stata una grande risposta. Inoltre, grazie per aver reso la mia domanda più chiara. – Salsa
Prego! In generale, penso che sia meglio usare un file di intestazione che è incluso solo dove necessario per fare qualcosa di simile. In questo modo, solo i file che devono essere ricostruiti verranno ricostruiti in una ricostruzione incrementale dopo aver modificato il valore di VARIABLE in CMake ... Il secondo modo migliore è utilizzare add_definitions() nel file CMakeLists di livello superiore in modo che tutti i file compilati ottengano il definizione. Ma se si modifica il valore in CMake, si ottiene una ricostruzione completa. – DLRdave