2
0
Karroffel 8 жил өмнө
parent
commit
8d63048c6d
35 өөрчлөгдсөн 259 нэмэгдсэн , 43 устгасан
  1. 1 0
      .gitignore
  2. 12 3
      binding_generator/src/main.rs
  3. BIN
      include/.sconsign.dblite
  4. 20 9
      include/SConstruct
  5. BIN
      include/godot.windows.tools.64.lib
  6. 11 1
      include/godot_cpp/core/Array.hpp
  7. 11 1
      include/godot_cpp/core/Basis.hpp
  8. 11 1
      include/godot_cpp/core/Color.hpp
  9. 1 1
      include/godot_cpp/core/CoreTypes.hpp
  10. 11 1
      include/godot_cpp/core/Dictionary.hpp
  11. 11 1
      include/godot_cpp/core/Image.hpp
  12. 1 1
      include/godot_cpp/core/InputEvent.cpp
  13. 12 2
      include/godot_cpp/core/InputEvent.hpp
  14. 11 1
      include/godot_cpp/core/NodePath.hpp
  15. 11 1
      include/godot_cpp/core/Plane.hpp
  16. 17 7
      include/godot_cpp/core/PoolArrays.hpp
  17. 11 1
      include/godot_cpp/core/Quat.hpp
  18. 11 1
      include/godot_cpp/core/RID.hpp
  19. 1 1
      include/godot_cpp/core/Rect2.cpp
  20. 11 1
      include/godot_cpp/core/Rect2.hpp
  21. 11 1
      include/godot_cpp/core/Rect3.hpp
  22. 5 0
      include/godot_cpp/core/String.cpp
  23. 11 1
      include/godot_cpp/core/String.hpp
  24. 11 1
      include/godot_cpp/core/Transform.hpp
  25. 1 1
      include/godot_cpp/core/Transform2D.cpp
  26. 11 1
      include/godot_cpp/core/Transform2D.hpp
  27. 12 2
      include/godot_cpp/core/Variant.hpp
  28. 11 1
      include/godot_cpp/core/Vector2.hpp
  29. 11 1
      include/godot_cpp/core/Vector3.hpp
  30. BIN
      include/godot_cpp_bindings.dll
  31. BIN
      include/godot_cpp_bindings.exp
  32. BIN
      include/godot_cpp_bindings.lib
  33. BIN
      include/godot_cpp_core.dll
  34. BIN
      include/godot_cpp_core.exp
  35. BIN
      include/godot_cpp_core.lib

+ 1 - 0
.gitignore

@@ -4,3 +4,4 @@ include/godot.h
 include/godot
 *.os
 *.so
+*.obj

+ 12 - 3
binding_generator/src/main.rs

@@ -125,6 +125,15 @@ fn generate_class_header(used_classes: &HashSet<&String>, class: &GodotClass) ->
 
 	contents = contents + "#define ";
 	contents = contents + strip_name(&class.name).to_string().to_uppercase().as_str() + "_H\n\n";
+	
+	contents = contents + "#if defined(_WIN32) && defined(_GD_CPP_BINDING_IMPL)\n";
+	contents = contents + "#  define GD_CPP_BINDING_API __declspec(dllexport)\n";
+	contents = contents + "#elif defined(_WIN32)\n";
+	contents = contents + "#  define GD_CPP_BINDING_API __declspec(dllimport)\n";
+	contents = contents + "#else\n";
+	contents = contents + "#  define GD_CPP_BINDING_API\n";
+	contents = contents + "#endif\n\n";
+	
 
 	contents = contents + "\n#include \"core/CoreTypes.hpp\"\n";
 
@@ -154,7 +163,7 @@ fn generate_class_header(used_classes: &HashSet<&String>, class: &GodotClass) ->
 		name
 	};
 
-	contents = contents + "class " + strip_name(&class.name);
+	contents = contents + "class GD_CPP_BINDING_API " + strip_name(&class.name);
 
 	if class.base_class != "" {
 		contents = contents + " : public " + strip_name(&class.base_class);
@@ -234,7 +243,7 @@ fn generate_class_header(used_classes: &HashSet<&String>, class: &GodotClass) ->
 
 	if class.base_class == "" {
 		// Object
-		contents = contents + "\ninline Variant::operator Object() const\n{\n\n";
+		contents = contents + "\ninline\n#if defined(_WIN32)\n#  ifdef _GD_CPP_BINDING_IMPL\n      __declspec(dllexport)\n#  else\n      __declspec(dllimport)\n#  endif\n#endif\nVariant::operator Object() const\n{\n\n";
 
 		contents = contents + "\treturn Object(godot_variant_as_object(&_godot_variant));\n\n";
 
@@ -551,7 +560,7 @@ fn generate_icall_implementation(icalls: &HashSet<(String, Vec<String>)>) -> Str
 			contents = contents + "\t" + if !is_core_type(ret) && !is_primitive(ret) { "godot_object*" } else { strip_name(ret) } + " ret;\n";
 		}
 
-		contents = contents + "\tconst void *args[] = {\n";
+		contents = contents + "\tconst void *args[" + if args.len() == 0 { "1" } else { "" } + "] = {\n";
 
 		let mut j = 0;
 		for arg in args {

BIN
include/.sconsign.dblite


+ 20 - 9
include/SConstruct

@@ -3,14 +3,23 @@ import os
 
 env = Environment()
 
-if ARGUMENTS.get("use_llvm", "yes") == "yes":
+if ARGUMENTS.get("use_llvm", "no") == "yes":
     env["CXX"] = "clang++"
 
 target = ARGUMENTS.get("target", "core")
 
+platform = ARGUMENTS.get("p", "linux")
+
 if (target == "core"):
-    env.Append(CCFLAGS = ['-g','-O3', '-std=c++14'])
+    if platform == "linux":
+        env.Append(CCFLAGS = ['-g','-O3', '-std=c++14'])
+    
     env.Append(CPPPATH=['.', './godot'])
+	
+    if platform == "windows":
+        env.Append(LIBS=['godot.windows.tools.64.lib'])
+	
+    env.Append(CPPFLAGS=['-D_GD_CPP_CORE_API_IMPL'])
 
     sources = [
         'godot_cpp/core/Array.cpp',
@@ -38,18 +47,20 @@ if (target == "core"):
     Default(library)
 
 elif target == "bindings":
-    if env["CXX"] == "clang++":
-        env.Append(CCFLAGS = ['-Wno-writable-strings'])
-    else:
-        env.Append(CCFLAGS = ['-Wno-write-strings', '-Wno-return-local-addr'])
+    if platform == "linux":
+        if env["CXX"] == "clang++":
+            env.Append(CCFLAGS = ['-Wno-writable-strings'])
+        else:
+            env.Append(CCFLAGS = ['-Wno-write-strings', '-Wno-return-local-addr'])
         
-    env.Append(CCFLAGS = ['-g','-O3', '-std=c++14'])
+        env.Append(CCFLAGS = ['-g','-O3', '-std=c++14'])
+        env.Append(LINKFLAGS = ['-Wl,-R,\'$$ORIGIN/\''])
     env.Append(CPPPATH=['.', './godot', './godot_cpp'])
 
-    env.Append(LINKFLAGS = ['-Wl,-R,\'$$ORIGIN/\''])
-    env.Append(LIBS=['godot_cpp_core'])
+    env.Append(LIBS=['godot_cpp_core', 'godot.windows.tools.64'])
     env.Append(LIBPATH=["."])
 
+    env.Append(CPPFLAGS=['-D_GD_CPP_BINDING_IMPL'])
 
     sources = [os.path.join("godot_cpp/impl/", f) for f in os.listdir("godot_cpp/impl/") if f.endswith('.cpp')]
 

BIN
include/godot.windows.tools.64.lib


+ 11 - 1
include/godot_cpp/core/Array.hpp

@@ -1,6 +1,16 @@
 #ifndef ARRAY_H
 #define ARRAY_H
 
+#if defined(_WIN32)
+#  ifdef _GD_CPP_CORE_API_IMPL
+#    define GD_CPP_CORE_API __declspec(dllexport)
+#  else
+#    define GD_CPP_CORE_API __declspec(dllimport)
+#  endif
+#else
+#  define GD_CPP_CORE_API
+#endif
+
 #include <godot/godot_array.h>
 
 #include "String.hpp"
@@ -18,7 +28,7 @@ class PoolColorArray;
 
 class Object;
 
-class Array {
+class GD_CPP_CORE_API Array {
 	godot_array _godot_array;
 public:
 	Array();

+ 11 - 1
include/godot_cpp/core/Basis.hpp

@@ -1,6 +1,16 @@
 #ifndef BASIS_H
 #define BASIS_H
 
+#if defined(_WIN32)
+#  ifdef _GD_CPP_CORE_API_IMPL
+#    define GD_CPP_CORE_API __declspec(dllexport)
+#  else
+#    define GD_CPP_CORE_API __declspec(dllimport)
+#  endif
+#else
+#  define GD_CPP_CORE_API
+#endif
+
 #include "Defs.hpp"
 
 #include "Vector3.hpp"
@@ -9,7 +19,7 @@ namespace godot {
 
 class Quat;
 
-class Basis {
+class GD_CPP_CORE_API Basis {
 public:
 
 	Vector3 elements[3];

+ 11 - 1
include/godot_cpp/core/Color.hpp

@@ -1,6 +1,16 @@
 #ifndef COLOR_H
 #define COLOR_H
 
+#if defined(_WIN32)
+#  ifdef _GD_CPP_CORE_API_IMPL
+#    define GD_CPP_CORE_API __declspec(dllexport)
+#  else
+#    define GD_CPP_CORE_API __declspec(dllimport)
+#  endif
+#else
+#  define GD_CPP_CORE_API
+#endif
+
 #include <godot/godot_color.h>
 
 #include <cmath>
@@ -10,7 +20,7 @@
 namespace godot {
 
 
-struct Color {
+struct GD_CPP_CORE_API Color {
 
 
 private:

+ 1 - 1
include/godot_cpp/core/CoreTypes.hpp

@@ -18,7 +18,7 @@
 #include "RID.hpp"
 #include "String.hpp"
 #include "Transform.hpp"
-#include "Transform2D.hp"
+#include "Transform2D.hpp"
 #include "Variant.hpp"
 #include "Vector2.hpp"
 #include "Vector3.hpp"

+ 11 - 1
include/godot_cpp/core/Dictionary.hpp

@@ -1,6 +1,16 @@
 #ifndef DICTIONARY_H
 #define DICTIONARY_H
 
+#if defined(_WIN32)
+#  ifdef _GD_CPP_CORE_API_IMPL
+#    define GD_CPP_CORE_API __declspec(dllexport)
+#  else
+#    define GD_CPP_CORE_API __declspec(dllimport)
+#  endif
+#else
+#  define GD_CPP_CORE_API
+#endif
+
 #include "Variant.hpp"
 
 #include "Array.hpp"
@@ -9,7 +19,7 @@
 
 namespace godot {
 
-class Dictionary {
+class GD_CPP_CORE_API Dictionary {
 	godot_dictionary _godot_dictionary;
 public:
 	Dictionary();

+ 11 - 1
include/godot_cpp/core/Image.hpp

@@ -1,6 +1,16 @@
 #ifndef IMAGE_H
 #define IMAGE_H
 
+#if defined(_WIN32)
+#  ifdef _GD_CPP_CORE_API_IMPL
+#    define GD_CPP_CORE_API __declspec(dllexport)
+#  else
+#    define GD_CPP_CORE_API __declspec(dllimport)
+#  endif
+#else
+#  define GD_CPP_CORE_API
+#endif
+
 #include "Defs.hpp"
 
 #include "Vector2.hpp"
@@ -14,7 +24,7 @@ namespace godot {
 
 class PoolByteArray;
 
-class Image {
+class GD_CPP_CORE_API Image {
 	godot_image _godot_image;
 public:
 

+ 1 - 1
include/godot_cpp/core/InputEvent.cpp

@@ -4,7 +4,7 @@
 #include <memory.h>
 
 #include "Vector2.hpp"
-#include "Transform2D.hp"
+#include "Transform2D.hpp"
 
 #include <cmath>
 

+ 12 - 2
include/godot_cpp/core/InputEvent.hpp

@@ -1,6 +1,16 @@
 #ifndef INPUTEVENT_H
 #define INPUTEVENT_H
 
+#if defined(_WIN32)
+#  ifdef _GD_CPP_CORE_API_IMPL
+#    define GD_CPP_CORE_API __declspec(dllexport)
+#  else
+#    define GD_CPP_CORE_API __declspec(dllimport)
+#  endif
+#else
+#  define GD_CPP_CORE_API
+#endif
+
 #include <cstdint>
 #include <memory.h>
 
@@ -119,7 +129,7 @@ enum {
  * Input Modifier Status
  * for keyboard/mouse events.
  */
-struct InputModifierState {
+struct GD_CPP_CORE_API InputModifierState {
 
 	bool shift;
 	bool alt;
@@ -223,7 +233,7 @@ struct InputEventAction  {
 
 class Transform2D;
 
-struct InputEvent {
+struct GD_CPP_CORE_API InputEvent {
 
 	enum Type {
 		NONE,

+ 11 - 1
include/godot_cpp/core/NodePath.hpp

@@ -1,6 +1,16 @@
 #ifndef NODEPATH_H
 #define NODEPATH_H
 
+#if defined(_WIN32)
+#  ifdef _GD_CPP_CORE_API_IMPL
+#    define GD_CPP_CORE_API __declspec(dllexport)
+#  else
+#    define GD_CPP_CORE_API __declspec(dllimport)
+#  endif
+#else
+#  define GD_CPP_CORE_API
+#endif
+
 #include "String.hpp"
 
 #include <godot/godot_node_path.h>
@@ -8,7 +18,7 @@
 namespace godot {
 
 
-class NodePath
+class GD_CPP_CORE_API NodePath
 {
 	godot_node_path _node_path;
 public:

+ 11 - 1
include/godot_cpp/core/Plane.hpp

@@ -1,6 +1,16 @@
 #ifndef PLANE_H
 #define PLANE_H
 
+#if defined(_WIN32)
+#  ifdef _GD_CPP_CORE_API_IMPL
+#    define GD_CPP_CORE_API __declspec(dllexport)
+#  else
+#    define GD_CPP_CORE_API __declspec(dllimport)
+#  endif
+#else
+#  define GD_CPP_CORE_API
+#endif
+
 #include "Vector3.hpp"
 
 #include <cmath>
@@ -15,7 +25,7 @@ enum ClockDirection {
 	COUNTERCLOCKWISE
 };
 
-class Plane {
+class GD_CPP_CORE_API Plane {
 public:
 	Vector3 normal;
 	real_t d;

+ 17 - 7
include/godot_cpp/core/PoolArrays.hpp

@@ -1,6 +1,16 @@
 #ifndef POOLARRAYS_H
 #define POOLARRAYS_H
 
+#if defined(_WIN32)
+#  ifdef _GD_CPP_CORE_API_IMPL
+#    define GD_CPP_CORE_API __declspec(dllexport)
+#  else
+#    define GD_CPP_CORE_API __declspec(dllimport)
+#  endif
+#else
+#  define GD_CPP_CORE_API
+#endif
+
 #include "Defs.hpp"
 
 #include "String.hpp"
@@ -14,7 +24,7 @@ namespace godot {
 
 class Array;
 
-class PoolByteArray {
+class GD_CPP_CORE_API PoolByteArray {
 	godot_pool_byte_array _godot_array;
 public:
 	PoolByteArray();
@@ -45,7 +55,7 @@ public:
 };
 
 
-class PoolIntArray {
+class GD_CPP_CORE_API PoolIntArray {
 	godot_pool_int_array _godot_array;
 public:
 	PoolIntArray();
@@ -76,7 +86,7 @@ public:
 };
 
 
-class PoolRealArray {
+class GD_CPP_CORE_API PoolRealArray {
 	godot_pool_real_array _godot_array;
 public:
 	PoolRealArray();
@@ -107,7 +117,7 @@ public:
 };
 
 
-class PoolStringArray {
+class GD_CPP_CORE_API PoolStringArray {
 	godot_pool_string_array _godot_array;
 public:
 	PoolStringArray();
@@ -139,7 +149,7 @@ public:
 
 
 
-class PoolVector2Array {
+class GD_CPP_CORE_API PoolVector2Array {
 	godot_pool_vector2_array _godot_array;
 public:
 	PoolVector2Array();
@@ -170,7 +180,7 @@ public:
 };
 
 
-class PoolVector3Array {
+class GD_CPP_CORE_API PoolVector3Array {
 	godot_pool_vector3_array _godot_array;
 public:
 	PoolVector3Array();
@@ -201,7 +211,7 @@ public:
 };
 
 
-class PoolColorArray {
+class GD_CPP_CORE_API PoolColorArray {
 	godot_pool_color_array _godot_array;
 public:
 	PoolColorArray();

+ 11 - 1
include/godot_cpp/core/Quat.hpp

@@ -1,6 +1,16 @@
 #ifndef QUAT_H
 #define QUAT_H
 
+#if defined(_WIN32)
+#  ifdef _GD_CPP_CORE_API_IMPL
+#    define GD_CPP_CORE_API __declspec(dllexport)
+#  else
+#    define GD_CPP_CORE_API __declspec(dllimport)
+#  endif
+#else
+#  define GD_CPP_CORE_API
+#endif
+
 #include <cmath>
 
 #include "Vector3.hpp"
@@ -9,7 +19,7 @@
 
 namespace godot {
 
-class Quat{
+class GD_CPP_CORE_API Quat{
 public:
 
 	real_t x,y,z,w;

+ 11 - 1
include/godot_cpp/core/RID.hpp

@@ -1,13 +1,23 @@
 #ifndef RID_H
 #define RID_H
 
+#if defined(_WIN32)
+#  ifdef _GD_CPP_CORE_API_IMPL
+#    define GD_CPP_CORE_API __declspec(dllexport)
+#  else
+#    define GD_CPP_CORE_API __declspec(dllimport)
+#  endif
+#else
+#  define GD_CPP_CORE_API
+#endif
+
 #include <godot/godot_rid.h>
 
 namespace godot {
 
 class Object;
 
-class RID {
+class GD_CPP_CORE_API RID {
 	godot_rid _godot_rid;
 public:
 

+ 1 - 1
include/godot_cpp/core/Rect2.cpp

@@ -6,7 +6,7 @@
 
 #include <cmath>
 
-#include "Transform2D.hp"
+#include "Transform2D.hpp"
 
 namespace godot {
 

+ 11 - 1
include/godot_cpp/core/Rect2.hpp

@@ -1,6 +1,16 @@
 #ifndef RECT2_H
 #define RECT2_H
 
+#if defined(_WIN32)
+#  ifdef _GD_CPP_CORE_API_IMPL
+#    define GD_CPP_CORE_API __declspec(dllexport)
+#  else
+#    define GD_CPP_CORE_API __declspec(dllimport)
+#  endif
+#else
+#  define GD_CPP_CORE_API
+#endif
+
 #include "Vector2.hpp"
 
 #include <cmath>
@@ -16,7 +26,7 @@ typedef Vector2 Point2;
 
 class Transform2D;
 
-struct Rect2 {
+struct GD_CPP_CORE_API Rect2 {
 
 	Point2 pos;
 	Size2 size;

+ 11 - 1
include/godot_cpp/core/Rect3.hpp

@@ -1,6 +1,16 @@
 #ifndef RECT3_H
 #define RECT3_H
 
+#if defined(_WIN32)
+#  ifdef _GD_CPP_CORE_API_IMPL
+#    define GD_CPP_CORE_API __declspec(dllexport)
+#  else
+#    define GD_CPP_CORE_API __declspec(dllimport)
+#  endif
+#else
+#  define GD_CPP_CORE_API
+#endif
+
 #include "Vector3.hpp"
 
 #include "Plane.hpp"
@@ -9,7 +19,7 @@
 
 namespace godot {
 
-class Rect3 {
+class GD_CPP_CORE_API Rect3 {
 public:
 	Vector3 pos;
 	Vector3 size;

+ 5 - 0
include/godot_cpp/core/String.cpp

@@ -120,6 +120,11 @@ const wchar_t *String::c_string() const
 }
 
 
+String operator +(const char *a, const String& b)
+{
+	return String(a) + b;
+}
+
 
 
 }

+ 11 - 1
include/godot_cpp/core/String.hpp

@@ -1,11 +1,21 @@
 #ifndef STRING_H
 #define STRING_H
 
+#if defined(_WIN32)
+#  ifdef _GD_CPP_CORE_API_IMPL
+#    define GD_CPP_CORE_API __declspec(dllexport)
+#  else
+#    define GD_CPP_CORE_API __declspec(dllimport)
+#  endif
+#else
+#  define GD_CPP_CORE_API
+#endif
+
 #include <godot/godot_string.h>
 
 namespace godot {
 
-class String
+class GD_CPP_CORE_API String
 {
 	godot_string _godot_string;
 public:

+ 11 - 1
include/godot_cpp/core/Transform.hpp

@@ -1,6 +1,16 @@
 #ifndef TRANSFORM_H
 #define TRANSFORM_H
 
+#if defined(_WIN32)
+#  ifdef _GD_CPP_CORE_API_IMPL
+#    define GD_CPP_CORE_API __declspec(dllexport)
+#  else
+#    define GD_CPP_CORE_API __declspec(dllimport)
+#  endif
+#else
+#  define GD_CPP_CORE_API
+#endif
+
 #include "Basis.hpp"
 
 #include "Plane.hpp"
@@ -8,7 +18,7 @@
 
 namespace godot {
 
-class Transform {
+class GD_CPP_CORE_API Transform {
 public:
 
 	Basis basis;

+ 1 - 1
include/godot_cpp/core/Transform2D.cpp

@@ -1,4 +1,4 @@
-#include "Transform2D.hp"
+#include "Transform2D.hpp"
 
 #include "Vector2.hpp"
 

+ 11 - 1
include/godot_cpp/core/Transform2D.hp → include/godot_cpp/core/Transform2D.hpp

@@ -1,6 +1,16 @@
 #ifndef TRANSFORM2D_H
 #define TRANSFORM2D_H
 
+#if defined(_WIN32)
+#  ifdef _GD_CPP_CORE_API_IMPL
+#    define GD_CPP_CORE_API __declspec(dllexport)
+#  else
+#    define GD_CPP_CORE_API __declspec(dllimport)
+#  endif
+#else
+#  define GD_CPP_CORE_API
+#endif
+
 #include "Vector2.hpp"
 
 
@@ -10,7 +20,7 @@ typedef Vector2 Size2;
 
 class Rect2;
 
-struct Transform2D {
+struct GD_CPP_CORE_API Transform2D {
 	// Warning #1: basis of Transform2D is stored differently from Basis. In terms of elements array, the basis matrix looks like "on paper":
 	// M = (elements[0][0] elements[1][0])
 	//     (elements[0][1] elements[1][1])

+ 12 - 2
include/godot_cpp/core/Variant.hpp

@@ -1,6 +1,16 @@
 #ifndef VARIANT_H
 #define VARIANT_H
 
+#if defined(_WIN32)
+#  ifdef _GD_CPP_CORE_API_IMPL
+#    define GD_CPP_CORE_API __declspec(dllexport)
+#  else
+#    define GD_CPP_CORE_API __declspec(dllimport)
+#  endif
+#else
+#  define GD_CPP_CORE_API
+#endif
+
 #include <godot/godot_variant.h>
 
 #include "Defs.hpp"
@@ -18,7 +28,7 @@
 #include "RID.hpp"
 #include "String.hpp"
 #include "Transform.hpp"
-#include "Transform2D.hp"
+#include "Transform2D.hpp"
 #include "Vector2.hpp"
 #include "Vector3.hpp"
 
@@ -30,7 +40,7 @@ class Dictionary;
 
 class Array;
 
-class Variant {
+class GD_CPP_CORE_API Variant {
 	godot_variant _godot_variant;
 public:
 	enum Type {

+ 11 - 1
include/godot_cpp/core/Vector2.hpp

@@ -2,6 +2,16 @@
 #define VECTOR2_H
 
 
+#if defined(_WIN32)
+#  ifdef _GD_CPP_CORE_API_IMPL
+#    define GD_CPP_CORE_API __declspec(dllexport)
+#  else
+#    define GD_CPP_CORE_API __declspec(dllimport)
+#  endif
+#else
+#  define GD_CPP_CORE_API
+#endif
+
 #include <godot/godot_vector2.h>
 
 #include "Defs.hpp"
@@ -10,7 +20,7 @@ namespace godot {
 
 class String;
 
-struct Vector2 {
+struct GD_CPP_CORE_API Vector2 {
 
 	union {
 		real_t x;

+ 11 - 1
include/godot_cpp/core/Vector3.hpp

@@ -1,6 +1,16 @@
 #ifndef VECTOR3_H
 #define VECTOR3_H
 
+#if defined(_WIN32)
+#  ifdef _GD_CPP_CORE_API_IMPL
+#    define GD_CPP_CORE_API __declspec(dllexport)
+#  else
+#    define GD_CPP_CORE_API __declspec(dllimport)
+#  endif
+#else
+#  define GD_CPP_CORE_API
+#endif
+
 #include "Defs.hpp"
 
 #include "String.hpp"
@@ -8,7 +18,7 @@
 namespace godot {
 
 
-struct Vector3 {
+struct GD_CPP_CORE_API Vector3 {
 
 	enum Axis {
 		AXIS_X,

BIN
include/godot_cpp_bindings.dll


BIN
include/godot_cpp_bindings.exp


BIN
include/godot_cpp_bindings.lib


BIN
include/godot_cpp_core.dll


BIN
include/godot_cpp_core.exp


BIN
include/godot_cpp_core.lib