Index: third_party/mojo/src/mojo/public/tools/bindings/generators/mojom_dart_generator.py |
diff --git a/third_party/mojo/src/mojo/public/tools/bindings/generators/mojom_dart_generator.py b/third_party/mojo/src/mojo/public/tools/bindings/generators/mojom_dart_generator.py |
index 9d2fafef9754ac872d897e58ead173fd24ac041d..ac27fa1d3dde84a5e6a403d43350f0ca40d31172 100644 |
--- a/third_party/mojo/src/mojo/public/tools/bindings/generators/mojom_dart_generator.py |
+++ b/third_party/mojo/src/mojo/public/tools/bindings/generators/mojom_dart_generator.py |
@@ -360,7 +360,7 @@ def IsPointerArrayKind(kind): |
def GetImportUri(module): |
elements = module.namespace.split('.') |
elements.append("%s" % module.name) |
- return os.path.join(*elements) |
+ return os.path.join("mojom", *elements) |
class Generator(generator.Generator): |
@@ -402,17 +402,24 @@ class Generator(generator.Generator): |
def GenerateFiles(self, args): |
elements = self.module.namespace.split('.') |
elements.append("%s.dart" % self.module.name) |
- path = os.path.join("dart-gen", *elements) |
+ path = os.path.join("dart-gen", "mojom", *elements) |
self.Write(self.GenerateLibModule(args), path) |
link = self.MatchMojomFilePath("%s.dart" % self.module.name) |
if os.path.exists(os.path.join(self.output_dir, link)): |
os.unlink(os.path.join(self.output_dir, link)) |
- if sys.platform == "win32": |
- shutil.copy(os.path.join(self.output_dir, path), |
- os.path.join(self.output_dir, link)) |
- else: |
- os.symlink(os.path.join(self.output_dir, path), |
- os.path.join(self.output_dir, link)) |
+ try: |
+ if sys.platform == "win32": |
+ shutil.copy(os.path.join(self.output_dir, path), |
+ os.path.join(self.output_dir, link)) |
+ else: |
+ os.symlink(os.path.join(self.output_dir, path), |
+ os.path.join(self.output_dir, link)) |
+ except OSError as e: |
+ # Errno 17 is file already exists. If the link fails because file already |
+ # exists assume another instance of this script tried to create the same |
+ # file and continue on. |
+ if e.errno != 17: |
+ raise e |
def GetImports(self, args): |
used_names = set() |