Entendre les CMakeLists
CMake
En la nostra guia d'aprenentatge introductòria, emprem el CMake com el sistema de compilació per a la nostra aplicació, però només parem molta atenció a un dels nostres fitxers CMakeLists.txt
. Aquí, repassarem com funcionen amb una mica més de detall.
El CMake és útil perquè ens permet automatitzar gran part de les coses que s'han de fer abans de la compilació.
CMakeLists.txt
És possible que recordeu aquest fitxer CMakeLists.txt
de la primera guia d'aprenentatge:
|
|
La primera línia, project(helloworld)
defineix el nom del projecte.
Després d'això, establim les versions de les nostres eines necessàries. cmake_minimum_required(VERSION 3.16)
estableix la versió de CMake que cridarem. Després utilitzem set()
per a definir les variables (KF5_MIN_VERSION
i QT_MIN_VERSION
) que contenen les versions dels Frameworks del KDE i de les Qt.
Després arribem a una secció on incloem una sèrie de paràmetres necessaris de CMake i del KDE fent servir extra-cmake-modules. Per ara no heu de preocupar-vos massa per aquestes línies i no necessitarem canviar-les en aquesta guia d'aprenentatge.
La secció següent és important, perquè especifica quines dependències portarem en temps de compilació. Vegem la primera línia:
find_package(KF5 ${KF5_MIN_VERSION} COMPONENTS Kirigami2 I18n CoreAddons WidgetsAddons)
- find_package() cerca i carrega el component extern.
- La primera paraula és el marc de treball (
KF5
). - Després fem una crida a la variable amb les versions que hem establert a la segona línia.
COMPONENTS
és un paràmetre que precedeix als components específics del marc de treball que incloem.- Cada paraula després de
COMPONENTS
es refereix a un component específic.
Nota
Si esteu mirant d'afegir qualsevol component llistat a la documentació de l'API de KDE a la vostra aplicació, podeu comprovar la barra lateral dreta per a com afegir el component amb el CMake. Per exemple, per al
Kirigami2
, trobareu quelcom com find_package(KF5Kirigami2)
, el qual amb l'addició de l'extra-cmake-modules es converteix en quelcom com find_package(KF5 COMPONENTS Kirigami2)
.
Pareu molta atenció als components inclosos, ja que l'omissió dels utilitzats en el nostre codi aturarà la compilació de l'aplicació.
L'última línia, add_subdirectory(src)
, apunta CMake a dins del directori src/
.
|
|
Atès que la major part de la feina pesada es realitza amb la primera llima, aquesta és molt més curta.
- set() s'utilitza per a establir
helloworld_SRCS
almain.cpp
iresources.qrc
(si decidim crear fitxers en C++ addicionals, també els haurem d'afegir aquí). - add_executable() s'encarrega d'anomenar el nostre executable i prendre els fitxers necessaris per a crear-lo.
- target_link_libraries enllaça dinàmicament les biblioteques utilitzades en el nostre codi amb el nostre executable.
Nota
Cal tenir present que aquestes biblioteques han de coincidir amb els components que incloem en el nostre fitxerCMakeLists.txt
anterior. En cas contrari, aquests components no s'inclouran i la nostra aplicació no compilarà.Aquesta configuració serà útil en desenvolupar la majoria de les aplicacions escrites amb el Kirigami.