-
Path: news-archive.icm.edu.pl!news.icm.edu.pl!.POSTED!not-for-mail
From: Paweł <r...@1...0.0.1>
Newsgroups: pl.misc.elektronika
Subject: Re: [OT] Zarządzanie konfiguracją modułów kodu źródłowego
Date: Mon, 07 May 2012 21:42:46 +0200
Organization: ICM, Uniwersytet Warszawski
Lines: 120
Message-ID: <jo98jm$t0l$1@news.icm.edu.pl>
References: <o...@j...jedi> <jo5tgs$asd$1@inews.gazeta.pl>
<o...@j...jedi>
NNTP-Posting-Host: 89-78-237-144.dynamic.chello.pl
Mime-Version: 1.0
Content-Type: multipart/mixed; boundary="nextPart3088671.KnkjRG6ItK"
X-Trace: news.icm.edu.pl 1336419766 29717 89.78.237.144 (7 May 2012 19:42:46 GMT)
X-Complaints-To: u...@n...icm.edu.pl
NNTP-Posting-Date: Mon, 7 May 2012 19:42:46 +0000 (UTC)
User-Agent: KNode/4.8.3
Xref: news-archive.icm.edu.pl pl.misc.elektronika:630753
[ ukryj nagłówki ]Andrzej Ekiert wrote:
> Dnia 06-05-2012 o 15:15:04 Sebastian Biały <h...@p...onet.pl>
> napisał(a):
>
>> Zapropnuje sposób trywialny, być może akurat będzie w sam raz:
>>
>> *** i2cdriver.c ***
>>
>> #include "i2cconfiguration.h"
>> #include "../lib/i2c/i2ccore.c"
>> #include "../lib/i2c/i2chardware.c"
>>
>> *** i2cdriver.h ***
>>
>> #include "i2cconfiguration.h"
>> #include "../lib/i2c/i2cinterface.h"
>>
>> Plik i2cconfiguration.h jest częscią konkretnego projektu, podobnie jak
>> i2cdriver.c.
>>
>> I tyle. W i2cconfiguratiion stado #define per projekt. W plikach lib/i2c
>> (h i c) od groma #ifdef na każdy wariant.
>>
>
> 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. 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.
>
> Samo definiowanie konfiguracji per-projekt i jej #include w plikach
> biblioteki to mam rozwiązane w miarę elegancko. Boli mnie tylko potrzeba
> ręcznego czyszczenia konfiguracji per-projekt w wypadku zmian w opcjach
> oferowanych przez bibliotekę.
czasami w przypadku koniecznosci zachowania wstecznej kompatybilnosci
biblioteki stosuje sie w c++ namespace-inlining (a w c wersjonowanie
symboli na poziomie skryptu gnu/linkera).
na zalaczonym przykladzie masz w bibliotece obslugujacej costam
wersje v1, ktora byla na poczatku wszechswiata :) potem programista
wpadl na pomysl by rozwiazanie ulepszyc i dodal wersje v2,
ale, ze lubil uzytkownikow, to nie chial ich zmuszac do poprawiania
w starych projekatach wszystkich wywolan api i za pomoca prostego
#define USE_LEGACY w aktualnej wersji biblioteki udostepnia stary
interfejs/implementacje. autor biblioteki wewnetrznie (w lib.cpp)
juz sobie rozwizuje problem jak stare api przempowac na aktualna
implementacje, a uzytkownicy sa szczesliwi.
Następne wpisy z tego wątku
- 07.05.12 22:46 RoMan Mandziejewicz
- 08.05.12 07:56 Paweł
- 08.05.12 08:50 RoMan Mandziejewicz
- 08.05.12 15:13 janusz_kk1
- 09.05.12 09:07 Artur M. Piwko
- 09.05.12 10:03 janusz_kk1
- 25.05.12 16:09 Artur M. Piwko
Najnowsze wątki z tej grupy
- 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
- AMS spalony szybkim zasilaczem USB
Najnowsze wątki
- 2025-02-14 e-paper
- 2025-02-14 Warszawa => Architekt rozwiązań (doświadczenie w obszarze Java, AWS
- 2025-02-14 Warszawa => International Freight Forwarder <=
- 2025-02-14 Olsztyn => Sales Specialist <=
- 2025-02-14 Wrocław => Konsultant wdrożeniowy Comarch XL/Optima (Księgowość i
- 2025-02-14 Bieruń => Spedytor Międzynarodowy (handel ładunkami/prowadzenie flo
- 2025-02-14 Dęblin => JavaScript / Node / Fullstack Developer <=
- 2025-02-14 Żerniki => Dyspozytor Międzynarodowy <=
- 2025-02-14 Kraków => Technical Team Leader (Clojure, Java) <=
- 2025-02-14 Ściemniacze na parkingach
- 2025-02-13 kilka pytań o klimę
- 2025-02-13 genialny pomysł
- 2025-02-12 diesel z otwartą komorą
- 2025-02-14 60 mA dużo czy spoko?
- 2025-02-13 Jaka moc wi-fi ?