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 prestem molta atenció a una de les nostres CMakeLists. Aquí, repassarem com funcionen les CMakeLists 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 de la primera guia d'aprenentatge:
|
|
La primera línia, project(helloworld)
defineix el nom del projecte.
Després d'això, establim les versions necessàries de les nostres eines. cmake_minimum_required(VERSION 3.10)
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 configuracions necessàries de CMake i del KDE. 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
Pay close attention to your included components, as omitting ones used in our code will stop our application from compiling.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 establirhelloworld_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
vincula dinàmicament les biblioteques utilitzades en el nostre codi amb el nostre executable.
Nota
Note that these libraries should match the components that we included in our previous CMakeLists.txt file - otherwise these components will not be included and our application won't compile.Aquesta configuració serà útil en desenvolupar la majoria de les aplicacions escrites amb el Kirigami.