-
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
- w czasach LED komary mają ciężko
- walizka z kodami
- Rejestrator temperatur - termopara, siec
- Router LTE z możliwością zmian MTU
- Fajny film widziałem...
- Jaka ładowarka sieciowa do Iphona?
- Taśma izolacyjna do prac elektrycznych
- Recenzja 3.1A ;) w 6 gniazdach...
- Re: Recenzja 3.1A ;) w 6 gniazdach...
- Re: Recenzja 3.1A ;) w 6 gniazdach...
- Re: Recenzja 3.1A ;) w 6 gniazdach...
- Wkrętarki, wiertarki...
- Zasilacz impulsowy 12V 10A, coś godnego uwagi jako zamiennik akumulatora wkrętarki
- Mouser - koszt wysyłki
- [OT] Jak wycinac ksztalt w piance lub styropianie?
Najnowsze wątki
- 2025-07-19 Zakrzewo => SAP HCM Consultant <=
- 2025-07-19 Poznań => Konsultant SAP HCM <=
- 2025-07-19 Poznań => SAP HCR Consultant <=
- 2025-07-18 celnicy pobili policjanta
- 2025-07-18 Warszawa => Technik IT - Konfiguracja i Wsparcie Sprzętowe <=
- 2025-07-18 Warszawa => Specjalista ds. Sprzętu IT i Wsparcia Technicznego <=
- 2025-07-18 Białystok => Kotlin Developer <=
- 2025-07-18 Warszawa => Sales Director (Cloud solutions) <=
- 2025-07-18 Spalinowa trauma
- 2025-07-18 Polska => Senior Key Account Manager <=
- 2025-07-18 Białystok => Programista Kotlin <=
- 2025-07-18 Szczecin => Key Account Manager IT <=
- 2025-07-18 Łódź => Programista Mainframe (z/OS, Assembler) <=
- 2025-07-18 Łódź => Mainframe (z/OS, Assembler) Developer <=
- 2025-07-18 Lublin => Delphi Programmer <=