X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=wizard%2Fbertos_utils.py;h=ec52a21050acd81b7d341fd2ba8f69c069724b49;hb=c9d1a7e9cc28f4d94fff284a4ca09a23f8eea855;hp=5bf0b4306204ba1db4dbf89e7a2dc2ff8f6f6663;hpb=6fb67bc94e1d53acc1e1b339f22bb7d4f2f7dea3;p=bertos.git diff --git a/wizard/bertos_utils.py b/wizard/bertos_utils.py index 5bf0b430..ec52a210 100644 --- a/wizard/bertos_utils.py +++ b/wizard/bertos_utils.py @@ -1,8 +1,32 @@ #!/usr/bin/env python # encoding: utf-8 # +# This file is part of BeRTOS. +# +# Bertos 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 2 of the License, or +# (at your option) any later version. +# +# This program 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, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +# +# As a special exception, you may use this file as part of a free software +# library without restriction. Specifically, if other files instantiate +# templates or use macros or inline functions from this file, or you compile +# this file and link it with other files to produce an executable, this +# file does not by itself cause the resulting executable to be covered by +# the GNU General Public License. This exception does not however +# invalidate any other reasons why the executable file might be covered by +# the GNU General Public License. +# # Copyright 2008 Develer S.r.l. (http://www.develer.com/) -# All rights reserved. # # $Id$ # @@ -31,8 +55,9 @@ def bertosVersion(directory): def createBertosProject(project_info): directory = project_info.info("PROJECT_PATH") sources_dir = project_info.info("SOURCES_PATH") - if not os.path.isdir(directory): - os.mkdir(directory) + if os.path.isdir(directory): + shutil.rmtree(directory, True) + os.makedirs(directory) f = open(directory + "/project.bertos", "w") f.write(pickle.dumps(project_info)) f.close() @@ -70,7 +95,7 @@ def createBertosProject(project_info): configurations = project_info.info("CONFIGURATIONS") configuration = configurations[information["configuration"]] for start, parameter in configuration["paramlist"]: - if "type" in configuration[parameter] and configuration[parameter]["type"] == "autoenabled": + if "type" in configuration[parameter]["informations"] and configuration[parameter]["informations"]["type"] == "autoenabled": configuration[parameter]["value"] = "1" project_info.setInfo("CONFIGURATIONS", configurations) # Copy all the configuration files @@ -97,10 +122,16 @@ def createBertosProject(project_info): # Files for selected plugins relevants_files = {} for plugin in project_info.info("OUTPUT"): - module = getattr(__import__("plugins", {}, {}, [plugin]), plugin) + module = loadPlugin(plugin) relevants_files[plugin] = module.createProject(project_info) - project_info.setInfo("RELEVANTS_FILES", relevants_files) + project_info.setInfo("RELEVANT_FILES", relevants_files) +def loadPlugin(plugin): + """ + Returns the given plugin module. + """ + return getattr(__import__("plugins", {}, {}, [plugin]), plugin) + def mkGenerator(project_info, makefile): """ Generates the mk file for the current project. @@ -198,7 +229,7 @@ def csrcGenerator(project_info): cppasrc = " \\\n\t".join(cppasrc) + " \\" cxxsrc = " \\\n\t".join(cxxsrc) + " \\" asrc = " \\\n\t".join(asrc) + " \\" - constants = "\n".join([os.path.basename(project_info.info("PROJECT_PATH")) + "_" + key + " = " + str(value) for key, value in constants.items()]) + constants = "\n".join([os.path.basename(project_info.info("PROJECT_PATH")) + "_" + key + " = " + unicode(value) for key, value in constants.items()]) return csrc, pcsrc, cppasrc, cxxsrc, asrc, constants def findModuleFiles(module, project_info):