Closed GoogleCodeExporter closed 9 years ago
Hi,
Your patch does not apply to the source distribution; you are patching a file
that is not included in the source, but generated at configure time.
In fact, the #if 1 you are removing is explicitly generated by configure (set
to #if 1 or #if 0) based on whether stdint.h is available or not, so if you
have a file that looks like #if 1 but the compiler does not have stdint.h
available, you have done something wrong at configure time.
Original comment by se...@google.com
on 20 Jul 2012 at 12:05
Ok, fair enough.
The file is part of snappy-1.0.5.tar.gz, though. I used the tarball as a base
to compile the snappy code in a CMake environment, that is, I bypassed the
autoconf stuff. (see
https://github.com/Eyescale/Equalizer/tree/master/libs/co/compressor)
Original comment by eilem...@gmail.com
on 20 Jul 2012 at 12:09
Wow, you're right, it really is included in the tarball. It shouldn't be; I'll
address that in a separate bug. I'm sure there is some sort of autotools magic
I'm rubbing the wrong way; the file should be installed in make install, but
not included in the tarball.
If you want to bypass autoconf, you'll need to edit snappy-stubs-public.h (and
other files autogenerated by autoconf, such as config.h) yourself. Simply
change #if 1 to #if 0 (effectively what you did) and you should be fine.
Original comment by se...@google.com
on 20 Jul 2012 at 12:13
I'm not an autoconf type of person, but this stuff shouldn't need to be
configured. In my projects, I can get away with '#if _MSC_VER' and other
predefined macros:
https://github.com/Eyescale/Lunchbox/blob/master/lunchbox/types.h
Original comment by eilem...@gmail.com
on 20 Jul 2012 at 12:16
That's fine if you only need to support one or two platforms. If you want to
support the wide arrays of different systems and compilers out there, depending
on this sort of knowledge (“MSVC doesn't have stdint.h, except if it's above
version 12.31”) simply doesn't scale, which is why autoconf simply does a
test instead (compile against stdint.h and see if it exists).
It's a shame autoconf doesn't integrate well with MSVC, essentially forcing the
use of two distinct build/configure systems if you want to support both Windows
and other platforms. I'm sure one could argue equally well if this is MSVC's
fault or autoconf's fault; in any case, we don't really support MSVC too well
at this point, simply because it's so hard to support when you don't live in a
Windows world every day.
Original comment by se...@google.com
on 20 Jul 2012 at 12:25
Try the link below for MSVC-compatible version of Snappy. I have also published
NuGet packages for C++ and .NET, so that compiling the source code isn't
necessary in most cases.
http://snappy.angeloflogic.com/
Original comment by robert.v...@gmail.com
on 6 Mar 2014 at 10:09
Original issue reported on code.google.com by
eilem...@gmail.com
on 20 Jul 2012 at 12:01Attachments: