Gabe Black has uploaded this change for review. (
https://gem5-review.googlesource.com/c/public/gem5/+/40867 )
Change subject: scons: Simplify the check for protoc.
......................................................................
scons: Simplify the check for protoc.
Collapse nesting, and constrain the try/except to only the line in that
section which might actually be expected to throw an exception when
things are working normally.
This makes the code easier to read, and won't absorb and discard
exceptions which are thrown for unexpected reasons.
Change-Id: Id3ac417ab5545bef35ed8a87d05211c8ef2f5a50
---
M SConstruct
1 file changed, 25 insertions(+), 27 deletions(-)
diff --git a/SConstruct b/SConstruct
index 5d24b30..62dfc36 100755
--- a/SConstruct
+++ b/SConstruct
@@ -456,39 +456,37 @@
main.Append(CCFLAGS=["-Wno-uninitialized"])
-have_pkg_config = readCommand(['pkg-config', '--version'], exception='')
+have_pkg_config = main.Detect('pkg-config')
# Check for the protobuf compiler
+main['HAVE_PROTOC'] = False
+protoc_version = None
try:
- main['HAVE_PROTOC'] = True
protoc_version = readCommand([main['PROTOC'], '--version']).split()
-
- # First two words should be "libprotoc x.y.z"
- if len(protoc_version) < 2 or protoc_version[0] != 'libprotoc':
- warning('Protocol buffer compiler (protoc) not found.\n'
- 'Please install protobuf-compiler for tracing support.')
- main['HAVE_PROTOC'] = False
- else:
- # Based on the availability of the compress stream wrappers,
- # require 2.1.0
- min_protoc_version = '2.1.0'
- if compareVersions(protoc_version[1], min_protoc_version) < 0:
- warning('protoc version', min_protoc_version,
- 'or newer required.\n'
- 'Installed version:', protoc_version[1])
- main['HAVE_PROTOC'] = False
- else:
- # Attempt to determine the appropriate include path and
- # library path using pkg-config, that means we also need to
- # check for pkg-config. Note that it is possible to use
- # protobuf without the involvement of pkg-config. Later on we
- # check go a library config check and at that point the test
- # will fail if libprotobuf cannot be found.
- if have_pkg_config:
-
conf.CheckPkgConfig('protobuf', '--cflags', '--libs-only-L')
except Exception as e:
warning('While checking protoc version:', str(e))
- main['HAVE_PROTOC'] = False
+
+# Based on the availability of the compress stream wrappers, require 2.1.0.
+min_protoc_version = '2.1.0'
+
+# First two words should be "libprotoc x.y.z"
+if len(protoc_version) < 2 or protoc_version[0] != 'libprotoc':
+ warning('Protocol buffer compiler (protoc) not found.\n'
+ 'Please install protobuf-compiler for tracing support.')
+elif compareVersions(protoc_version[1], min_protoc_version) < 0:
+ warning('protoc version', min_protoc_version, 'or newer required.\n'
+ 'Installed version:', protoc_version[1])
+else:
+ # Attempt to determine the appropriate include path and
+ # library path using pkg-config, that means we also need to
+ # check for pkg-config. Note that it is possible to use
+ # protobuf without the involvement of pkg-config. Later on we
+ # check go a library config check and at that point the test
+ # will fail if libprotobuf cannot be found.
+ if have_pkg_config:
+ conf.CheckPkgConfig('protobuf', '--cflags', '--libs-only-L')
+ main['HAVE_PROTOC'] = True
+
# We should compile a 64 bit binary on Mac OS X/Darwin
if sys.platform == "darwin":
--
To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/40867
To unsubscribe, or for help writing mail filters, visit
https://gem5-review.googlesource.com/settings
Gerrit-Project: public/gem5
Gerrit-Branch: develop
Gerrit-Change-Id: Id3ac417ab5545bef35ed8a87d05211c8ef2f5a50
Gerrit-Change-Number: 40867
Gerrit-PatchSet: 1
Gerrit-Owner: Gabe Black <[email protected]>
Gerrit-MessageType: newchange
_______________________________________________
gem5-dev mailing list -- [email protected]
To unsubscribe send an email to [email protected]
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s