On Fri, Dec 4, 2015 at 7:24 AM, Jonathan Wakely <jwak...@redhat.com> wrote:

> On 03/12/15 13:57 -0700, Dave Johansen wrote:
>
>> My hope was to maintain source compatibility and not binary compatibility.
>> For example, the header file moved from:
>> /usr/include/format.h
>> to:
>> /usr/include/cppformat/cppformat.h
>>
>> I was planning on updating the stable release with a symlink at:
>> /usr/include/cppformat/cppformat.h
>>
>> Then code could just #include <cppformat/cppformat.h> for both 2.0 and
>> 1.1.
>> The built binaries will not be compatible and the code would need to use
>> the subset of the API that was uniform or use conditional compilation, but
>> having a consistent place to look for the header should simplify that.
>>
>
> That would cause a problem for code that tries to detect which version
> is present by doing __has_include(<cppformat/cppformat.h>) and
> adapting which API it uses according to the result e.g.
>
> #ifdef __has_include
> # if __has_include(<cppformat/cppformat.h>)
> #  include <cppformat/cppformat.h>
> #  define USE_CPPFORMAT2_API
> # endif
> #endif
>
> #ifndef USE_CPPFORMAT2_API
> # include <format.h>
> #endif
>
> ...
>
> Such code would work with other distros, but not Fedora if you
> implement your suggestion. I don't know if such code exists, but then
> I don't know if any code exists that would benefit from the symlinks
> either. Are there users who would actually make use of the new header
> location and restrict themselves to the common subset of the API? (And
> even if they make that effort, it would only work for cppformat 1.1 on
> Fedora, because other distros wouldn't have the common header
> location).
>

Those are valid points. I will contact upstream and see what their thoughts
are.
--
devel mailing list
devel@lists.fedoraproject.org
http://lists.fedoraproject.org/admin/lists/devel@lists.fedoraproject.org

Reply via email to