Wpis z mikrobloga

  • 0
Mireczki,

TL;DR: zastanawiam się w jaki ładny, a jednoczesnie wygodny w użyciu sposób mozna rozwiązać zbieranie w formie listy (sciezka, plik, linijka) występowanie konkretnej funkcji w kodzie.

Chciałbym przykładowo by komponent A ktory zawiera foo("bar") w pliku foobar.c linkowany pozniej z komponentem X (który ma foo), magicznie wygenerował mi takie zestawienie, ktore komponenty A...N zechciały zrobić foo :)

Można to rozwiązać na kilka sposobów, jednak żaden mi się nie podoba, więc liczę że ktoś podpowie lepszy. Budowane dziadostwo jest duże. Wiele komponentów i wiele różnych buildsystemow.

1. Modyfikacja buildsystemu komponentu.
2. Modyfikacja narzędzia do budowania (cmake/make/linkera, cokolwiek)
3. W trakcie budowania na CI lecieć po wszystkich źródłach grepem.
4. Zmusić ludzi do dokumentowania w jednym miejscu

Dlaczego mi się ww nie podobają?
4. Niemożliwe :) mimo ze dokumentację generujemy to i tak znajduje sie już na etapie pandemicznego rozwoju ;)
3. Nieefektywne, czasowo i zasobowo
2. Trudne w utrzymaniu
1. Jak w pkt 2, z racji na rozne buildsystemy itd.

5. Mógłbym wymyśleć unikalną dyrektywę preprocesora, bawic sie w sklejanie z linijką która mnie interesuje. Później grepowac tylko log z terminala. Jednak mam podejrzenie że to również może wybuchnąć, oraz wiadomo, nie każdy buildsystem ma makra preprocesora (dajmy, część linijek jest np w Javowych plikach, część w C część w c++)

Jakieś fajne pomysły? Nie pomyślałem o czymś banalnie prostym? :)

#programowanie #pytanie
  • Odpowiedz