#!/usr/bin/env python3
# Copyright 2013 Ben Longbons <b.r.longbons@gmail.com>
#
# 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 <http://www.gnu.org/licenses/>.
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()