             element.addChild(buildableReference.xmlElement())
             return element
         }
-    }
+
+        public static func == (lhs: BuildableProductRunnable, rhs: BuildableProductRunnable) -> Bool {
+            return lhs.runnableDebuggingMode == rhs.runnableDebuggingMode &&
+                lhs.buildableReference == rhs.buildableReference
+        }
+    }
+
+    // MARK: CommandLineArguments
 
     public final class CommandLineArguments {
-        public struct CommandLineArgument {
+        public struct CommandLineArgument: Equatable {
             public let name: String
             public let enabled: Bool
 

            }
            return element
        }
    }

    // MARK: - Build Action

    public class SerialAction {
        public var preActions: [ExecutionAction]
        public var postActions: [ExecutionAction]



            return element
        }

        public static func == (lhs: EnvironmentVariable, rhs: EnvironmentVariable) -> Bool {
            return lhs.variable == rhs.variable &&
                lhs.value == rhs.value &&
                lhs.enabled == rhs.enabled
        }
    }

    // MARK: - ExecutionAction

    public final class ExecutionAction: Equatable {
        public var title: String
        public var scriptText: String
        public var environmentBuildable: BuildableReference?
