misc: When building packet_pb2.py, don't assume a particular CWD.

Allow the script to be run from anywhere, and compute the paths relative to
where the script is. The script is assumed to be in util.

Change-Id: I8500ef959f2ff8119540c956f2b27789c96de60e
Reviewed-on: https://gem5-review.googlesource.com/5004
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>
This commit is contained in:
Gabe Black
2017-10-04 19:43:51 -07:00
parent bb23c5075e
commit edc8cffbea

View File

@@ -52,15 +52,18 @@ import protolib
import sys
# Import the packet proto definitions. If they are not found, attempt
# to generate them automatically. This assumes that the script is
# executed from the gem5 root.
# to generate them automatically.
try:
import packet_pb2
except:
print "Did not find packet proto definitions, attempting to generate"
import os
util_dir = os.path.dirname(os.path.realpath(__file__))
proto_dir = os.path.join(os.path.dirname(util_dir), 'src', 'proto')
proto_file = os.path.join(proto_dir, 'packet.proto')
from subprocess import call
error = call(['protoc', '--python_out=util', '--proto_path=src/proto',
'src/proto/packet.proto'])
error = call(['protoc', '--python_out=' + util_dir,
'--proto_path=' + proto_dir, proto_file])
if not error:
print "Generated packet proto definitions"