summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFabio Alessandrelli <fabio.alessandrelli@gmail.com>2022-06-18 14:05:07 +0200
committerFabio Alessandrelli <fabio.alessandrelli@gmail.com>2022-06-18 14:35:51 +0200
commitf315912d8568d47c52f739807768629714981fdf (patch)
tree1004ade5bda98da37227913eb18e3812897fa202
parent62ab2e59f8781286724b1347a0bf97b88ccc63e6 (diff)
downloadfork-godot-webrtc-native-f315912d8568d47c52f739807768629714981fdf.tar.gz
fork-godot-webrtc-native-f315912d8568d47c52f739807768629714981fdf.tar.bz2
fork-godot-webrtc-native-f315912d8568d47c52f739807768629714981fdf.zip
[Windows] Fix windows build with mingw.
Forces ".dll" extension for library when building with mingw. Override GDN_EXPORT which is incorrectly defined in the upstream gdnative headers (3.x) and godot-cpp include (4.0) when building for windows with mingw.
-rw-r--r--SConstruct4
-rw-r--r--src/init_gdextension.cpp6
-rw-r--r--src/init_gdnative.cpp6
3 files changed, 16 insertions, 0 deletions
diff --git a/SConstruct b/SConstruct
index 56bb711..e79913e 100644
--- a/SConstruct
+++ b/SConstruct
@@ -67,6 +67,10 @@ else:
})
env = env.Clone()
+# Patch mingw SHLIBSUFFIX.
+if env["platform"] == "windows" and env["use_mingw"]:
+ env["SHLIBSUFFIX"] = ".dll"
+
opts.Update(env)
target = env["target"]
diff --git a/src/init_gdextension.cpp b/src/init_gdextension.cpp
index c923881..b252379 100644
--- a/src/init_gdextension.cpp
+++ b/src/init_gdextension.cpp
@@ -37,6 +37,12 @@
#include "WebRTCLibDataChannel.hpp"
#include "WebRTCLibPeerConnection.hpp"
+#ifdef _WIN32
+// See upstream godot-cpp GH-771.
+#undef GDN_EXPORT
+#define GDN_EXPORT __declspec(dllexport)
+#endif
+
using namespace godot;
using namespace godot_webrtc;
diff --git a/src/init_gdnative.cpp b/src/init_gdnative.cpp
index 77669af..00109a4 100644
--- a/src/init_gdnative.cpp
+++ b/src/init_gdnative.cpp
@@ -34,6 +34,12 @@
#include <gdnative_api_struct.gen.h>
#include <net/godot_net.h>
+#ifdef _WIN32
+// See upstream godot GH-62173.
+#undef GDN_EXPORT
+#define GDN_EXPORT __declspec(dllexport)
+#endif
+
/* Singleton */
static bool _singleton = false;
static const godot_object *_singleton_lib = NULL;