-
Data: 2012-05-06 16:10:06
Temat: Re: [OT] Zarządzanie konfiguracją modułów kodu źródłowego
Od: "Andrzej Ekiert" <d...@t...pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]Dnia 06-05-2012 o 15:49:54 Sebastian Biały <h...@p...onet.pl>
napisał(a):
> On 2012-05-06 15:30, Andrzej Ekiert wrote:
>> Ale to mi w żaden sposób nie dotyka mojego problemu. Jeśli odwołam się w
>> "../lib/i2c/i2ccore.c" do nowego parametru konfiguracyjnego C_I2C_SHMOO,
>> to muszę go ręcznie zdefiniować w każdym i2cconfiguration.h w każdym
>> projekcie.
>
> #include "../lib/i2c/defaultconfiguration.h"
> #include "i2cconfiguration.h"
>
> To powinno zadzialać jak gdyby dziedziczenie parametrów.
Mam to dość podobnie zrobione. Samo dziedziczenie defaultu to nie jest
najlepszy pomysł, bo nowo dodany parametr może przejść niezauważony. Więc
albo dziedziczę całą konfigurację modułu, albo wszystkie parametry muszą
być w projekcie przedefiniowane.
> Możesz też uzyć #ifndef FOO, #define FOO DEFAULR_FOO.
>
> Ewentualnie, znacznie bezpieczniej, #ifndef FOO, #error "FOO not set"
To już w zasadzie mam wbudowane: zawsze kompiluję z -Wundef i zamiast
#ifdef do włączania opcji używam "#if C_FOOBAR == ENABLED". Mam wtedy
warning gdy coś nie jest ustawione.
>> Jeśli zmienię nazwę i trochę funkcje parametru C_I2C_FOO na
>> C_I2C_BAR, to znowu zmiana w każdym projekcie. Chodzi mi o sposób lub
>> narzędzie do automatyzacji takich zmian: wykrywanie niedodanych
>> definicji, eliminację przestarzałych definicji, itp.
>
> Najlepiej, gdybys tego nie robił w ogóle. takie narzędzie jest
> niebezpieczne. Wydaje mi się, że najbezpieczniej jest zdać się na
> kompilator. Czyli raz na jakiś czas budujesz wszystkie swoje żywe
> projekty w całości i poprawiasz tam gdzie padła kompilacja.
Skłaniam się ku użyciu narzędzia, żeby zamiast otwierać 20 plików (a za
parę lat może 100?) i wszędzie robić 'paste' nowego parametru, móc kliknąć
"update". Oczywiście kompilacja potem i tak jest nieodzowna (nie mówiąc o
teście).
> Podobnie do tego pomysłu działa konfigurator opcji kompilacji linuxa
> (kernela).
Nawet zaglądałem mu w źródła, czy by się nie dało czegoś wykorzystać, ale
trochę mnie odrzuciło. Poza tym w menuconfig jednak niezbyt dobrze widać
nowe parametry, a usunięte po prostu po cichu znikają (jeśli się nic nie
zmieniło od ostatniego razu, jak kompilowałem kernel).
Miałem po prostu nadzieję, że kogoś już to uwierało i jakieś narzędzie
istnieje. No nic, napiszę sobie sam.
ae
Następne wpisy z tego wątku
- 06.05.12 16:24 Jacek Domański
- 06.05.12 16:28 Zbych
- 06.05.12 16:42 Sebastian Biały
- 06.05.12 16:50 Andrzej Ekiert
- 06.05.12 16:55 Michoo
- 06.05.12 17:08 Andrzej Ekiert
- 06.05.12 17:21 mk
- 06.05.12 17:35 Sebastian Biały
- 06.05.12 17:41 marek
- 06.05.12 17:41 Andrzej Ekiert
- 06.05.12 18:18 mk
- 06.05.12 18:32 Zbych
- 06.05.12 19:00 Sebastian Biały
- 06.05.12 21:32 mk
- 06.05.12 22:05 Sebastian Biały
Najnowsze wątki z tej grupy
- e-paper
- 60 mA dużo czy spoko?
- Dziwne zachowanie magistrali adresowej w 8085
- Współczesne mierniki zniekształceń nieliniowych THD audio, produkują jakieś?
- Jaki silikon lub może klej?
- Smar do video
- Litowe baterie AA Li/FeS2 a alkaliczne
- "ogrodowa linia napowietrzna"
- jaki zasilacz laboratoryjny
- jaki zasilacz laboratoryjny
- Puszka w ziemię
- T-1000 was here
- Ściąganie hasła frezem
- Koszyk okrągły, walec 3x AA, na duże paluszki R6
- Brak bolca ochronnego ładowarki oznacza pożar
Najnowsze wątki
- 2025-02-15 Łódź => NodeJS Developer <=
- 2025-02-15 Dęblin => Node.js / Fullstack Developer <=
- 2025-02-15 Warszawa => Developer .NET (mid) <=
- 2025-02-15 Wrocław => Senior SAP Support Consultant (SD) <=
- 2025-02-14 Zdalne załączanie grzałki bojlera elektrycznego
- 2025-02-14 Warszawa => Kierownik ds. kluczowych Klientów <=
- 2025-02-14 Częstochowa => Product Manager - Systemy infrastruktury teleinformaty
- 2025-02-14 Warszawa => Senior Frontend Developer (React + React Native) <=
- 2025-02-14 Warszawa => Data Engineer (Tech Leader) <=
- 2025-02-14 Czy ma sens grupa news:pl.soc.polityka-prawna ? :-)
- 2025-02-14 e-paper
- 2025-02-14 Gliwice => Business Development Manager - Network and Network Security
- 2025-02-14 Warszawa => System Architect (Java background) <=
- 2025-02-14 Katowice => Senior Field Sales (system ERP) <=
- 2025-02-14 Wrocław => Specjalista ds. Sprzedaży (transport drogowy) <=