Fix C# build break due to C++ property macro modification
[platform/core/uifw/dali-toolkit.git] / plugins / dali-swig / property-wrapper.rb
index e548f61..37a8cf9 100755 (executable)
@@ -55,7 +55,7 @@ end
 
 
 # Property struct stores the information about a property after parsing the C++ DALI_PROPERTY macro
-$propertyStruct = Struct.new("Property", :name, :type, :writable, :animatable,:constrainInput, :enum, :shortenum,  :csharpGetter, :csharpSetter, :childProperty,)
+$propertyStruct = Struct.new("Property", :name, :type, :writable, :animatable,:constrainInput, :enum, :shortenum, :develAPI, :csharpGetter, :csharpSetter, :childProperty,)
 
 # daliClass struct stores a class name and an array of properties
 $daliClassStruct = Struct.new("DaliClass", :name, :properties )
@@ -90,6 +90,16 @@ def extractPropertyInfo( propertyMacro )
     # extract the property enum name Dali::Path::Property::POINTS -> POINTS
     shortenum =  data[6].split(":").last
 
+    develAPI = false;
+    # Check if the property uses devel API
+    # Currently we ignore devel properties for now
+    if data[6].include? "Devel"
+      develAPI = true;
+      puts("Ignoring DEVEL API property: " + shortenum);
+    end
+
+
+
     # store the :name, :type, :writable, :animatable, :constrainInput, :enum
     property = $propertyStruct.new;
 
@@ -99,7 +109,7 @@ def extractPropertyInfo( propertyMacro )
     property.animatable = (data[4] == "true")
     property.constrainInput = (data[5]=="true")
     property.enum = shortenum
-
+    property.develAPI = develAPI;
     return property;
 end
 
@@ -109,6 +119,14 @@ def extractToolkitPropertyInfo( propertyMacro )
     # Extract the property name, type
     property = $propertyStruct.new;
 
+    #First strip out any comments at the end of the macro, some have text like // deprecated
+    commentIndex = propertyMacro.index("//");
+
+    if( commentIndex )
+        propertyMacro = propertyMacro.slice(0..commentIndex-1)
+    end
+
+
     # Split the macro definition by comma and quotes, close bracket and delete any empty segments
     data = propertyMacro.split(/[\s,")]/).reject { |s| s.empty? }
 
@@ -167,6 +185,7 @@ def extractToolkitPropertyInfo( propertyMacro )
         property.type = data[4]
       end
 
+      # last item should be property enum, e.g. INPUT_POINT_SIZE
       property.enum = data[data.length-1]
 
     end
@@ -221,7 +240,7 @@ def writePropertiesToCSharpFile( daliClass )
 
   for property in daliClass.properties
 
-    if (!property.childProperty)
+    if( (!property.childProperty) && (!property.develAPI))
       file.write( property.csharpGetter );
       file.write( property.csharpSetter );
     end