2006-09-18 Graham Dennis <graham.dennis@gmail.com>
authorbdash <bdash@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 18 Sep 2006 09:16:54 +0000 (09:16 +0000)
committerbdash <bdash@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 18 Sep 2006 09:16:54 +0000 (09:16 +0000)
        Reviewed by Eric.

        - fix for http://bugzilla.opendarwin.org/show_bug.cgi?id=10896
        REGRESSION: WebKit can't be built with SVG disabled

        * bindings/scripts/CodeGeneratorObjC.pm:
        For each file generated add a #ifdef <something>_SUPPORT / #endif
        pair if the idl file has a Conditional extended attribute

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@16420 268f45cc-cd09-0410-ab3c-d52691b4dbfc

WebCore/ChangeLog
WebCore/bindings/scripts/CodeGeneratorObjC.pm

index 108f05764f40f348e1380f6011c263064da4f261..2c99975e207b98b018620b910abfb2aae664dc4d 100644 (file)
@@ -1,3 +1,14 @@
+2006-09-18  Graham Dennis  <graham.dennis@gmail.com>
+
+        Reviewed by Eric.
+        
+        - fix for http://bugzilla.opendarwin.org/show_bug.cgi?id=10896
+        REGRESSION: WebKit can't be built with SVG disabled
+        
+        * bindings/scripts/CodeGeneratorObjC.pm:
+        For each file generated add a #ifdef <something>_SUPPORT / #endif
+        pair if the idl file has a Conditional extended attribute
+
 2006-09-17  Eric Seidel  <eric@eseidel.com>
 
         Reviewed by ap.
index e537d6bff33578458c73e6e89c822ee346dcb753..63570acd486357b30910040ac7d590606243f53e 100644 (file)
@@ -433,6 +433,7 @@ sub GenerateHeader
     my $interfaceName = $dataNode->name;
     my $className = GetClassName($interfaceName);
     my $parentClassName = "DOM" . GetParentImplClassName($dataNode);
+    my $conditional = $dataNode->extendedAttributes->{"Conditional"};
 
     my $numConstants = @{$dataNode->constants};
     my $numAttributes = @{$dataNode->attributes};
@@ -441,6 +442,9 @@ sub GenerateHeader
     # - Add default header template
     @headerContentHeader = split("\r", $headerLicenceTemplate);
     push(@headerContentHeader, "\n");
+    
+    # - Add a check for the appropriate conditional variable
+    push(@headerContent, "#ifdef ${conditional}_SUPPORT\n\n") if $conditional;
 
     # - INCLUDES -
     unless ($isProtocol) {
@@ -623,9 +627,13 @@ sub GenerateHeader
     if (@privateHeaderAttributes > 0 or @privateHeaderFunctions > 0) {
         # - Private category @interface
         @privateHeaderContentHeader = split("\r", $headerLicenceTemplate);
+        push(@headerContentHeader, "\n");
 
+        # - Add a check for the appropriate conditional variable
+        push(@privateHeaderContentHeader, "#ifdef ${conditional}_SUPPORT\n\n") if $conditional;
+        
         my $classHeaderName = GetClassHeaderName($className);
-        push(@privateHeaderContentHeader, "\n#import <WebCore/$classHeaderName.h>\n\n");
+        push(@privateHeaderContentHeader, "#import <WebCore/$classHeaderName.h>\n\n");
 
         @privateHeaderContent = ();
         push(@privateHeaderContent, "\@interface $className (" . $className . "Private)\n");
@@ -633,7 +641,13 @@ sub GenerateHeader
         push(@privateHeaderContent, "\n") if $buildingForLeopardOrLater and @privateHeaderAttributes > 0 and @privateHeaderFunctions > 0;
         push(@privateHeaderContent, @privateHeaderFunctions) if @privateHeaderFunctions > 0;
         push(@privateHeaderContent, "\@end\n");
+        
+        # - End the ifdef conditional if necessary (for the private header)
+        push(@privateHeaderContent, "\n#endif // ${conditional}_SUPPORT\n\n") if $conditional;
     }
+    
+    # - End the ifdef conditional if necessary
+    push(@headerContent, "\n#endif // ${conditional}_SUPPORT\n\n") if $conditional;
 }
 
 sub GenerateImplementation
@@ -646,6 +660,7 @@ sub GenerateImplementation
     my $implClassName = GetImplClassName($interfaceName);
     my $parentImplClassName = GetParentImplClassName($dataNode);
     my $implClassNameWithNamespace = "WebCore::" . $implClassName;
+    my $conditional = $dataNode->extendedAttributes->{"Conditional"};
 
     my $numAttributes = @{$dataNode->attributes};
     my $numFunctions = @{$dataNode->functions};
@@ -654,7 +669,8 @@ sub GenerateImplementation
     @implContentHeader = split("\r", $implementationLicenceTemplate);
 
     # - INCLUDES -
-    push(@implContentHeader, "\n#import \"config.h\"\n");
+    push(@implContentHeader, "\n#import \"config.h\"\n\n");
+    push(@implContentHeader, "#ifdef ${conditional}_SUPPORT\n\n") if $conditional;
 
     my $classHeaderName = GetClassHeaderName($className);
     push(@implContentHeader, "#import \"$classHeaderName.h\"\n\n");
@@ -1080,6 +1096,8 @@ sub GenerateImplementation
         # END WebCoreInternal category
         push(@implContent, "\@end\n");
     }
+    # - End the ifdef conditional if necessary
+    push(@implContent, "\n#endif // ${conditional}_SUPPORT\n\n") if $conditional;
 }
 
 # Internal helper