OPEN-76 Fix autobuild so that --config-file option is honoured by subsequent (possibly recursive) commands
Review Request #335 - Created June 10, 2011 and submitted
Ima Mechanique | Reviewers | ||
viewer | |||
OPEN-76 | alain_linden | ||
None | autobuild |
When running a command such as: autobuild configure --config-file ab-test.xml -c ReleaseOS the configuration is only partially completed correctly. When the installables are processed, it does not use the correct configuration file. This is due to cmake calling autobuild install to do the actual install, but not passing the --config-file option. Autobuild falls back to the default autobuild.xml, because the correct configuration file is not saved at any point, which is not the intention and can cause configuration to be done with incorrect libraries. If autobuild.xml is missing or corrupt, an error occurs (which is how I discovered this), stopping the configure command. This fix saves the current value of the configuration file into the AUTOBUILD_CONFIG_FILE environmental variable so that it becomes the default value should any subsequent command need it. I believe that something like this was the original intention when adding this environment variable as part of the default check, but was overlooked.
Ran 'autobuild configure --config-file ab-test.xml -c ReleaseOS' successfully without any errors and was able to build the expected viewer afterwards.
autobuild/configfile.py | |||
---|---|---|---|
Revision 2a560b1d8f95 | New Change | ||
... | 64 lines hidden [Expand] | ||
class ConfigurationDescription(common.Serialized): |
|||
65 |
"""
|
65 |
"""
|
66 |
|
66 |
|
67 |
path = None |
67 |
path = None |
68 |
|
68 |
|
69 |
def __init__(self, path): |
69 |
def __init__(self, path): |
70 |
self.version = AUTOBUILD_CONFIG_VERSION |
70 |
self.version = AUTOBUILD_CONFIG_VERSION |
71 |
self.type = AUTOBUILD_CONFIG_TYPE |
71 |
self.type = AUTOBUILD_CONFIG_TYPE |
72 |
self.installables = {} |
72 |
self.installables = {} |
73 |
self.package_description = None |
73 |
self.package_description = None |
74 |
self.__load(path) |
74 |
self.__load(path) |
75 |
os.environ['AUTOBUILD_CONFIG_FILE'] = os.path.basename(self.path) |
||
75 |
|
76 |
|
76 |
def absolute_path(self, path): |
77 |
def absolute_path(self, path): |
77 |
"""
|
78 |
"""
|
78 |
Returns an absolute path derived from the input path rooted at the configuration file's
|
79 |
Returns an absolute path derived from the input path rooted at the configuration file's
|
79 |
directory when the input is a relative path.
|
80 |
directory when the input is a relative path.
|
80 |
"""
|
81 |
"""
|
81 |
if os.path.isabs(path): |
82 |
if os.path.isabs(path): |
82 |
return path |
83 |
return path |
83 |
else: |
84 |
else: |
84 |
return os.path.abspath(os.path.join(os.path.dirname(self.path), path)) |
85 |
return os.path.abspath(os.path.join(os.path.dirname(self.path), path)) |
... | 351 lines hidden [Expand] |
Other reviews