1193 # Unix only fix (os.path.expanduser not really reliable if |
1193 # Unix only fix (os.path.expanduser not really reliable if |
1194 # HOME is shadowed like this) |
1194 # HOME is shadowed like this) |
1195 import pwd |
1195 import pwd |
1196 env['HOME'] = pwd.getpwuid(os.getuid()).pw_dir |
1196 env['HOME'] = pwd.getpwuid(os.getuid()).pw_dir |
1197 |
1197 |
1198 cargocmd = ['cargo', 'build', '-vv', '--release'] |
1198 cargocmd = ['cargo', 'rustc', '-vv', '--release'] |
1199 if sys.version_info[0] == 3 and self.py3_features is not None: |
1199 if sys.version_info[0] == 3 and self.py3_features is not None: |
1200 cargocmd.extend(('--features', self.py3_features, |
1200 cargocmd.extend(('--features', self.py3_features, |
1201 '--no-default-features')) |
1201 '--no-default-features')) |
|
1202 cargocmd.append('--') |
1202 if sys.platform == 'darwin': |
1203 if sys.platform == 'darwin': |
1203 env['RUSTFLAGS'] = ("-C link-arg=-undefined " |
1204 cargocmd.extend(("-C", "link-arg=-undefined", |
1204 "-C link-arg=dynamic_lookup") |
1205 "-C", "link-arg=dynamic_lookup")) |
1205 try: |
1206 try: |
1206 subprocess.check_call(cargocmd, env=env, cwd=self.rustsrcdir) |
1207 subprocess.check_call(cargocmd, env=env, cwd=self.rustsrcdir) |
1207 except OSError as exc: |
1208 except OSError as exc: |
1208 if exc.errno == errno.ENOENT: |
1209 if exc.errno == errno.ENOENT: |
1209 raise RustCompilationError("Cargo not found") |
1210 raise RustCompilationError("Cargo not found") |