Le Qt 5 CMake manual afferma che la macro qt5_use_modules
è deprecato:Cosa usare al posto di `qt5_use_modules`?
Questa macro è obsoleta. Utilizza invece target_link_libraries con gli obiettivi IMPORTATI.
... Ma qt5_use_modules
non si limita a specificare librerie di collegamento: specifica includono directory, flag di compilazione necessarie, e più (vedere la descrizione completa nella documentazione linkato sopra).
Supponendo, quindi, che la variabile QTMODULES
contenga un elenco di moduli Qt da utilizzare per un progetto, qual è il modo "consigliato" per sostituire la seguente riga "deprecata" di CMake?
qt5_use_modules(${myProjectName} ${QTMODULES})
La seguente non funziona, in primo luogo perché non aggiunge alcuna Qt includono percorsi:
target_link_libraries(${myProjectName} IMPORTED ${QTMODULES})
fa la variabile necessità QTMODULES
di essere manualmente iterato sopra, in modo che include_directories
può essere chiamato per ogni nome del modulo individuale? Questo sembra un importante passo indietro da qt5_use_modules
, che è semplice e "funziona". Mi sto perdendo qualcosa?
Sembra che sia ancora necessario separare ciascun nome dalla variabile contenente l'elenco di moduli che vorrei utilizzare e aggiungendo 'Qt5 ::' a ciascuno. C'è qualche ragione particolare per cui è preferibile usare semplicemente 'qt5_use_modules'? –
Questo * è * interessante, però, che puoi ottenere 'target_link_libraries' per aggiungere percorsi di inclusione, ecc. –
A seconda del formato della lista, potresti essere in grado di fare qualche regex su di essa, o scorrere l'elenco per costruire una nuova variabile nel formato corretto ... – Zrax