[PATCH vkd3d v2 2/2] build: Use dllimport/dllexport on Win32 targets.
Zebediah Figura
zfigura at codeweavers.com
Mon Aug 9 01:11:50 CDT 2021
Tested with x86_64-w64-mingw32-gcc.
Signed-off-by: Zebediah Figura <zfigura at codeweavers.com>
---
v2: New patch.
Makefile.am | 4 +++-
include/vkd3d.h | 6 +++---
include/vkd3d_shader.h | 6 +++---
include/vkd3d_types.h | 11 +++++++++++
include/vkd3d_utils.h | 6 +++---
5 files changed, 23 insertions(+), 10 deletions(-)
diff --git a/Makefile.am b/Makefile.am
index 6745af59..8e7630b4 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -179,7 +179,7 @@ libvkd3d_shader_la_SOURCES = \
libs/vkd3d-shader/vkd3d_shader.map \
libs/vkd3d-shader/vkd3d_shader_main.c \
libs/vkd3d-shader/vkd3d_shader_private.h
-libvkd3d_shader_la_CFLAGS = $(AM_CFLAGS) -I$(srcdir)/libs/vkd3d-shader @SPIRV_TOOLS_CFLAGS@
+libvkd3d_shader_la_CFLAGS = $(AM_CFLAGS) -DLIBVKD3D_SHADER_SOURCE -I$(srcdir)/libs/vkd3d-shader @SPIRV_TOOLS_CFLAGS@
libvkd3d_shader_la_LDFLAGS = $(AM_LDFLAGS) -version-info 1:0:0
libvkd3d_shader_la_LIBADD = libvkd3d-common.la @SPIRV_TOOLS_LIBS@ -lm
if HAVE_LD_VERSION_SCRIPT
@@ -207,6 +207,7 @@ libvkd3d_la_SOURCES = \
libs/vkd3d/vkd3d_private.h \
libs/vkd3d/vkd3d_shaders.h \
libs/vkd3d/vulkan_procs.h
+libvkd3d_la_CFLAGS = $(AM_CFLAGS) -DLIBVKD3D_SOURCE
libvkd3d_la_LDFLAGS = $(AM_LDFLAGS) -version-info 3:0:2
libvkd3d_la_LIBADD = libvkd3d-common.la libvkd3d-shader.la @DL_LIBS@ @PTHREAD_LIBS@
if HAVE_LD_VERSION_SCRIPT
@@ -218,6 +219,7 @@ libvkd3d_utils_la_SOURCES = \
libs/vkd3d-utils/vkd3d_utils.map \
libs/vkd3d-utils/vkd3d_utils_main.c \
libs/vkd3d-utils/vkd3d_utils_private.h
+libvkd3d_utils_la_CFLAGS = $(AM_CFLAGS) -DLIBVKD3D_UTILS_SOURCE
libvkd3d_utils_la_LDFLAGS = $(AM_LDFLAGS) -version-info 2:0:1
libvkd3d_utils_la_LIBADD = libvkd3d-common.la libvkd3d-shader.la libvkd3d.la @PTHREAD_LIBS@
if HAVE_LD_VERSION_SCRIPT
diff --git a/include/vkd3d.h b/include/vkd3d.h
index 1bb87b4a..61ccf6c3 100644
--- a/include/vkd3d.h
+++ b/include/vkd3d.h
@@ -153,10 +153,10 @@ struct vkd3d_image_resource_create_info
D3D12_RESOURCE_STATES present_state;
};
-#if defined(__GNUC__) && !defined(__MINGW32__)
-# define VKD3D_API __attribute__((visibility("default")))
+#ifdef LIBVKD3D_SOURCE
+# define VKD3D_API VKD3D_EXPORT
#else
-# define VKD3D_API
+# define VKD3D_API VKD3D_IMPORT
#endif
#ifndef VKD3D_NO_PROTOTYPES
diff --git a/include/vkd3d_shader.h b/include/vkd3d_shader.h
index 24f99fb9..5092fac9 100644
--- a/include/vkd3d_shader.h
+++ b/include/vkd3d_shader.h
@@ -1340,10 +1340,10 @@ static inline uint32_t vkd3d_shader_create_swizzle(enum vkd3d_shader_swizzle_com
| ((w & VKD3D_SHADER_SWIZZLE_MASK) << VKD3D_SHADER_SWIZZLE_SHIFT(3));
}
-#if defined(__GNUC__) && !defined(__MINGW32__)
-# define VKD3D_SHADER_API __attribute__((visibility("default")))
+#ifdef LIBVKD3D_SHADER_SOURCE
+# define VKD3D_SHADER_API VKD3D_EXPORT
#else
-# define VKD3D_SHADER_API
+# define VKD3D_SHADER_API VKD3D_IMPORT
#endif
#ifndef VKD3D_SHADER_NO_PROTOTYPES
diff --git a/include/vkd3d_types.h b/include/vkd3d_types.h
index 020eb240..7014f4c2 100644
--- a/include/vkd3d_types.h
+++ b/include/vkd3d_types.h
@@ -53,6 +53,17 @@ enum vkd3d_result
VKD3D_FORCE_32_BIT_ENUM(VKD3D_RESULT),
};
+#ifdef _WIN32
+# define VKD3D_IMPORT __declspec(dllimport)
+# define VKD3D_EXPORT __declspec(dllexport)
+#elif defined(__GNUC__)
+# define VKD3D_IMPORT
+# define VKD3D_EXPORT __attribute__((visibility("default")))
+#else
+# define VKD3D_IMPORT
+# define VKD3D_EXPORT
+#endif
+
#ifdef __cplusplus
}
#endif /* __cplusplus */
diff --git a/include/vkd3d_utils.h b/include/vkd3d_utils.h
index ea310a0e..a81f229d 100644
--- a/include/vkd3d_utils.h
+++ b/include/vkd3d_utils.h
@@ -34,10 +34,10 @@ extern "C" {
#define VKD3D_WAIT_FAILED (~0u)
#define VKD3D_INFINITE (~0u)
-#if defined(__GNUC__) && !defined(__MINGW32__)
-# define VKD3D_UTILS_API __attribute__((visibility("default")))
+#ifdef LIBVKD3D_UTILS_SOURCE
+# define VKD3D_UTILS_API VKD3D_EXPORT
#else
-# define VKD3D_UTILS_API
+# define VKD3D_UTILS_API VKD3D_IMPORT
#endif
/* 1.0 */
--
2.32.0
More information about the wine-devel
mailing list