CMake-tiedostojen analysointi
Sivonen, Jani (2023)
Sivonen, Jani
2023
All rights reserved. This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2023052413663
https://urn.fi/URN:NBN:fi:amk-2023052413663
Tiivistelmä
Toimeksiantaja valmistaa tuotteita, joiden ohjelmointiin käytetään C++-ohjelmointikieltä. Toimeksiantaja halusi tutkia kiertäviä riippuvuuksia ohjelmistoista. Jotta voitaisiin tutkia kiertäviä riippuvuuksia, on tiedettävä tutkittavan ohjelman liittyvät lähdekooditiedostot. Opinnäytetyön tarkoituksena oli luoda työkalu, joka lukee ohjelmistoprojektiin liittyvät CMakeLists.txt-tiedostot ja tulostaa näistä käyttäjälle tuotteeseen liittyvien lähdekooditiedostojen nimet hakemistopolkuineen. Opinnäytetyön tietoperustaan sisältyy kirjallisuutta ja internetissä julkaistuja artikkeleita. Tietoperusta koostuu suurimmalta osin englanninkielisistä julkaisuista.
Työkalu analysoi CMakeLists.txt-tiedostot käyttäjän syöttämästä hakemistopolusta. Käyttäjä määrittelee parametrit työkalun luomaan definitions.txt-tiedostoon. Parametrit säätelevät, minkä ohjelmiston käännösversion käyttäjä haluaa työkalun analysoivan. Se kykenee analysoimaan CMaken ehtolausekkeet ja siirtymään analysoimaan määriteltyjä alihakemistoja. Työkalu tuottaa käyttäjälle listauksen hakemistokohtaisesti tuotteeseen sisältyneet cpp-tiedostot.
Työkalua luodessa suurimpana haasteena oli CMake:n ehtolausekkeiden läpikäyminen ohjelmallisesti. Työssä huomattiin, että ohjelmointivirheiden löytäminen sisäkkäisten objektien sisältä tuotti haasteita.
Työkalun tehokkuus saataisiin parhaiten hyötykäytettyä muuntamalla työkalu kirjastoksi ja liittämällä se osaksi laajempaa staattista analyysia tekevää ohjelmistoa. Työkalun tuottaman datan muuntaminen tunnettuun formaattiin toisi mahdollisuuksia liittää data osaksi graafista käyttöliittymää
Työkalu analysoi CMakeLists.txt-tiedostot käyttäjän syöttämästä hakemistopolusta. Käyttäjä määrittelee parametrit työkalun luomaan definitions.txt-tiedostoon. Parametrit säätelevät, minkä ohjelmiston käännösversion käyttäjä haluaa työkalun analysoivan. Se kykenee analysoimaan CMaken ehtolausekkeet ja siirtymään analysoimaan määriteltyjä alihakemistoja. Työkalu tuottaa käyttäjälle listauksen hakemistokohtaisesti tuotteeseen sisältyneet cpp-tiedostot.
Työkalua luodessa suurimpana haasteena oli CMake:n ehtolausekkeiden läpikäyminen ohjelmallisesti. Työssä huomattiin, että ohjelmointivirheiden löytäminen sisäkkäisten objektien sisältä tuotti haasteita.
Työkalun tehokkuus saataisiin parhaiten hyötykäytettyä muuntamalla työkalu kirjastoksi ja liittämällä se osaksi laajempaa staattista analyysia tekevää ohjelmistoa. Työkalun tuottaman datan muuntaminen tunnettuun formaattiin toisi mahdollisuuksia liittää data osaksi graafista käyttöliittymää