2014-01-06 03:36:25 +08:00
|
|
|
#!/usr/bin/env python3
|
|
|
|
|
|
|
|
# Copyright 2014 Jussi Pakkanen
|
|
|
|
|
|
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
|
|
# you may not use this file except in compliance with the License.
|
|
|
|
# You may obtain a copy of the License at
|
|
|
|
|
|
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
|
|
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
|
|
# See the License for the specific language governing permissions and
|
|
|
|
# limitations under the License.
|
|
|
|
|
|
|
|
import sys, os
|
2014-01-06 04:01:52 +08:00
|
|
|
import pickle
|
2014-01-06 03:36:25 +08:00
|
|
|
from optparse import OptionParser
|
|
|
|
import coredata
|
|
|
|
|
|
|
|
usage_info = '%prog [build dir]'
|
|
|
|
|
|
|
|
parser = OptionParser(usage=usage_info, version=coredata.version)
|
|
|
|
|
2014-01-06 03:45:07 +08:00
|
|
|
class ConfException(Exception):
|
|
|
|
def __init__(self, *args, **kwargs):
|
|
|
|
super().__init__(*args, **kwargs)
|
|
|
|
|
|
|
|
class Conf:
|
|
|
|
def __init__(self, build_dir):
|
|
|
|
self.build_dir = build_dir
|
|
|
|
self.coredata_file = os.path.join(build_dir, 'meson-private/coredata.dat')
|
|
|
|
self.build_file = os.path.join(build_dir, 'meson-private/build.dat')
|
|
|
|
if not os.path.isfile(self.coredata_file) or not os.path.isfile(self.build_file):
|
|
|
|
raise ConfException('Directory %s does not seem to be a Meson build directory.' % build_dir)
|
2014-01-06 04:01:52 +08:00
|
|
|
self.coredata = pickle.load(open(self.coredata_file, 'rb'))
|
|
|
|
self.build = pickle.load(open(self.build_file, 'rb'))
|
|
|
|
if self.coredata.version != coredata.version:
|
|
|
|
raise ConfException('Version mismatch (%s vs %s)' %
|
|
|
|
(coredata.version, self.coredata.version))
|
|
|
|
|
|
|
|
def print_conf(self):
|
|
|
|
print('Core properties\n')
|
|
|
|
print('Source dir:', self.build.environment.source_dir)
|
|
|
|
print('Build dir: ', self.build.environment.build_dir)
|
|
|
|
print('')
|
|
|
|
print('Build options\n')
|
|
|
|
print('Build type:', self.coredata.buildtype)
|
|
|
|
print('Strip:', self.coredata.strip)
|
|
|
|
print('Coverage:', self.coredata.coverage)
|
|
|
|
print('Pch:', self.coredata.use_pch)
|
|
|
|
print('Unity:', self.coredata.unity)
|
2014-01-06 03:36:25 +08:00
|
|
|
|
|
|
|
if __name__ == '__main__':
|
|
|
|
(options, args) = parser.parse_args(sys.argv)
|
|
|
|
if len(args) > 2:
|
|
|
|
print(args)
|
|
|
|
print('%s <build directory>' % sys.argv[0])
|
2014-01-06 04:01:52 +08:00
|
|
|
print('If you omit the build directory, the current directory is substituted.')
|
2014-01-06 03:36:25 +08:00
|
|
|
sys.exit(1)
|
|
|
|
if len(args) == 1:
|
|
|
|
builddir = os.getcwd()
|
|
|
|
else:
|
|
|
|
builddir = args[-1]
|
2014-01-06 03:45:07 +08:00
|
|
|
try:
|
|
|
|
c = Conf(builddir)
|
2014-01-06 04:01:52 +08:00
|
|
|
c.print_conf()
|
2014-01-06 03:45:07 +08:00
|
|
|
except ConfException as e:
|
|
|
|
print('Meson configurator encountered an error:\n')
|
|
|
|
print(e)
|
2014-01-06 03:36:25 +08:00
|
|
|
|