diff --git a/CMakeLists.txt b/CMakeLists.txt index d71d26cf5de7acc9402f5998f72e8228367d6947..4f3861853aaf5c0f4a372b8cf260f28ec502fee2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -43,9 +43,6 @@ option(BUILD_SHARED_LIBS "Build Shared Libraries" ON) if(BUILD_SHARED_LIBS) set (LIB_TYPE SHARED) else(BUILD_SHARED_LIBS) - if(WIN32) - message(WARNING "You will have to modify libaec.h for static libs.") - endif(WIN32) set(LIB_TYPE STATIC) endif(BUILD_SHARED_LIBS) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index ed6053ea4ea63a46dc06c766e2d5426f14b3259c..93a78f21e76f19e46f310259f2fbab2ccba3342c 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,5 +1,13 @@ +include (GenerateExportHeader) add_library(aec ${LIB_TYPE} ${libaec_SRCS}) set_target_properties(aec PROPERTIES VERSION 0.0.10 SOVERSION 0) +generate_export_header(aec + BASE_NAME libaec + EXPORT_MACRO_NAME libaec_EXPORT + EXPORT_FILE_NAME ${PROJECT_BINARY_DIR}/libaec_Export.h + STATIC_DEFINE libaec_BUILT_AS_STATIC +) + add_library(sz ${LIB_TYPE} sz_compat.c) set_target_properties(sz PROPERTIES VERSION 2.0.1 SOVERSION 2) @@ -41,7 +49,7 @@ else(WIN32) DESTINATION ${CMAKE_INSTALL_FULL_MANDIR}/man1 COMPONENT doc) endif(WIN32) -install(FILES libaec.h szlib.h +install(FILES libaec.h szlib.h ${PROJECT_BINARY_DIR}/libaec_Export.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} COMPONENT headers) install(TARGETS aec_client diff --git a/src/libaec.h b/src/libaec.h index bb43be9a9887104ba67e3b2d9635999f39e00c37..44505e488109cc3cdb525c2a32334d63fa3d1211 100644 --- a/src/libaec.h +++ b/src/libaec.h @@ -52,20 +52,12 @@ #include <stddef.h> +#include "libaec_Export.h" + #ifdef __cplusplus extern "C"{ #endif -#if BUILDING_LIBAEC && HAVE_VISIBILITY -# define LIBAEC_DLL_EXPORTED __attribute__((__visibility__("default"))) -#elif BUILDING_LIBAEC && defined _MSC_VER -# define LIBAEC_DLL_EXPORTED __declspec(dllexport) -#elif defined _MSC_VER -# define LIBAEC_DLL_EXPORTED __declspec(dllimport) -#else -# define LIBAEC_DLL_EXPORTED -#endif - struct internal_state; struct aec_stream { @@ -155,19 +147,19 @@ struct aec_stream { /*********************************************/ /* Streaming encoding and decoding functions */ /*********************************************/ -LIBAEC_DLL_EXPORTED int aec_encode_init(struct aec_stream *strm); -LIBAEC_DLL_EXPORTED int aec_encode(struct aec_stream *strm, int flush); -LIBAEC_DLL_EXPORTED int aec_encode_end(struct aec_stream *strm); +libaec_EXPORT int aec_encode_init(struct aec_stream *strm); +libaec_EXPORT int aec_encode(struct aec_stream *strm, int flush); +libaec_EXPORT int aec_encode_end(struct aec_stream *strm); -LIBAEC_DLL_EXPORTED int aec_decode_init(struct aec_stream *strm); -LIBAEC_DLL_EXPORTED int aec_decode(struct aec_stream *strm, int flush); -LIBAEC_DLL_EXPORTED int aec_decode_end(struct aec_stream *strm); +libaec_EXPORT int aec_decode_init(struct aec_stream *strm); +libaec_EXPORT int aec_decode(struct aec_stream *strm, int flush); +libaec_EXPORT int aec_decode_end(struct aec_stream *strm); /***************************************************************/ /* Utility functions for encoding or decoding a memory buffer. */ /***************************************************************/ -LIBAEC_DLL_EXPORTED int aec_buffer_encode(struct aec_stream *strm); -LIBAEC_DLL_EXPORTED int aec_buffer_decode(struct aec_stream *strm); +libaec_EXPORT int aec_buffer_encode(struct aec_stream *strm); +libaec_EXPORT int aec_buffer_decode(struct aec_stream *strm); #ifdef __cplusplus } diff --git a/src/szlib.h b/src/szlib.h index 1eaa5775a15eec4cf4d3f93d7b059c89a60f5a6f..18b6a3cdfb1589b277719413abdb27cfac9aaaac 100644 --- a/src/szlib.h +++ b/src/szlib.h @@ -80,15 +80,15 @@ typedef struct SZ_com_t_s int pixels_per_scanline; } SZ_com_t; -LIBAEC_DLL_EXPORTED int SZ_BufftoBuffCompress( +libaec_EXPORT int SZ_BufftoBuffCompress( void *dest, size_t *destLen, const void *source, size_t sourceLen, SZ_com_t *param); -LIBAEC_DLL_EXPORTED int SZ_BufftoBuffDecompress( +libaec_EXPORT int SZ_BufftoBuffDecompress( void *dest, size_t *destLen, const void *source, size_t sourceLen, SZ_com_t *param); -LIBAEC_DLL_EXPORTED int SZ_encoder_enabled(void); +libaec_EXPORT int SZ_encoder_enabled(void); #endif /* SZLIB_H */