liblzma: A MSVC-specific hack isn't needed with MSVC 2013 and newer.

This commit is contained in:
Lasse Collin 2015-07-12 20:48:19 +03:00
parent 713dbe5c23
commit fbbb295a91
1 changed files with 13 additions and 5 deletions

View File

@ -82,12 +82,20 @@
# if !defined(UINT32_C) || !defined(UINT64_C) \ # if !defined(UINT32_C) || !defined(UINT64_C) \
|| !defined(UINT32_MAX) || !defined(UINT64_MAX) || !defined(UINT32_MAX) || !defined(UINT64_MAX)
/* /*
* MSVC has no C99 support, and thus it cannot be used to * MSVC versions older than 2013 have no C99 support, and
* compile liblzma. The liblzma API has to still be usable * thus they cannot be used to compile liblzma. Using an
* from MSVC, so we need to define the required standard * existing liblzma.dll with old MSVC can work though(*),
* integer types here. * but we need to define the required standard integer
* types here in a MSVC-specific way.
*
* (*) If you do this, the existing liblzma.dll probably uses
* a different runtime library than your MSVC-built
* application. Mixing runtimes is generally bad, but
* in this case it should work as long as you avoid
* the few rarely-needed liblzma functions that allocate
* memory and expect the caller to free it using free().
*/ */
# if defined(_WIN32) && defined(_MSC_VER) # if defined(_WIN32) && defined(_MSC_VER) && _MSC_VER < 1800
typedef unsigned __int8 uint8_t; typedef unsigned __int8 uint8_t;
typedef unsigned __int32 uint32_t; typedef unsigned __int32 uint32_t;
typedef unsigned __int64 uint64_t; typedef unsigned __int64 uint64_t;