INCLUDE(CheckIncludeFiles)
INCLUDE(TestBigEndian)
INCLUDE(CheckCSourceCompiles)
-INCLUDE(GenerateExportHeader)
PROJECT(libaec)
SET(libaec_VERSION_MAJOR 0)
SET(libaec_VERSION_MINOR 2)
${CMAKE_CURRENT_SOURCE_DIR}/config.h.in
${CMAKE_CURRENT_BINARY_DIR}/config.h
)
+ADD_DEFINITIONS("-DHAVE_CONFIG_H")
+
+# Allow the developer to select if Dynamic or Static libraries are built
+OPTION (BUILD_SHARED_LIBS "Build Shared Libraries" OFF)
+SET (LIB_TYPE STATIC)
+IF (BUILD_SHARED_LIBS)
+ # User wants to build Dynamic Libraries,
+ # so change the LIB_TYPE variable to CMake keyword 'SHARED'
+ SET (LIB_TYPE SHARED)
+ENDIF (BUILD_SHARED_LIBS)
-SET(BUILD_SHARED_LIBS FALSE)
INCLUDE_DIRECTORIES("${PROJECT_BINARY_DIR}")
+INCLUDE_DIRECTORIES("${PROJECT_BINARY_DIR}/src")
INCLUDE_DIRECTORIES("${PROJECT_SOURCE_DIR}/src")
ADD_SUBDIRECTORY(src)
-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)
*
*/
-#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 \
*/
#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)
*
*/
-#include <config.h>
-
-#if HAVE_STDINT_H
-# include <stdint.h>
-#endif
-
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
*/
#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))
*/
#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);
*/
#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 {
*/
/* 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 */
#include <stdio.h>
-#include <stddef.h>
-#include <string.h>
#include <stdlib.h>
+#include <string.h>
#include "szlib.h"
-#include "libaec.h"
#define NOPTS 129
#ifndef SZLIB_H
-#define SZLIB_H
+#define SZLIB_H 1
#include "libaec.h"
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 */
-ADD_LIBRARY(check_aec check_aec.c)
+ADD_LIBRARY(check_aec STATIC check_aec.c)
+TARGET_LINK_LIBRARIES(check_aec aec)
ADD_EXECUTABLE(check_code_options check_code_options.c)
TARGET_LINK_LIBRARIES(check_code_options check_aec aec)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
-#include "libaec.h"
#include "check_aec.h"
static void out_lsb(unsigned char *dest, unsigned int val, int size)
#ifndef CHECK_AEC_H
-#define CHECK_AEC_H
+#define CHECK_AEC_H 1
#include "libaec.h"
struct test_state {
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
-#include "libaec.h"
#include "check_aec.h"
#define BUF_SIZE 1024 * 3
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
-#include "libaec.h"
#include "check_aec.h"
#define BUF_SIZE 1024 * 3
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
-#include "libaec.h"
#include "check_aec.h"
#define BUF_SIZE (64 * 4)