windowsSipCompilation.py 2.36 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
############################################################################
# This file is part of LImA, a Library for Image Acquisition
#
# Copyright (C) : 2009-2011
# European Synchrotron Radiation Facility
# BP 220, Grenoble 38043
# FRANCE
#
# This 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.
#
# This software 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 this program; if not, see <http://www.gnu.org/licenses/>.
############################################################################
import os,sys
from optparse import OptionParser

configFile = 'config.inc'

def getModuleConfig() :
    try:
        f = file(configFile)
    except IOError:
        print 'You should Read the README_WINDOW First'
        raise
    else:
        os.chdir('sip')
        availableModule = set([x for x in os.listdir('.') if os.path.isdir(x)])
        config = {}
        for line in f:
            if line.startswith('COMPILE') :
                modName,active = line.split('=')
                modName = '_'.join(modName.split('_')[1:])
                modName = modName.lower()
                if modName in availableModule:
                    config[modName] = bool(int(active))
44

45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
        os.chdir('..')
        return config

def compileModule(config) :
    os.chdir('sip')
    for module,active in config.iteritems():
        if active:
            os.chdir(module)
            os.system('nmake')
            os.chdir('..')
    os.chdir('..')
    
if __name__ == '__main__':
    parser = OptionParser()
    parser.add_option("--config",
                      action="store_true",dest="config_flag",default=False,
                      help = 'Configure sip modules')
    (options,args) = parser.parse_args()
    if options.config_flag:
        sys.path.insert(0,'sip')
        import configure
        os.chdir('sip')
        configure.main()
        os.chdir('..')
        sys.path.pop(0)
    else:
        config = getModuleConfig()
        compileModule(config)