Revert "c2a: add option to use Cargo.toml.orig"
This reverts commit 2adbd7ed89d6f4cd7a4766a2a534697f498171a0.
Reason for revert: This doesn't work in all cases. For now I'll
instead use local patches for Cargo.toml :(
Change-Id: I0621796e694e2654a01fe9a38a307fd0a4ab8b15
diff --git a/scripts/cargo2android.py b/scripts/cargo2android.py
index 90b85bd..c571dab 100755
--- a/scripts/cargo2android.py
+++ b/scripts/cargo2android.py
@@ -1320,69 +1320,20 @@
else:
in_pkg = pkg_section.match(line) is not None
- # Simple class for manipulation and error handling on Cargo.toml files.
- class CargoToml(object):
- cargo_toml = './Cargo.toml'
- cargo_toml_orig = './Cargo.toml.orig'
- cargo_toml_lines = None
-
- def __init__(self, args):
- if not os.access(self.cargo_toml, os.R_OK):
- print('error: cannot find or read', self.cargo_toml)
- return None
-
- if args.orig_cargo_toml:
- if not os.access(self.cargo_toml_orig, os.R_OK):
- print('error: cannot find or read', self.cargo_toml_orig)
- return None
-
- # These arguments result in modifying the Cargo.toml.
- # Save the original to be restored.
- if args.orig_cargo_toml or args.add_workspace:
- with open(self.cargo_toml, 'r') as in_file:
- self.cargo_toml_lines = in_file.readlines()
-
- # Temporarily replace Cargo.toml with Cargo.toml.orig.
- # This is useful because crates.io removes dev-dependencies from Cargo.toml when
- # version numbers are not specified, which is not possible for many crates due to
- # https://github.com/rust-lang/cargo/issues/4242.
- if args.orig_cargo_toml:
- with open(self.cargo_toml, 'w') as out_file:
- with open(self.cargo_toml_orig, 'r') as in_file:
- lines = in_file.readlines()
- out_file.writelines(lines)
- if args.verbose:
- print('### INFO: Overwrote Cargo.toml with Cargo.toml.orig')
-
- # Add [workspace] to Cargo.toml if it is not there.
- if args.add_workspace:
- with open(self.cargo_toml, 'r') as in_file:
- lines = in_file.readlines()
- if '[workspace]\n' in lines:
- print('### WARNING: found [workspace] in Cargo.toml')
- else:
- with open(self.cargo_toml, 'a') as out_file:
- out_file.write('[workspace]\n')
- if args.verbose:
- print('### INFO: added [workspace] to Cargo.toml')
-
- def restore(self, args):
- if self.cargo_toml_lines is not None:
- with open(self.cargo_toml, 'w') as out_file:
- out_file.writelines(self.cargo_toml_lines)
- if args.verbose:
- print('### INFO: restored original Cargo.toml')
-
def run_cargo(self):
"""Calls cargo -v and save its output to ./cargo.out."""
if self.skip_cargo:
return self
+ cargo_toml = './Cargo.toml'
cargo_out = './cargo.out'
# Do not use Cargo.lock, because .bp rules are designed to
# run with "latest" crates avaialable on Android.
cargo_lock = './Cargo.lock'
cargo_lock_saved = './cargo.lock.saved'
had_cargo_lock = os.path.exists(cargo_lock)
+ if not os.access(cargo_toml, os.R_OK):
+ print('ERROR: Cannot find or read', cargo_toml)
+ return self
if not self.dry_run:
if os.path.exists(cargo_out):
os.remove(cargo_out)
@@ -1393,11 +1344,20 @@
# set up search PATH for cargo to find the correct rustc
saved_path = os.environ['PATH']
os.environ['PATH'] = os.path.dirname(self.cargo_path) + ':' + saved_path
-
- cargo_toml = self.CargoToml(self.args)
- if cargo_toml is None:
- return self
-
+ # Add [workspace] to Cargo.toml if it is not there.
+ added_workspace = False
+ if self.args.add_workspace:
+ with open(cargo_toml, 'r') as in_file:
+ cargo_toml_lines = in_file.readlines()
+ found_workspace = '[workspace]\n' in cargo_toml_lines
+ if found_workspace:
+ print('### WARNING: found [workspace] in Cargo.toml')
+ else:
+ with open(cargo_toml, 'a') as out_file:
+ out_file.write('[workspace]\n')
+ added_workspace = True
+ if self.args.verbose:
+ print('### INFO: added [workspace] to Cargo.toml')
for c in self.cargo:
features = ''
if c != 'clean':
@@ -1414,9 +1374,11 @@
if self.args.tests:
cmd = self.cargo_path + ' test' + features + cmd_tail_target + ' -- --list' + cmd_tail_redir
self.run_cmd(cmd, cargo_out)
-
- cargo_toml.restore(self.args)
-
+ if added_workspace: # restore original Cargo.toml
+ with open(cargo_toml, 'w') as out_file:
+ out_file.writelines(cargo_toml_lines)
+ if self.args.verbose:
+ print('### INFO: restored original Cargo.toml')
os.environ['PATH'] = saved_path
if not self.dry_run:
if not had_cargo_lock: # restore to no Cargo.lock state
@@ -1747,11 +1709,6 @@
default=False,
help='skip cargo command, parse cargo.out, and generate Android.bp')
parser.add_argument(
- '--orig-cargo-toml',
- action='store_true',
- default=False,
- help='Use Cargo.toml.orig instead of Cargo.toml.')
- parser.add_argument(
'--tests',
action='store_true',
default=False,