Enable DLL/plugin builds with cmake on Windows.
Add proper declspec dllimport/dllexport to all libyasm functions.
Use macros to make these do nothing on non-cmake and Unix builds.
svn path=/trunk/yasm/; revision=2101
diff --git a/libyasm/assocdat.h b/libyasm/assocdat.h
index 4b162d6..d18e1eb 100644
--- a/libyasm/assocdat.h
+++ b/libyasm/assocdat.h
@@ -34,10 +34,15 @@
#ifndef YASM_ASSOCDAT_H
#define YASM_ASSOCDAT_H
+#ifndef YASM_LIB_DECL
+#define YASM_LIB_DECL
+#endif
+
/** Associated data container. */
typedef struct yasm__assoc_data yasm__assoc_data;
/** Create an associated data container. */
+YASM_LIB_DECL
/*@only@*/ yasm__assoc_data *yasm__assoc_data_create(void);
/** Get associated data for a data callback.
@@ -45,6 +50,7 @@
* \param callback callback used when adding data
* \return Associated data (NULL if none).
*/
+YASM_LIB_DECL
/*@dependent@*/ /*@null@*/ void *yasm__assoc_data_get
(/*@null@*/ yasm__assoc_data *assoc_data,
const yasm_assoc_data_callback *callback);
@@ -55,16 +61,19 @@
* \param callback callback
* \param data data to associate
*/
+YASM_LIB_DECL
/*@only@*/ yasm__assoc_data *yasm__assoc_data_add
(/*@null@*/ /*@only@*/ yasm__assoc_data *assoc_data,
const yasm_assoc_data_callback *callback,
/*@only@*/ /*@null@*/ void *data);
/** Destroy all associated data in a container. */
+YASM_LIB_DECL
void yasm__assoc_data_destroy
(/*@null@*/ /*@only@*/ yasm__assoc_data *assoc_data);
/** Print all associated data in a container. */
+YASM_LIB_DECL
void yasm__assoc_data_print(const yasm__assoc_data *assoc_data, FILE *f,
int indent_level);