[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-core-devel
Subject:    Re: External SVN item in
From:       Thiago Macieira <thiago () kde ! org>
Date:       2008-09-18 6:05:22
Message-ID: 200809180805.28143.thiago () kde ! org
[Download RAW message or body]


Matthew Woehlke wrote:
>Andreas Pakulat wrote:
>> How do you suggest to solve the following:
>
>In addition, what about:
>
>- code shared between two libraries that itself is not appropriate for a
>library (because it should not be publically accessible), where it is
>important for the copies to stay 100% in sync.

Use a private header and export the symbols.

Qt does a lot of that. The private headers are still available during the 
build. And since they are in the same module, which is always built as a 
whole, there's no problem breaking binary- or source-compatibility.

>Copying the files sucks because it's extra work and creates clutter in
>the VC history.

Not if you do it properly.

>Making it a library sucks because then you have an 
>installed library and installed headers that should not be installed.

If that is so, there are other solutions than library.

There's also such a thing as a private library.

>Sharing the code in some manner similar to a symlink is clearly a
>preferred solution.

Git supports symlinks. If we ditch building on filesystems where symlinks 
aren't supported (read: Windows), we can use them. (SVN supports it too, 
BTW.)

And I also do not agree that it's the preferred solution. A library is the 
preferred solution, since that reduces code duplication when loaded into 
memory.

>In other words, what do you suggest to do for oxygen (style/windeco)?

Pick one of the many solutions I proposed.

-- 
  Thiago Macieira  -  thiago (AT) macieira.info - thiago (AT) kde.org
    PGP/GPG: 0x6EF45358; fingerprint:
    E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358

["signature.asc" (application/pgp-signature)]

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic