#!/usr/bin/env python # Copyright 2013 Ben Longbons # # This file is part of attoconf. # # attoconf is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # attoconf is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with attoconf. If not, see . from __future__ import print_function, division, absolute_import import os import sys from attoconf.version import require_version require_version(0, 6) from attoconf.classy import add_slots from attoconf.lib.c import C from attoconf.lib.install import Install from attoconf.lib.config_hash import ConfigHash from attoconf.lib.make import Make @add_slots class Configuration(C, Install, ConfigHash, Make): # usually you'll only have vars, features, and packages # the rest should only be inherited def __init__(self, srcdir): super(Configuration, self).__init__(srcdir) def general(self): super(Configuration, self).general() def paths(self): super(Configuration, self).paths() def arches(self): super(Configuration, self).arches() def vars(self): super(Configuration, self).vars() def features(self): super(Configuration, self).features() def packages(self): super(Configuration, self).packages() if 0: def tests(self): super(Configuration, self).tests() def post(self): super(Configuration, self).post() def main(): proj = Configuration(os.path.dirname(sys.argv[0])) proj.set_package('attoconf-demo', 'Demo project for attoconf') proj.jiggle() build = proj.build('.') build.configure(sys.argv[1:], os.environ) if __name__ == '__main__': main()