diff options
author | Mathis Rosenhauer <rosenhauer@dkrz.de> | 2014-07-24 15:21:30 +0200 |
---|---|---|
committer | Mathis Rosenhauer <rosenhauer@dkrz.de> | 2014-07-24 15:21:30 +0200 |
commit | a57748e3d539ae0c712f31813fdf582fde7122a3 (patch) | |
tree | 7a25efa3be5f8993cca798648dea91b283b38690 /src | |
parent | 99291d6cbae205f838f1302ebba43ec9333ad862 (diff) | |
download | libaec-a57748e3d539ae0c712f31813fdf582fde7122a3.tar.gz libaec-a57748e3d539ae0c712f31813fdf582fde7122a3.tar.bz2 libaec-a57748e3d539ae0c712f31813fdf582fde7122a3.zip |
DLL support for Windows.
Diffstat (limited to 'src')
-rw-r--r-- | src/CMakeLists.txt | 23 | ||||
-rw-r--r-- | src/decode.c | 14 | ||||
-rw-r--r-- | src/decode.h | 8 | ||||
-rw-r--r-- | src/encode.c | 6 | ||||
-rw-r--r-- | src/encode.h | 8 | ||||
-rw-r--r-- | src/encode_accessors.h | 8 | ||||
-rw-r--r-- | src/libaec.h | 33 | ||||
-rw-r--r-- | src/sz_compat.c | 4 | ||||
-rw-r--r-- | src/szlib.h | 8 |
9 files changed, 45 insertions, 67 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index bbde090..d956a41 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,36 +1,25 @@ -INCLUDE(GenerateExportHeader) SET(libaec_SRCS encode.c encode_accessors.c decode.c) -ADD_LIBRARY(aec ${libaec_SRCS}) +ADD_LIBRARY(aec ${LIB_TYPE} ${libaec_SRCS}) SET_TARGET_PROPERTIES(aec PROPERTIES VERSION 0 SOVERSION 0.0 ) -ADD_LIBRARY(sz sz_compat.c) +ADD_LIBRARY(sz ${LIB_TYPE} sz_compat.c) SET_TARGET_PROPERTIES(sz PROPERTIES VERSION 0 SOVERSION 0.0 ) +TARGET_LINK_LIBRARIES(sz aec) IF(WIN32) - GENERATE_EXPORT_HEADER(aec - BASE_NAME aec - EXPORT_MACRO_NAME aec_EXPORT - EXPORT_FILE_NAME aec_Export.h - STATIC_DEFINE aec_BUILT_AS_STATIC - ) - GENERATE_EXPORT_HEADER(sz - BASE_NAME sz - EXPORT_MACRO_NAME sz_EXPORT - EXPORT_FILE_NAME sz_Export.h - STATIC_DEFINE sz_BUILT_AS_STATIC - ) + SET_TARGET_PROPERTIES (aec PROPERTIES DEFINE_SYMBOL "DLL_EXPORT") + SET_TARGET_PROPERTIES (sz PROPERTIES DEFINE_SYMBOL "DLL_EXPORT") ENDIF(WIN32) -TARGET_LINK_LIBRARIES(sz aec) - ADD_EXECUTABLE(aec_client aec.c) SET_TARGET_PROPERTIES(aec_client PROPERTIES OUTPUT_NAME "aec") TARGET_LINK_LIBRARIES(aec_client aec) + IF(UNIX) ADD_EXECUTABLE(utime EXCLUDE_FROM_ALL utime.c) ENDIF(UNIX) diff --git a/src/decode.c b/src/decode.c index d94f1bb..5c9a548 100644 --- a/src/decode.c +++ b/src/decode.c @@ -51,23 +51,17 @@ * */ -#include <config.h> - -#if HAVE_STDINT_H -#include <stdint.h> -#endif - #include <stdio.h> #include <stdlib.h> #include <string.h> -#ifdef HAVE_BSR64 -#include <intrin.h> -#endif - #include "libaec.h" #include "decode.h" +#if HAVE_BSR64 +# include <intrin.h> +#endif + #define ROS 5 #define BUFFERSPACE(strm) (strm->avail_in >= strm->state->in_blklen \ diff --git a/src/decode.h b/src/decode.h index fac60b8..32c4671 100644 --- a/src/decode.h +++ b/src/decode.h @@ -52,16 +52,12 @@ */ #ifndef DECODE_H -#define DECODE_H - -#include <config.h> +#define DECODE_H 1 #if HAVE_STDINT_H -# include <stdint.h> +# include <stdint.h> #endif -#include "libaec.h" - #define M_CONTINUE 1 #define M_EXIT 0 #define M_ERROR (-1) diff --git a/src/encode.c b/src/encode.c index 4a03b49..6cbc766 100644 --- a/src/encode.c +++ b/src/encode.c @@ -51,12 +51,6 @@ * */ -#include <config.h> - -#if HAVE_STDINT_H -# include <stdint.h> -#endif - #include <stdio.h> #include <stdlib.h> #include <string.h> diff --git a/src/encode.h b/src/encode.h index db96d1c..264cd77 100644 --- a/src/encode.h +++ b/src/encode.h @@ -52,16 +52,12 @@ */ #ifndef ENCODE_H -#define ENCODE_H - -#include <config.h> +#define ENCODE_H 1 #if HAVE_STDINT_H -# include <stdint.h> +# include <stdint.h> #endif -#include "libaec.h" - #define M_CONTINUE 1 #define M_EXIT 0 #define MIN(a, b) (((a) < (b))? (a): (b)) diff --git a/src/encode_accessors.h b/src/encode_accessors.h index f94683a..88f9c05 100644 --- a/src/encode_accessors.h +++ b/src/encode_accessors.h @@ -51,16 +51,12 @@ */ #ifndef ENCODE_ACCESSORS_H -#define ENCODE_ACCESSORS_H - -#include <config.h> +#define ENCODE_ACCESSORS_H 1 #if HAVE_STDINT_H -# include <stdint.h> +# include <stdint.h> #endif -#include "libaec.h" - uint32_t aec_get_8(struct aec_stream *strm); uint32_t aec_get_lsb_16(struct aec_stream *strm); uint32_t aec_get_msb_16(struct aec_stream *strm); diff --git a/src/libaec.h b/src/libaec.h index 9cacd99..49ec078 100644 --- a/src/libaec.h +++ b/src/libaec.h @@ -51,10 +51,25 @@ */ #ifndef LIBAEC_H -#define LIBAEC_H +#define LIBAEC_H 1 #include <stddef.h> +#if HAVE_CONFIG_H +# include <config.h> +#endif + +#ifdef _WIN32 +# ifdef DLL_EXPORT +# define AEC_SCOPE __declspec(dllexport) +# else +# define AEC_SCOPE extern __declspec(dllimport) +# endif +#endif +#ifndef AEC_SCOPE +# define AEC_SCOPE extern +#endif + struct internal_state; struct aec_stream { @@ -124,16 +139,16 @@ struct aec_stream { */ /* Streaming encoding and decoding functions */ -int aec_encode_init(struct aec_stream *strm); -int aec_encode(struct aec_stream *strm, int flush); -int aec_encode_end(struct aec_stream *strm); +AEC_SCOPE int aec_encode_init(struct aec_stream *strm); +AEC_SCOPE int aec_encode(struct aec_stream *strm, int flush); +AEC_SCOPE int aec_encode_end(struct aec_stream *strm); -int aec_decode_init(struct aec_stream *strm); -int aec_decode(struct aec_stream *strm, int flush); -int aec_decode_end(struct aec_stream *strm); +AEC_SCOPE int aec_decode_init(struct aec_stream *strm); +AEC_SCOPE int aec_decode(struct aec_stream *strm, int flush); +AEC_SCOPE int aec_decode_end(struct aec_stream *strm); /* Utility functions for encoding or decoding a memory buffer. */ -int aec_buffer_encode(struct aec_stream *strm); -int aec_buffer_decode(struct aec_stream *strm); +AEC_SCOPE int aec_buffer_encode(struct aec_stream *strm); +AEC_SCOPE int aec_buffer_decode(struct aec_stream *strm); #endif /* LIBAEC_H */ diff --git a/src/sz_compat.c b/src/sz_compat.c index 5c70cdf..bac36d2 100644 --- a/src/sz_compat.c +++ b/src/sz_compat.c @@ -1,9 +1,7 @@ #include <stdio.h> -#include <stddef.h> -#include <string.h> #include <stdlib.h> +#include <string.h> #include "szlib.h" -#include "libaec.h" #define NOPTS 129 diff --git a/src/szlib.h b/src/szlib.h index 4ad55cf..a448754 100644 --- a/src/szlib.h +++ b/src/szlib.h @@ -1,5 +1,5 @@ #ifndef SZLIB_H -#define SZLIB_H +#define SZLIB_H 1 #include "libaec.h" @@ -30,13 +30,13 @@ typedef struct SZ_com_t_s int pixels_per_scanline; } SZ_com_t; -int SZ_BufftoBuffCompress(void *dest, size_t *destLen, +AEC_SCOPE int SZ_BufftoBuffCompress(void *dest, size_t *destLen, const void *source, size_t sourceLen, SZ_com_t *param); -int SZ_BufftoBuffDecompress(void *dest, size_t *destLen, +AEC_SCOPE int SZ_BufftoBuffDecompress(void *dest, size_t *destLen, const void *source, size_t sourceLen, SZ_com_t *param); -int SZ_encoder_enabled(void); +AEC_SCOPE int SZ_encoder_enabled(void); #endif /* SZLIB_H */ |