W Qt 5 CMake manual stwierdza, że qt5_use_modules
makro jest nieaktualne:Co używać zamiast `qt5_use_modules`?
To makro jest przestarzała. Zamiast tego użyj target_link_libraries z IMPORTED targetami.
... Ale qt5_use_modules
nie więcej niż po prostu określić bibliotek link: określa ona zawierać katalogów, niezbędne flagi kompilacji i więcej (zobacz pełny opis w dokumentacji związanej powyżej).
Zakładając, że zmienna QTMODULES
zawiera listę modułów Qt, które powinny być użyte w projekcie, jaki jest "zalecany" sposób na zastąpienie poniższej "przestarzałej" linii CMake?
qt5_use_modules(${myProjectName} ${QTMODULES})
Następujące nie działa, przede wszystkim dlatego, że nie dodawać żadnych Qt zawierać ścieżki:
target_link_libraries(${myProjectName} IMPORTED ${QTMODULES})
robi zmienną potrzebę bycia ręcznie powtórzyć skończy, tak że include_directories
można nazwać dla każdego QTMODULES
indywidualna nazwa modułu? Wydaje się to dużym krokiem wstecz od qt5_use_modules
, który jest prosty i "po prostu działa". Czy czegoś brakuje?
To nadal wydaje się wymagać oddzielenia każdej nazwy od zmiennej zawierającej listę modułów, których chciałbym użyć i dołączając 'Qt5 ::' do każdego z nich. Czy istnieje jakiś szczególny powód, dla którego jest to lepsze niż po prostu użycie 'qt5_use_modules'? –
To * jest * interesujące, ale możesz pobrać 'target_link_libraries', aby dodać ścieżki włączania, itp. –
Zależnie od formatu listy, możesz być w stanie zrobić na nim wyrażenie regularne lub powtórzyć listę, aby zbudować nowa zmienna we właściwym formacie ... – Zrax