Browse Source

Merge branch 'master' of github.com:urho3d/Urho3D into websockets-implementation

Arnis Lielturks 5 years ago
parent
commit
d0ce62d4fc

+ 1 - 1
.github/workflows/main.yml

@@ -59,7 +59,7 @@ jobs:
       BUILD_TYPE: ${{ matrix.build-type }}
       LIB_TYPE: ${{ matrix.lib-type }}
       ARCH: ${{ matrix.architecture }}
-      DBE_TAG: latest
+      DBE_TAG: master
     steps:
       - name: Checkout
         uses: actions/checkout@v2

+ 4 - 1
Source/Urho3D/AngelScript/Generated_Members_A.cpp

@@ -304,7 +304,7 @@ void ASRegisterGenerated_Members_A(asIScriptEngine* engine)
     // virtual unsigned Deserializer::GetChecksum() | File: ../IO/Deserializer.h
     engine->RegisterObjectMethod("AbstractFile", "uint GetChecksum()", asMETHODPR(AbstractFile, GetChecksum, (), unsigned), asCALL_THISCALL);
     engine->RegisterObjectMethod("AbstractFile", "uint get_checksum()", asMETHODPR(AbstractFile, GetChecksum, (), unsigned), asCALL_THISCALL);
-    // virtual const String& Deserializer::GetName() const | File: ../IO/Deserializer.h
+    // const String& AbstractFile::GetName() const override | File: ../IO/AbstractFile.h
     engine->RegisterObjectMethod("AbstractFile", "const String& GetName() const", asMETHODPR(AbstractFile, GetName, () const, const String&), asCALL_THISCALL);
     engine->RegisterObjectMethod("AbstractFile", "const String& get_name() const", asMETHODPR(AbstractFile, GetName, () const, const String&), asCALL_THISCALL);
     // unsigned Deserializer::GetPosition() const | File: ../IO/Deserializer.h
@@ -402,6 +402,9 @@ void ASRegisterGenerated_Members_A(asIScriptEngine* engine)
     engine->RegisterObjectMethod("AbstractFile", "uint Seek(uint)", asMETHODPR(AbstractFile, Seek, (unsigned), unsigned), asCALL_THISCALL);
     // unsigned Deserializer::SeekRelative(int delta) | File: ../IO/Deserializer.h
     engine->RegisterObjectMethod("AbstractFile", "uint SeekRelative(int)", asMETHODPR(AbstractFile, SeekRelative, (int), unsigned), asCALL_THISCALL);
+    // virtual void AbstractFile::SetName(const String& name) | File: ../IO/AbstractFile.h
+    engine->RegisterObjectMethod("AbstractFile", "void SetName(const String&in)", asMETHODPR(AbstractFile, SetName, (const String&), void), asCALL_THISCALL);
+    engine->RegisterObjectMethod("AbstractFile", "void set_name(const String&in)", asMETHODPR(AbstractFile, SetName, (const String&), void), asCALL_THISCALL);
     // unsigned Deserializer::Tell() const | File: ../IO/Deserializer.h
     engine->RegisterObjectMethod("AbstractFile", "uint Tell() const", asMETHODPR(AbstractFile, Tell, () const, unsigned), asCALL_THISCALL);
     // virtual unsigned Serializer::Write(const void* data, unsigned size)=0 | File: ../IO/Serializer.h

+ 3 - 2
Source/Urho3D/AngelScript/Generated_Members_F.cpp

@@ -244,7 +244,7 @@ void ASRegisterGenerated_Members_F(asIScriptEngine* engine)
     // FileMode File::GetMode() const | File: ../IO/File.h
     engine->RegisterObjectMethod("File", "FileMode GetMode() const", asMETHODPR(File, GetMode, () const, FileMode), asCALL_THISCALL);
     engine->RegisterObjectMethod("File", "FileMode get_mode() const", asMETHODPR(File, GetMode, () const, FileMode), asCALL_THISCALL);
-    // const String& File::GetName() const override | File: ../IO/File.h
+    // const String& AbstractFile::GetName() const override | File: ../IO/AbstractFile.h
     engine->RegisterObjectMethod("File", "const String& GetName() const", asMETHODPR(File, GetName, () const, const String&), asCALL_THISCALL);
     engine->RegisterObjectMethod("File", "const String& get_name() const", asMETHODPR(File, GetName, () const, const String&), asCALL_THISCALL);
     // unsigned Deserializer::GetPosition() const | File: ../IO/Deserializer.h
@@ -398,8 +398,9 @@ void ASRegisterGenerated_Members_F(asIScriptEngine* engine)
     // void Object::SetGlobalVar(StringHash key, const Variant& value) | File: ../Core/Object.h
     engine->RegisterObjectMethod("File", "void SetGlobalVar(StringHash, const Variant&in)", asMETHODPR(File, SetGlobalVar, (StringHash, const Variant&), void), asCALL_THISCALL);
     engine->RegisterObjectMethod("File", "void set_globalVar(StringHash, const Variant&in)", asMETHODPR(File, SetGlobalVar, (StringHash, const Variant&), void), asCALL_THISCALL);
-    // void File::SetName(const String& name) | File: ../IO/File.h
+    // virtual void AbstractFile::SetName(const String& name) | File: ../IO/AbstractFile.h
     engine->RegisterObjectMethod("File", "void SetName(const String&in)", asMETHODPR(File, SetName, (const String&), void), asCALL_THISCALL);
+    engine->RegisterObjectMethod("File", "void set_name(const String&in)", asMETHODPR(File, SetName, (const String&), void), asCALL_THISCALL);
     // void Object::SubscribeToEvent(StringHash eventType, EventHandler* handler) | File: ../Core/Object.h
     // Error: type "EventHandler*" can not automatically bind
     // void Object::SubscribeToEvent(Object* sender, StringHash eventType, EventHandler* handler) | File: ../Core/Object.h

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

@@ -39,10 +39,10 @@ static NamedPipe* NamedPipe_NamedPipe_Context()
     return new NamedPipe(GetScriptContext());
 }
 
-// NamedPipe::NamedPipe(Context* context, const String& pipeName, bool isServer) | File: ../IO/NamedPipe.h
-static NamedPipe* NamedPipe_NamedPipe_Context_String_bool(const String &pipeName, bool isServer)
+// NamedPipe::NamedPipe(Context* context, const String& name, bool isServer) | File: ../IO/NamedPipe.h
+static NamedPipe* NamedPipe_NamedPipe_Context_String_bool(const String &name, bool isServer)
 {
-    return new NamedPipe(GetScriptContext(), pipeName, isServer);
+    return new NamedPipe(GetScriptContext(), name, isServer);
 }
 
 // StringVector Deserializer::ReadStringVector() | File: ../IO/Deserializer.h
@@ -297,7 +297,7 @@ void ASRegisterGenerated_Members_N(asIScriptEngine* engine)
     // const VariantMap& Object::GetGlobalVars() const | File: ../Core/Object.h
     engine->RegisterObjectMethod("NamedPipe", "const VariantMap& GetGlobalVars() const", asMETHODPR(NamedPipe, GetGlobalVars, () const, const VariantMap&), asCALL_THISCALL);
     engine->RegisterObjectMethod("NamedPipe", "const VariantMap& get_globalVars() const", asMETHODPR(NamedPipe, GetGlobalVars, () const, const VariantMap&), asCALL_THISCALL);
-    // const String& NamedPipe::GetName() const override | File: ../IO/NamedPipe.h
+    // const String& AbstractFile::GetName() const override | File: ../IO/AbstractFile.h
     engine->RegisterObjectMethod("NamedPipe", "const String& GetName() const", asMETHODPR(NamedPipe, GetName, () const, const String&), asCALL_THISCALL);
     engine->RegisterObjectMethod("NamedPipe", "const String& get_name() const", asMETHODPR(NamedPipe, GetName, () const, const String&), asCALL_THISCALL);
     // unsigned Deserializer::GetPosition() const | File: ../IO/Deserializer.h
@@ -343,11 +343,11 @@ void ASRegisterGenerated_Members_N(asIScriptEngine* engine)
     engine->RegisterObjectMethod("NamedPipe", "bool get_server() const", asMETHODPR(NamedPipe, IsServer, () const, bool), asCALL_THISCALL);
     // explicit NamedPipe::NamedPipe(Context* context) | File: ../IO/NamedPipe.h
     engine->RegisterObjectBehaviour("NamedPipe", asBEHAVE_FACTORY, "NamedPipe@+ f()", asFUNCTION(NamedPipe_NamedPipe_Context), asCALL_CDECL);
-    // NamedPipe::NamedPipe(Context* context, const String& pipeName, bool isServer) | File: ../IO/NamedPipe.h
+    // NamedPipe::NamedPipe(Context* context, const String& name, bool isServer) | File: ../IO/NamedPipe.h
     engine->RegisterObjectBehaviour("NamedPipe", asBEHAVE_FACTORY, "NamedPipe@+ f(const String&in, bool)", asFUNCTION(NamedPipe_NamedPipe_Context_String_bool), asCALL_CDECL);
     // virtual void Object::OnEvent(Object* sender, StringHash eventType, VariantMap& eventData) | File: ../Core/Object.h
     engine->RegisterObjectMethod("NamedPipe", "void OnEvent(Object@+, StringHash, VariantMap&)", asMETHODPR(NamedPipe, OnEvent, (Object*, StringHash, VariantMap&), void), asCALL_THISCALL);
-    // bool NamedPipe::Open(const String& pipeName, bool isServer) | File: ../IO/NamedPipe.h
+    // bool NamedPipe::Open(const String& name, bool isServer) | File: ../IO/NamedPipe.h
     engine->RegisterObjectMethod("NamedPipe", "bool Open(const String&in, bool)", asMETHODPR(NamedPipe, Open, (const String&, bool), bool), asCALL_THISCALL);
     // unsigned NamedPipe::Read(void* dest, unsigned size) override | File: ../IO/NamedPipe.h
     // Error: type "void*" can not automatically bind
@@ -453,6 +453,9 @@ void ASRegisterGenerated_Members_N(asIScriptEngine* engine)
     // void Object::SetGlobalVar(StringHash key, const Variant& value) | File: ../Core/Object.h
     engine->RegisterObjectMethod("NamedPipe", "void SetGlobalVar(StringHash, const Variant&in)", asMETHODPR(NamedPipe, SetGlobalVar, (StringHash, const Variant&), void), asCALL_THISCALL);
     engine->RegisterObjectMethod("NamedPipe", "void set_globalVar(StringHash, const Variant&in)", asMETHODPR(NamedPipe, SetGlobalVar, (StringHash, const Variant&), void), asCALL_THISCALL);
+    // void NamedPipe::SetName(const String& name) override | File: ../IO/NamedPipe.h
+    engine->RegisterObjectMethod("NamedPipe", "void SetName(const String&in)", asMETHODPR(NamedPipe, SetName, (const String&), void), asCALL_THISCALL);
+    engine->RegisterObjectMethod("NamedPipe", "void set_name(const String&in)", asMETHODPR(NamedPipe, SetName, (const String&), void), asCALL_THISCALL);
     // void Object::SubscribeToEvent(StringHash eventType, EventHandler* handler) | File: ../Core/Object.h
     // Error: type "EventHandler*" can not automatically bind
     // void Object::SubscribeToEvent(Object* sender, StringHash eventType, EventHandler* handler) | File: ../Core/Object.h

+ 4 - 1
Source/Urho3D/AngelScript/Generated_Members_V.cpp

@@ -1578,7 +1578,7 @@ void ASRegisterGenerated_Members_V(asIScriptEngine* engine)
     // Error: type "const unsigned char*" can not automatically bind
     // unsigned char* VectorBuffer::GetModifiableData() | File: ../IO/VectorBuffer.h
     // Error: type "unsigned char*" can not automatically bind
-    // virtual const String& Deserializer::GetName() const | File: ../IO/Deserializer.h
+    // const String& AbstractFile::GetName() const override | File: ../IO/AbstractFile.h
     engine->RegisterObjectMethod("VectorBuffer", "const String& GetName() const", asMETHODPR(VectorBuffer, GetName, () const, const String&), asCALL_THISCALL);
     engine->RegisterObjectMethod("VectorBuffer", "const String& get_name() const", asMETHODPR(VectorBuffer, GetName, () const, const String&), asCALL_THISCALL);
     // unsigned Deserializer::GetPosition() const | File: ../IO/Deserializer.h
@@ -1684,6 +1684,9 @@ void ASRegisterGenerated_Members_V(asIScriptEngine* engine)
     // Error: type "void*" can not automatically bind
     // void VectorBuffer::SetData(Deserializer& source, unsigned size) | File: ../IO/VectorBuffer.h
     engine->RegisterObjectMethod("VectorBuffer", "void SetData(Deserializer&, uint)", asMETHODPR(VectorBuffer, SetData, (Deserializer&, unsigned), void), asCALL_THISCALL);
+    // virtual void AbstractFile::SetName(const String& name) | File: ../IO/AbstractFile.h
+    engine->RegisterObjectMethod("VectorBuffer", "void SetName(const String&in)", asMETHODPR(VectorBuffer, SetName, (const String&), void), asCALL_THISCALL);
+    engine->RegisterObjectMethod("VectorBuffer", "void set_name(const String&in)", asMETHODPR(VectorBuffer, SetName, (const String&), void), asCALL_THISCALL);
     // unsigned Deserializer::Tell() const | File: ../IO/Deserializer.h
     engine->RegisterObjectMethod("VectorBuffer", "uint Tell() const", asMETHODPR(VectorBuffer, Tell, () const, unsigned), asCALL_THISCALL);
     // explicit VectorBuffer::VectorBuffer(const PODVector<unsigned char>& data) | File: ../IO/VectorBuffer.h

+ 66 - 163
Source/Urho3D/CMakeLists.txt

@@ -155,183 +155,86 @@ string (REPLACE ";" "/[^;]+;" EXCLUDE_PATTERNS "${EXCLUDED_SOURCE_DIRS};")
 define_source_files (EXCLUDE_PATTERNS ${EXCLUDE_PATTERNS} GLOB_CPP_PATTERNS *.cpp ${GLOB_OBJC_PATTERN} RECURSE GROUP)
 
 if (URHO3D_GENERATEBINDINGS)
-    set (SOURCE_FILES_WITHOUT_GENERATED "${SOURCE_FILES}")
-    list(REMOVE_ITEM SOURCE_FILES_WITHOUT_GENERATED "AngelScript/Generated_Enums.cpp"
-                                                    "AngelScript/Generated_Classes.cpp"
-                                                    "AngelScript/Generated_Members_HighPriority.cpp"
-                                                    "AngelScript/Generated_Members_A.cpp"
-                                                    "AngelScript/Generated_Members_B.cpp"
-                                                    "AngelScript/Generated_Members_Constraint.cpp"
-                                                    "AngelScript/Generated_Members_Ca_Cm.cpp"
-                                                    "AngelScript/Generated_Members_Cn_Cz.cpp"
-                                                    "AngelScript/Generated_Members_D.cpp"
-                                                    "AngelScript/Generated_Members_E.cpp"
-                                                    "AngelScript/Generated_Members_F.cpp"
-                                                    "AngelScript/Generated_Members_G.cpp"
-                                                    "AngelScript/Generated_Members_H.cpp"
-                                                    "AngelScript/Generated_Members_I.cpp"
-                                                    "AngelScript/Generated_Members_J.cpp"
-                                                    "AngelScript/Generated_Members_K.cpp"
-                                                    "AngelScript/Generated_Members_L.cpp"
-                                                    "AngelScript/Generated_Members_M.cpp"
-                                                    "AngelScript/Generated_Members_N.cpp"
-                                                    "AngelScript/Generated_Members_O.cpp"
-                                                    "AngelScript/Generated_Members_P.cpp"
-                                                    "AngelScript/Generated_Members_Q.cpp"
-                                                    "AngelScript/Generated_Members_R.cpp"
-                                                    "AngelScript/Generated_Members_Sa_Sm.cpp"
-                                                    "AngelScript/Generated_Members_Sn_Sz.cpp"
-                                                    "AngelScript/Generated_Members_Ta_Tm.cpp"
-                                                    "AngelScript/Generated_Members_Tn_Tz.cpp"
-                                                    "AngelScript/Generated_Members_U.cpp"
-                                                    "AngelScript/Generated_Members_V.cpp"
-                                                    "AngelScript/Generated_Members_W.cpp"
-                                                    "AngelScript/Generated_Members_X.cpp"
-                                                    "AngelScript/Generated_Members_Y.cpp"
-                                                    "AngelScript/Generated_Members_X.cpp"
-                                                    "AngelScript/Generated_Members_Other.cpp"
-                                                    "AngelScript/Generated_GlobalVariables.cpp"
-                                                    "AngelScript/Generated_GlobalFunctions.cpp"
-                                                    "AngelScript/Generated_Templates.h")
-
-    find_package (Doxygen REQUIRED)
-    
+
+    find_package (Doxygen 1.8.17 REQUIRED)
     if (NOT DOXYGEN_FOUND)
-        message (FATAL_ERROR Doxygen required to generate bindings)
+        message (FATAL_ERROR "Doxygen >= 1.8.17 required to generate bindings")
     endif ()
-    
+
     # Generating Doxyfile
-    configure_file (${CMAKE_SOURCE_DIR}/Source/Tools/BindingGenerator/Doxyfile.in ${CMAKE_BINARY_DIR}/Source/Tools/BindingGenerator/generated/Doxyfile)
+    set (DOXYFILE_PATH "${CMAKE_BINARY_DIR}/Source/Tools/BindingGenerator/generated/Doxyfile")
+    configure_file ("${CMAKE_SOURCE_DIR}/Source/Tools/BindingGenerator/Doxyfile.in" "${DOXYFILE_PATH}")
+
+    set (XML_AST_DIR "${CMAKE_BINARY_DIR}/Source/Tools/BindingGenerator/generated/xml")
+    set (BINDING_GENERATOR_PATH "${CMAKE_BINARY_DIR}/bin/tool/BindingGenerator")
+
+    set (AS_GENERATED_FILES "AngelScript/Generated_Enums.cpp"
+                            "AngelScript/Generated_Classes.cpp"
+                            "AngelScript/Generated_Members_HighPriority.cpp"
+                            "AngelScript/Generated_Members_A.cpp"
+                            "AngelScript/Generated_Members_B.cpp"
+                            "AngelScript/Generated_Members_Constraint.cpp"
+                            "AngelScript/Generated_Members_Ca_Cm.cpp"
+                            "AngelScript/Generated_Members_Cn_Cz.cpp"
+                            "AngelScript/Generated_Members_D.cpp"
+                            "AngelScript/Generated_Members_E.cpp"
+                            "AngelScript/Generated_Members_F.cpp"
+                            "AngelScript/Generated_Members_G.cpp"
+                            "AngelScript/Generated_Members_H.cpp"
+                            "AngelScript/Generated_Members_I.cpp"
+                            "AngelScript/Generated_Members_J.cpp"
+                            "AngelScript/Generated_Members_K.cpp"
+                            "AngelScript/Generated_Members_L.cpp"
+                            "AngelScript/Generated_Members_M.cpp"
+                            "AngelScript/Generated_Members_N.cpp"
+                            "AngelScript/Generated_Members_O.cpp"
+                            "AngelScript/Generated_Members_P.cpp"
+                            "AngelScript/Generated_Members_Q.cpp"
+                            "AngelScript/Generated_Members_R.cpp"
+                            "AngelScript/Generated_Members_Sa_Sm.cpp"
+                            "AngelScript/Generated_Members_Sn_Sz.cpp"
+                            "AngelScript/Generated_Members_Ta_Tm.cpp"
+                            "AngelScript/Generated_Members_Tn_Tz.cpp"
+                            "AngelScript/Generated_Members_U.cpp"
+                            "AngelScript/Generated_Members_V.cpp"
+                            "AngelScript/Generated_Members_W.cpp"
+                            "AngelScript/Generated_Members_X.cpp"
+                            "AngelScript/Generated_Members_Y.cpp"
+                            "AngelScript/Generated_Members_Z.cpp"
+                            "AngelScript/Generated_Members_Other.cpp"
+                            "AngelScript/Generated_GlobalVariables.cpp"
+                            "AngelScript/Generated_GlobalFunctions.cpp"
+                            "AngelScript/Generated_Templates.h")
+
+    set (AS_GENERATED_FILES_FULL_PATHS "${AS_GENERATED_FILES}")
+    # Add "${CMAKE_SOURCE_DIR}/Source/Urho3D/" to every item in list
+    list(TRANSFORM AS_GENERATED_FILES_FULL_PATHS PREPEND "${CMAKE_SOURCE_DIR}/Source/Urho3D/")
+
+    # If generated files already exists they will be in list SOURCE_FILES already.
+    # We need list without generated files to solve circular dependency
+    set (SOURCE_FILES_WITHOUT_GENERATED "${SOURCE_FILES}")
+    list (REMOVE_ITEM SOURCE_FILES_WITHOUT_GENERATED ${AS_GENERATED_FILES})
 
-    
-    set (XML_AST_DIR ${CMAKE_BINARY_DIR}/Source/Tools/BindingGenerator/generated/xml)
-    
     # Generate xmls and run BindingGenerator
-    add_custom_command (OUTPUT ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Enums.cpp
-                               ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Classes.cpp
-                               ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Members_HighPriority.cpp
-                               ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Members_A.cpp
-                               ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Members_B.cpp
-                               ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Members_Constraint.cpp
-                               ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Members_Ca_Cm.cpp
-                               ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Members_Cn_Cz.cpp
-                               ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Members_D.cpp
-                               ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Members_E.cpp
-                               ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Members_F.cpp
-                               ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Members_G.cpp
-                               ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Members_H.cpp
-                               ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Members_I.cpp
-                               ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Members_J.cpp
-                               ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Members_K.cpp
-                               ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Members_L.cpp
-                               ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Members_M.cpp
-                               ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Members_N.cpp
-                               ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Members_O.cpp
-                               ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Members_P.cpp
-                               ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Members_Q.cpp
-                               ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Members_R.cpp
-                               ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Members_Sa_Sm.cpp
-                               ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Members_Sn_Sz.cpp
-                               ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Members_Ta_Tm.cpp
-                               ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Members_Tn_Tz.cpp
-                               ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Members_U.cpp
-                               ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Members_V.cpp
-                               ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Members_W.cpp
-                               ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Members_X.cpp
-                               ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Members_Y.cpp
-                               ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Members_Z.cpp
-                               ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Members_Other.cpp
-                               ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_GlobalVariables.cpp
-                               ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_GlobalFunctions.cpp
-                               ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Templates.h
+    add_custom_command (OUTPUT ${AS_GENERATED_FILES_FULL_PATHS}
                                #${CMAKE_SOURCE_DIR}/Source/Urho3D/Lua/Generated.cpp
                                #${CMAKE_SOURCE_DIR}/Source/Urho3D/JavaScript/Generated.cpp
                                #${CMAKE_SOURCE_DIR}/Source/Urho3D/CSharp/Generated.cpp
                                #fake_output_to_force_run_every_time
                         COMMAND ${CMAKE_COMMAND} -E echo "Generating XMLs with AST to ${XML_AST_DIR}"
-                        COMMAND ${DOXYGEN_EXECUTABLE} "${CMAKE_BINARY_DIR}/Source/Tools/BindingGenerator/generated/Doxyfile"
-                        COMMAND ${CMAKE_COMMAND} -E echo "Running ${CMAKE_BINARY_DIR}/bin/tool/BindingGenerator ${XML_AST_DIR} ${CMAKE_SOURCE_DIR}"
-                        COMMAND ${CMAKE_BINARY_DIR}/bin/tool/BindingGenerator "${XML_AST_DIR}" "${CMAKE_SOURCE_DIR}"
-                        DEPENDS BindingGenerator ${CMAKE_BINARY_DIR}/Source/Tools/BindingGenerator/generated/Doxyfile "${SOURCE_FILES_WITHOUT_GENERATED}"
+                        COMMAND ${DOXYGEN_EXECUTABLE} "${DOXYFILE_PATH}"
+                        COMMAND ${CMAKE_COMMAND} -E echo "Running ${BINDING_GENERATOR_PATH} ${XML_AST_DIR} ${CMAKE_SOURCE_DIR}"
+                        COMMAND "${BINDING_GENERATOR_PATH}" "${XML_AST_DIR}" "${CMAKE_SOURCE_DIR}"
+                        DEPENDS BindingGenerator "${DOXYFILE_PATH}" "${SOURCE_FILES_WITHOUT_GENERATED}"
                         COMMENT "Generating bindings to script languages")
 
     if (URHO3D_ANGELSCRIPT)
-        list (APPEND SOURCE_FILES ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Enums.cpp
-                                  ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Classes.cpp
-                                  ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Members_HighPriority.cpp
-                                  ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Members_A.cpp
-                                  ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Members_B.cpp
-                                  ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Members_Constraint.cpp
-                                  ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Members_Ca_Cm.cpp
-                                  ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Members_Cn_Cz.cpp
-                                  ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Members_D.cpp
-                                  ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Members_E.cpp
-                                  ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Members_F.cpp
-                                  ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Members_G.cpp
-                                  ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Members_H.cpp
-                                  ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Members_I.cpp
-                                  ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Members_J.cpp
-                                  ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Members_K.cpp
-                                  ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Members_L.cpp
-                                  ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Members_M.cpp
-                                  ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Members_N.cpp
-                                  ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Members_O.cpp
-                                  ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Members_P.cpp
-                                  ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Members_Q.cpp
-                                  ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Members_R.cpp
-                                  ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Members_Sa_Sm.cpp
-                                  ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Members_Sn_Sz.cpp
-                                  ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Members_Ta_Tm.cpp
-                                  ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Members_Tn_Tz.cpp
-                                  ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Members_U.cpp
-                                  ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Members_V.cpp
-                                  ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Members_W.cpp
-                                  ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Members_X.cpp
-                                  ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Members_Y.cpp
-                                  ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Members_Z.cpp
-                                  ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Members_Other.cpp
-                                  ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_GlobalVariables.cpp
-                                  ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_GlobalFunctions.cpp
-                                  ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Templates.h)
-                                  
-        source_group ("Source Files\\AngelScript" FILES ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Enums.cpp
-                                                        ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Classes.cpp
-                                                        ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Members_HighPriority.cpp
-                                                        ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Members_A.cpp
-                                                        ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Members_B.cpp
-                                                        ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Members_Constraint.cpp
-                                                        ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Members_Ca_Cm.cpp
-                                                        ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Members_Cn_Cz.cpp
-                                                        ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Members_D.cpp
-                                                        ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Members_E.cpp
-                                                        ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Members_F.cpp
-                                                        ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Members_G.cpp
-                                                        ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Members_H.cpp
-                                                        ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Members_I.cpp
-                                                        ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Members_J.cpp
-                                                        ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Members_K.cpp
-                                                        ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Members_L.cpp
-                                                        ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Members_M.cpp
-                                                        ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Members_N.cpp
-                                                        ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Members_O.cpp
-                                                        ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Members_P.cpp
-                                                        ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Members_Q.cpp
-                                                        ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Members_R.cpp
-                                                        ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Members_Sa_Sm.cpp
-                                                        ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Members_Sn_Sz.cpp
-                                                        ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Members_Ta_Tm.cpp
-                                                        ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Members_Tn_Tz.cpp
-                                                        ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Members_U.cpp
-                                                        ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Members_V.cpp
-                                                        ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Members_W.cpp
-                                                        ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Members_X.cpp
-                                                        ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Members_Y.cpp
-                                                        ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Members_Z.cpp
-                                                        ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Members_Other.cpp
-                                                        ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_GlobalVariables.cpp
-                                                        ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_GlobalFunctions.cpp
-                                                        ${CMAKE_SOURCE_DIR}/Source/Urho3D/AngelScript/Generated_Templates.h)
+        # Make sure we have generated files in SOURCE_FILES
+        set (SOURCE_FILES "${SOURCE_FILES_WITHOUT_GENERATED}")
+        list (APPEND SOURCE_FILES ${AS_GENERATED_FILES})
+        source_group ("Source Files\\AngelScript" FILES ${AS_GENERATED_FILES})
     endif()
+
 endif ()
 
 # Define generated source files

+ 9 - 0
Source/Urho3D/IO/AbstractFile.h

@@ -39,6 +39,15 @@ public:
     explicit AbstractFile(unsigned int size) : Deserializer(size) { }
     /// Destruct.
     ~AbstractFile() override = default;
+    /// Change the file name. Used by the resource system.
+    /// @property
+    virtual void SetName(const String& name) { name_ = name; }
+    /// Return the file name.
+    const String& GetName() const override { return name_; }
+
+protected:
+    /// File name.
+    String name_;
 };
 
 }

+ 3 - 8
Source/Urho3D/IO/File.cpp

@@ -144,7 +144,7 @@ bool File::Open(PackageFile* package, const String& fileName)
         return false;
     }
 
-    fileName_ = fileName;
+    name_ = fileName;
     offset_ = entry->offset_;
     checksum_ = entry->checksum_;
     size_ = entry->size_;
@@ -411,11 +411,6 @@ void File::Flush()
         fflush((FILE*)handle_);
 }
 
-void File::SetName(const String& name)
-{
-    fileName_ = name;
-}
-
 bool File::IsOpen() const
 {
 #ifdef __ANDROID__
@@ -463,7 +458,7 @@ bool File::OpenInternal(const String& fileName, FileMode mode, bool fromPackage)
         }
         else
         {
-            fileName_ = fileName;
+            name_ = fileName;
             mode_ = mode;
             position_ = 0;
             if (!fromPackage)
@@ -515,7 +510,7 @@ bool File::OpenInternal(const String& fileName, FileMode mode, bool fromPackage)
         offset_ = 0;
     }
 
-    fileName_ = fileName;
+    name_ = fileName;
     mode_ = mode;
     position_ = 0;
     checksum_ = 0;

+ 0 - 7
Source/Urho3D/IO/File.h

@@ -80,9 +80,6 @@ public:
     /// Write bytes to the file. Return number of bytes actually written.
     unsigned Write(const void* data, unsigned size) override;
 
-    /// Return the file name.
-    const String& GetName() const override { return fileName_; }
-
     /// Return a checksum of the file contents using the SDBM hash algorithm.
     unsigned GetChecksum() override;
 
@@ -94,8 +91,6 @@ public:
     void Close();
     /// Flush any buffered output to the file.
     void Flush();
-    /// Change the file name. Used by the resource system.
-    void SetName(const String& name);
 
     /// Return the open mode.
     /// @property
@@ -120,8 +115,6 @@ private:
     /// Seek in file internally using either C standard IO functions or SDL RWops for Android asset files.
     void SeekInternal(unsigned newPosition);
 
-    /// File name.
-    String fileName_;
     /// Open mode.
     FileMode mode_;
     /// File handle.

+ 37 - 31
Source/Urho3D/IO/NamedPipe.cpp

@@ -54,7 +54,7 @@ NamedPipe::NamedPipe(Context* context) :
 {
 }
 
-NamedPipe::NamedPipe(Context* context, const String& pipeName, bool isServer) :
+NamedPipe::NamedPipe(Context* context, const String& name, bool isServer) :
     Object(context),
     isServer_(false),
 #ifdef _WIN32
@@ -64,7 +64,7 @@ NamedPipe::NamedPipe(Context* context, const String& pipeName, bool isServer) :
     writeHandle_(-1)
 #endif
 {
-    Open(pipeName, isServer);
+    Open(name, isServer);
 }
 
 NamedPipe::~NamedPipe()
@@ -81,7 +81,7 @@ unsigned NamedPipe::Seek(unsigned position)
 
 static const char* pipePath = "\\\\.\\pipe\\";
 
-bool NamedPipe::Open(const String& pipeName, bool isServer)
+bool NamedPipe::Open(const String& name, bool isServer)
 {
     URHO3D_PROFILE(OpenNamedPipe);
 
@@ -91,7 +91,7 @@ bool NamedPipe::Open(const String& pipeName, bool isServer)
 
     if (isServer)
     {
-        handle_ = CreateNamedPipeW(WString(pipePath + pipeName).CString(),
+        handle_ = CreateNamedPipeW(WString(pipePath + name).CString(),
             PIPE_ACCESS_DUPLEX,
             PIPE_TYPE_BYTE | PIPE_READMODE_BYTE | PIPE_NOWAIT,
             1,
@@ -103,13 +103,13 @@ bool NamedPipe::Open(const String& pipeName, bool isServer)
 
         if (handle_ == INVALID_HANDLE_VALUE)
         {
-            URHO3D_LOGERROR("Failed to create named pipe " + pipeName);
+            URHO3D_LOGERROR("Failed to create named pipe " + name);
             return false;
         }
         else
         {
-            URHO3D_LOGDEBUG("Created named pipe " + pipeName);
-            pipeName_ = pipeName;
+            URHO3D_LOGDEBUG("Created named pipe " + name);
+            name_ = name;
             isServer_ = true;
             return true;
         }
@@ -117,7 +117,7 @@ bool NamedPipe::Open(const String& pipeName, bool isServer)
     else
     {
         handle_ = CreateFileW(
-            WString(pipePath + pipeName).CString(),
+            WString(pipePath + name).CString(),
             GENERIC_READ | GENERIC_WRITE,
             0,
             nullptr,
@@ -128,13 +128,13 @@ bool NamedPipe::Open(const String& pipeName, bool isServer)
 
         if (handle_ == INVALID_HANDLE_VALUE)
         {
-            URHO3D_LOGERROR("Failed to connect to named pipe " + pipeName);
+            URHO3D_LOGERROR("Failed to connect to named pipe " + name);
             return false;
         }
         else
         {
-            URHO3D_LOGDEBUG("Connected to named pipe " + pipeName);
-            pipeName_ = pipeName;
+            URHO3D_LOGDEBUG("Connected to named pipe " + name);
+            name_ = name;
             return true;
         }
     }
@@ -178,9 +178,9 @@ void NamedPipe::Close()
 
         CloseHandle(handle_);
         handle_ = INVALID_HANDLE_VALUE;
-        pipeName_.Clear();
+        name_.Clear();
 
-        URHO3D_LOGDEBUG("Closed named pipe " + pipeName_);
+        URHO3D_LOGDEBUG("Closed named pipe " + name_);
     }
 }
 
@@ -207,7 +207,7 @@ static const char* pipePath = "/tmp/";
 
 #define SAFE_CLOSE(handle) if ((handle) != -1) { close(handle); (handle) = -1; }
 
-bool NamedPipe::Open(const String& pipeName, bool isServer)
+bool NamedPipe::Open(const String& name, bool isServer)
 {
 #ifdef __EMSCRIPTEN__
     URHO3D_LOGERROR("Opening a named pipe not supported on Web platform");
@@ -219,8 +219,8 @@ bool NamedPipe::Open(const String& pipeName, bool isServer)
 
     isServer_ = false;
 
-    String serverReadName = pipePath + pipeName + "SR";
-    String clientReadName = pipePath + pipeName + "CR";
+    String serverReadName = pipePath + name + "SR";
+    String clientReadName = pipePath + name + "CR";
 
     // Make sure SIGPIPE is ignored and will not lead to process termination
     signal(SIGPIPE, SIG_IGN);
@@ -235,7 +235,7 @@ bool NamedPipe::Open(const String& pipeName, bool isServer)
 
         if (readHandle_ == -1 && writeHandle_ == -1)
         {
-            URHO3D_LOGERROR("Failed to create named pipe " + pipeName);
+            URHO3D_LOGERROR("Failed to create named pipe " + name);
             SAFE_CLOSE(readHandle_);
             SAFE_CLOSE(writeHandle_);
             unlink(serverReadName.CString());
@@ -244,8 +244,8 @@ bool NamedPipe::Open(const String& pipeName, bool isServer)
         }
         else
         {
-            URHO3D_LOGDEBUG("Created named pipe " + pipeName);
-            pipeName_ = pipeName;
+            URHO3D_LOGDEBUG("Created named pipe " + name);
+            name_ = name;
             isServer_ = true;
             return true;
         }
@@ -256,15 +256,15 @@ bool NamedPipe::Open(const String& pipeName, bool isServer)
         writeHandle_ = open(serverReadName.CString(), O_WRONLY | O_NDELAY);
         if (readHandle_ == -1 && writeHandle_ == -1)
         {
-            URHO3D_LOGERROR("Failed to connect to named pipe " + pipeName);
+            URHO3D_LOGERROR("Failed to connect to named pipe " + name);
             SAFE_CLOSE(readHandle_);
             SAFE_CLOSE(writeHandle_);
             return false;
         }
         else
         {
-            URHO3D_LOGDEBUG("Connected to named pipe " + pipeName);
-            pipeName_ = pipeName;
+            URHO3D_LOGDEBUG("Connected to named pipe " + name);
+            name_ = name;
             return true;
         }
     }
@@ -277,9 +277,9 @@ unsigned NamedPipe::Read(void* dest, unsigned size)
     if (readHandle_ == -1 && writeHandle_ != -1)
     {
         if (isServer_)
-            readHandle_ = open((pipePath + pipeName_ + "SR").CString(), O_RDONLY | O_NDELAY);
+            readHandle_ = open((pipePath + name_ + "SR").CString(), O_RDONLY | O_NDELAY);
         else
-            readHandle_ = open((pipePath + pipeName_ + "CR").CString(), O_RDONLY | O_NDELAY);
+            readHandle_ = open((pipePath + name_ + "CR").CString(), O_RDONLY | O_NDELAY);
     }
 
     if (readHandle_ != -1)
@@ -297,9 +297,9 @@ unsigned NamedPipe::Write(const void* data, unsigned size)
     if (writeHandle_ == -1 && readHandle_ != -1)
     {
         if (isServer_)
-            writeHandle_ = open((pipePath + pipeName_ + "CR").CString(), O_WRONLY | O_NDELAY);
+            writeHandle_ = open((pipePath + name_ + "CR").CString(), O_WRONLY | O_NDELAY);
         else
-            writeHandle_ = open((pipePath + pipeName_ + "SR").CString(), O_WRONLY | O_NDELAY);
+            writeHandle_ = open((pipePath + name_ + "SR").CString(), O_WRONLY | O_NDELAY);
     }
 
     // Loop until all bytes written in case of partial write
@@ -330,14 +330,14 @@ void NamedPipe::Close()
 
         if (isServer_)
         {
-            String serverReadName = pipePath + pipeName_ + "SR";
-            String clientReadName = pipePath + pipeName_ + "CR";
+            String serverReadName = pipePath + name_ + "SR";
+            String clientReadName = pipePath + name_ + "CR";
             unlink(serverReadName.CString());
             unlink(clientReadName.CString());
             isServer_ = false;
         }
 
-        pipeName_.Clear();
+        name_.Clear();
     }
 }
 
@@ -355,9 +355,9 @@ bool NamedPipe::IsEof() const
     if (readHandle_ == -1 && writeHandle_ != -1)
     {
         if (isServer_)
-            readHandle_ = open((pipePath + pipeName_ + "SR").CString(), O_RDONLY | O_NDELAY);
+            readHandle_ = open((pipePath + name_ + "SR").CString(), O_RDONLY | O_NDELAY);
         else
-            readHandle_ = open((pipePath + pipeName_ + "CR").CString(), O_RDONLY | O_NDELAY);
+            readHandle_ = open((pipePath + name_ + "CR").CString(), O_RDONLY | O_NDELAY);
     }
 
     if (readHandle_ != -1)
@@ -376,4 +376,10 @@ bool NamedPipe::IsEof() const
 }
 #endif
 
+void NamedPipe::SetName(const String &name)
+{
+    URHO3D_LOGERROR("Cannot change name of the NamedPipe!");
+    assert(0);
+}
+
 }

+ 4 - 6
Source/Urho3D/IO/NamedPipe.h

@@ -42,7 +42,7 @@ public:
     /// Construct.
     explicit NamedPipe(Context* context);
     /// Construct and open in either server or client mode.
-    NamedPipe(Context* context, const String& pipeName, bool isServer);
+    NamedPipe(Context* context, const String& name, bool isServer);
     /// Destruct and close.
     ~NamedPipe() override;
 
@@ -54,11 +54,11 @@ public:
     unsigned Write(const void* data, unsigned size) override;
     /// Return whether pipe has no data available.
     bool IsEof() const override;
-    /// Return the pipe name.
-    const String& GetName() const override { return pipeName_; }
+    /// Not supported.
+    void SetName(const String& name) override;
 
     /// Open the pipe in either server or client mode. If already open, the existing pipe is closed. For a client end to open successfully the server end must already to be open. Return true if successful.
-    bool Open(const String& pipeName, bool isServer);
+    bool Open(const String& name, bool isServer);
     /// Close the pipe. Note that once a client has disconnected, the server needs to close and reopen the pipe so that another client can connect. At least on Windows this is not possible to detect automatically, so the communication protocol should include a "bye" message to handle this situation.
     void Close();
 
@@ -70,8 +70,6 @@ public:
     bool IsServer() const { return isServer_; }
 
 private:
-    /// Pipe name.
-    String pipeName_;
     /// Server mode flag.
     bool isServer_;
     /// Pipe handle.

+ 0 - 3
Source/Urho3D/UI/UI.cpp

@@ -1321,9 +1321,6 @@ void UI::GetCursorPositionAndVisible(IntVector2& pos, bool& visible)
         if (!visible && cursor_)
             pos = cursor_->GetPosition();
     }
-
-    pos.x_ = (int)(pos.x_ / uiScale_);
-    pos.y_ = (int)(pos.y_ / uiScale_);
 }
 
 void UI::SetCursorShape(CursorShape shape)

+ 1 - 1
gradle.properties

@@ -27,7 +27,7 @@
 # http://www.gradle.org/docs/current/userguide/build_environment.html
 # Specifies the JVM arguments used for the daemon process.
 # The setting is particularly useful for tweaking memory settings.
-org.gradle.jvmargs=-Xmx3G
+org.gradle.jvmargs=-Xmx4G
 # When configured, Gradle will run in incubating parallel mode.
 # This option should only be used with decoupled projects. More details, visit
 # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects

+ 3 - 2
rakefile

@@ -26,7 +26,7 @@ desc 'Invoke CMake to configure and generate a build tree'
 task :cmake => [:init] do
   if ENV['CI']
     system 'cmake --version' or abort 'Failed to find CMake'
-    if ENV['USE_CCACHE'] && /\[cache clear\]/ =~ `git log --format=%B -n1`
+    if ENV['USE_CCACHE'] && /\[cache clear\]/ =~ `git log --format=%B -n1 2>/dev/null`
       system 'bash', '-c', 'rm -rf ~/.{ccache,gradle}' or abort 'Failed to clear the build cache'
     end
   end
@@ -404,7 +404,8 @@ def app_build_gradle_kts(name)
   template = File.readlines('android/launcher-app/build.gradle.kts')
   sdk_version = first_match(/compileSdkVersion\((\d+)\)/, template)
   min_sdk_version = first_match(/minSdkVersion\((\d+)\)/, template)
-  aar_version = first_match(/AAR version: (.+)/, `#{ENV['OS'] ? 'gradlew.bat' : './gradlew'} aarVersion 2>#{ENV['OS'] ? 'null' : '/dev/null'}`)
+  aar_version = ENV['CI'] && ENV['PLATFORM'] != 'android' ? 'unknown' : # Skip using gradle all together when on CI, unless for Android build
+                    first_match(/AAR version: (.+)/, `#{ENV['OS'] ? 'gradlew.bat' : './gradlew'} aarVersion 2>#{ENV['OS'] ? 'null' : '/dev/null'}`)
   type = ENV.fetch('URHO3D_LIB_TYPE', 'STATIC').downcase
   <<-EOF
 plugins {