mapi: Use MAPI_EXPORT to export public functions.
authorChia-I Wu <olv@lunarg.com>
Sat, 21 Aug 2010 05:03:50 +0000 (13:03 +0800)
committerChia-I Wu <olv@lunarg.com>
Sat, 21 Aug 2010 06:13:59 +0000 (14:13 +0800)
mapi.h is included by vgapi and st/vega.  On win32, the macro expands to
dllexport and dllimport respectively.

src/mapi/mapi/mapi.h
src/mapi/vgapi/SConscript

index 8832b3dfb6e82a6c91691cab334bcfea50007144..c7e43e22e9fae803f26b2d67fc63454b16935e51 100644 (file)
 
 #include "u_compiler.h"
 
+#ifdef _WIN32
+#ifdef MAPI_DLL_EXPORTS
+#define MAPI_EXPORT __declspec(dllexport)
+#else
+#define MAPI_EXPORT __declspec(dllimport)
+#endif
+#else /* _WIN32 */
+#define MAPI_EXPORT PUBLIC
+#endif
+
 typedef void (*mapi_proc)(void);
 
 struct mapi_table;
 
-PUBLIC void
+MAPI_EXPORT void
 mapi_init(const char *spec);
 
-PUBLIC mapi_proc
+MAPI_EXPORT mapi_proc
 mapi_get_proc_address(const char *name);
 
-PUBLIC struct mapi_table *
+MAPI_EXPORT struct mapi_table *
 mapi_table_create(void);
 
-PUBLIC void
+MAPI_EXPORT void
 mapi_table_destroy(struct mapi_table *tbl);
 
-PUBLIC void
+MAPI_EXPORT void
 mapi_table_fill(struct mapi_table *tbl, const mapi_proc *procs);
 
-PUBLIC void
+MAPI_EXPORT void
 mapi_table_make_current(const struct mapi_table *tbl);
 
 #endif /* _MAPI_H_ */
index bf51264ab949e2ab5fa1c5070e5758de4187558a..20d7f2744d09c3605fe0895dc179d411b76ec104 100644 (file)
@@ -18,6 +18,7 @@ if env['platform'] != 'winddk':
 
        env.Append(CPPDEFINES = [
                'MAPI_ABI_HEADER=\\"vgapi/vgapi_tmp.h\\"',
+               'MAPI_DLL_EXPORTS',
                'KHRONOS_DLL_EXPORTS',
        ])