Преглед изворни кода

AS Autobindings: guard implicitly declared destructor wrappers by defines

1vanK пре 5 година
родитељ
комит
2512cc838a

+ 11 - 1
Source/Tools/BindingGenerator/ASClassBinder.cpp

@@ -481,13 +481,23 @@ static void RegisterImplicitlyDeclaredDestructor(const ClassAnalyzer& classAnaly
     string className = classAnalyzer.GetClassName();
     string wrapperName = className + "_Destructor";
     shared_ptr<ASGeneratedFile_Members> result = GetGeneratedFile(className);
+    string header = classAnalyzer.GetHeaderFile();
+    string insideDefine = InsideDefine(header);
+
+    if (!insideDefine.empty())
+        result->glue_ << "#ifdef " << insideDefine << "\n";
 
     result->glue_ <<
         "// " << className << "::~" << className << "() | Implicitly-declared \n"
         "static void " << wrapperName << "(" << className << "* ptr)\n"
         "{\n"
         "    ptr->~" << className << "();\n"
-        "}\n\n";
+        "}\n";
+
+    if (!insideDefine.empty())
+        result->glue_ << "#endif\n";
+
+    result->glue_ << "\n";
 
     result->reg_ <<
         "    // " << className << "::~" << className << "() | Implicitly-declared\n"

+ 4 - 0
Source/Urho3D/AngelScript/Generated_Members_D.cpp

@@ -241,11 +241,13 @@ static void DebugTriangle_Destructor(DebugTriangle* ptr)
     ptr->~DebugTriangle();
 }
 
+#ifdef URHO3D_URHO2D
 // DelayedWorldTransform2D::~DelayedWorldTransform2D() | Implicitly-declared 
 static void DelayedWorldTransform2D_Destructor(DelayedWorldTransform2D* ptr)
 {
     ptr->~DelayedWorldTransform2D();
 }
+#endif
 
 // Decal::~Decal() | Implicitly-declared 
 static void Decal_Destructor(Decal* ptr)
@@ -265,11 +267,13 @@ static void DecalVertex_Destructor(DecalVertex* ptr)
     ptr->~DecalVertex();
 }
 
+#ifdef URHO3D_PHYSICS
 // DelayedWorldTransform::~DelayedWorldTransform() | Implicitly-declared 
 static void DelayedWorldTransform_Destructor(DelayedWorldTransform* ptr)
 {
     ptr->~DelayedWorldTransform();
 }
+#endif
 
 // DirtyBits::DirtyBits(const DirtyBits& bits) | File: ../Scene/ReplicationState.h
 static void DirtyBits_DirtyBits_DirtyBits(DirtyBits* ptr, const DirtyBits &bits)

+ 2 - 0
Source/Urho3D/AngelScript/Generated_Members_M.cpp

@@ -259,11 +259,13 @@ static void ModelMorph_Destructor(ModelMorph* ptr)
     ptr->~ModelMorph();
 }
 
+#ifdef URHO3D_PHYSICS
 // ManifoldPair::~ManifoldPair() | Implicitly-declared 
 static void ManifoldPair_Destructor(ManifoldPair* ptr)
 {
     ptr->~ManifoldPair();
 }
+#endif
 
 // MaterialShaderParameter::~MaterialShaderParameter() | Implicitly-declared 
 static void MaterialShaderParameter_Destructor(MaterialShaderParameter* ptr)

+ 6 - 0
Source/Urho3D/AngelScript/Generated_Members_N.cpp

@@ -33,11 +33,13 @@ namespace Urho3D
 void FakeAddRef(void* ptr);
 void FakeReleaseRef(void* ptr);
 
+#ifdef URHO3D_NAVIGATION
 // NavigationGeometryInfo::~NavigationGeometryInfo() | Implicitly-declared 
 static void NavigationGeometryInfo_Destructor(NavigationGeometryInfo* ptr)
 {
     ptr->~NavigationGeometryInfo();
 }
+#endif
 
 // explicit NamedPipe::NamedPipe(Context* context) | File: ../IO/NamedPipe.h
 static NamedPipe* NamedPipe_NamedPipe_Context()
@@ -235,17 +237,21 @@ static void NetworkState_Destructor(NetworkState* ptr)
     ptr->~NetworkState();
 }
 
+#ifdef URHO3D_NAVIGATION
 // NavigationPathPoint::~NavigationPathPoint() | Implicitly-declared 
 static void NavigationPathPoint_Destructor(NavigationPathPoint* ptr)
 {
     ptr->~NavigationPathPoint();
 }
+#endif
 
+#ifdef URHO3D_NAVIGATION
 // NavAreaStub::~NavAreaStub() | Implicitly-declared 
 static void NavAreaStub_Destructor(NavAreaStub* ptr)
 {
     ptr->~NavAreaStub();
 }
+#endif
 
 // NodeImpl::~NodeImpl() | Implicitly-declared 
 static void NodeImpl_Destructor(NodeImpl* ptr)

+ 12 - 0
Source/Urho3D/AngelScript/Generated_Members_P.cpp

@@ -39,11 +39,13 @@ namespace Urho3D
 void FakeAddRef(void* ptr);
 void FakeReleaseRef(void* ptr);
 
+#ifdef URHO3D_PHYSICS
 // PhysicsWorldConfig::~PhysicsWorldConfig() | Implicitly-declared 
 static void PhysicsWorldConfig_Destructor(PhysicsWorldConfig* ptr)
 {
     ptr->~PhysicsWorldConfig();
 }
+#endif
 
 // const PODVector<Light*>& Drawable::GetLights() const | File: ../Graphics/Drawable.h
 static CScriptArray* ParticleEmitter_GetLights_void(ParticleEmitter* ptr)
@@ -370,17 +372,21 @@ static void PerThreadSceneResult_Destructor(PerThreadSceneResult* ptr)
     ptr->~PerThreadSceneResult();
 }
 
+#ifdef URHO3D_NETWORK
 // PackageDownload::~PackageDownload() | Implicitly-declared 
 static void PackageDownload_Destructor(PackageDownload* ptr)
 {
     ptr->~PackageDownload();
 }
+#endif
 
+#ifdef URHO3D_NETWORK
 // PackageUpload::~PackageUpload() | Implicitly-declared 
 static void PackageUpload_Destructor(PackageUpload* ptr)
 {
     ptr->~PackageUpload();
 }
+#endif
 
 // Particle::~Particle() | Implicitly-declared 
 static void Particle_Destructor(Particle* ptr)
@@ -388,23 +394,29 @@ static void Particle_Destructor(Particle* ptr)
     ptr->~Particle();
 }
 
+#ifdef URHO3D_URHO2D
 // Particle2D::~Particle2D() | Implicitly-declared 
 static void Particle2D_Destructor(Particle2D* ptr)
 {
     ptr->~Particle2D();
 }
+#endif
 
+#ifdef URHO3D_PHYSICS
 // PhysicsRaycastResult::~PhysicsRaycastResult() | Implicitly-declared 
 static void PhysicsRaycastResult_Destructor(PhysicsRaycastResult* ptr)
 {
     ptr->~PhysicsRaycastResult();
 }
+#endif
 
+#ifdef URHO3D_URHO2D
 // PhysicsRaycastResult2D::~PhysicsRaycastResult2D() | Implicitly-declared 
 static void PhysicsRaycastResult2D_Destructor(PhysicsRaycastResult2D* ptr)
 {
     ptr->~PhysicsRaycastResult2D();
 }
+#endif
 
 void ASRegisterGenerated_Members_P(asIScriptEngine* engine)
 {

+ 2 - 0
Source/Urho3D/AngelScript/Generated_Members_R.cpp

@@ -309,11 +309,13 @@ static void RefCount_Destructor_RefCount_void(RefCount* ptr)
     ptr->~RefCount();
 }
 
+#ifdef URHO3D_NETWORK
 // RemoteEvent::~RemoteEvent() | Implicitly-declared 
 static void RemoteEvent_Destructor(RemoteEvent* ptr)
 {
     ptr->~RemoteEvent();
 }
+#endif
 
 // RenderPathCommand::~RenderPathCommand() | Implicitly-declared 
 static void RenderPathCommand_Destructor(RenderPathCommand* ptr)

+ 2 - 0
Source/Urho3D/AngelScript/Generated_Members_Sn_Sz.cpp

@@ -528,11 +528,13 @@ static void SourceBatch_Destructor_SourceBatch_void(SourceBatch* ptr)
     ptr->~SourceBatch();
 }
 
+#ifdef URHO3D_URHO2D
 // SourceBatch2D::~SourceBatch2D() | Implicitly-declared 
 static void SourceBatch2D_Destructor(SourceBatch2D* ptr)
 {
     ptr->~SourceBatch2D();
 }
+#endif
 
 // StoredLogMessage::StoredLogMessage(const String& message, int level, bool error) | File: ../IO/Log.h
 static void StoredLogMessage_StoredLogMessage_String_int_bool(StoredLogMessage* ptr, const String &message, int level, bool error)

+ 2 - 0
Source/Urho3D/AngelScript/Generated_Members_V.cpp

@@ -527,11 +527,13 @@ static Viewport* Viewport_Viewport_Context_Scene_Camera_IntRect_RenderPath(Scene
     return new Viewport(GetScriptContext(), scene, camera, rect, renderPath);
 }
 
+#ifdef URHO3D_URHO2D
 // Vertex2D::~Vertex2D() | Implicitly-declared 
 static void Vertex2D_Destructor(Vertex2D* ptr)
 {
     ptr->~Vertex2D();
 }
+#endif
 
 // VertexBufferMorph::~VertexBufferMorph() | Implicitly-declared 
 static void VertexBufferMorph_Destructor(VertexBufferMorph* ptr)