Introduced LZMA_API_STATIC macro, which the applications

need to #define when linking against static liblzma on
platforms like Windows. Most developers don't need to
care about LZMA_API_STATIC at all.
This commit is contained in:
Lasse Collin 2009-02-07 11:11:50 +02:00
parent b719e63c5f
commit 3306cf3883
2 changed files with 25 additions and 8 deletions

View File

@ -155,14 +155,31 @@
/* /*
* Some systems require (or at least recommend) that the functions and * Some systems require (or at least recommend) that the functions and
* function pointers are declared specially in the headers. * function pointers are declared specially in the headers. LZMA_API_IMPORT
* is for importing symbols and LZMA_API_CALL is to specify calling
* convention.
*
* By default it is assumed that the application will link dynamically
* against liblzma. #define LZMA_API_STATIC in your application if you
* want to link against static liblzma. If you don't care about portability
* to operating systems like Windows, or at least don't care about linking
* against static liblzma on them, don't worry about LZMA_API_STATIC. That
* is, most developers will never need to use LZMA_API_STATIC.
*/ */
#ifdef _WIN32 #ifndef LZMA_API_IMPORT
# define LZMA_API_IMPORT __declspec(dllimport) # if !defined(LZMA_API_STATIC) && defined(_WIN32)
# define LZMA_API_CALL __cdecl # define LZMA_API_IMPORT __declspec(dllimport)
#else # else
# define LZMA_API_IMPORT # define LZMA_API_IMPORT
# define LZMA_API_CALL # endif
#endif
#ifndef LZMA_API_CALL
# ifdef _WIN32
# define LZMA_API_CALL __cdecl
# else
# define LZMA_API_CALL
# endif
#endif #endif
#ifndef LZMA_API #ifndef LZMA_API

View File

@ -24,7 +24,7 @@
#include "../../common/mythread.h" #include "../../common/mythread.h"
#include "../../common/integer.h" #include "../../common/integer.h"
#if defined(_WIN32) #if !defined(LZMA_API_STATIC) && defined(_WIN32)
# define LZMA_API_EXPORT __declspec(dllexport) # define LZMA_API_EXPORT __declspec(dllexport)
// Don't use ifdef or defined() below. // Don't use ifdef or defined() below.
#elif HAVE_VISIBILITY #elif HAVE_VISIBILITY