X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=commands%2Fgenerate.py;h=a190b5d172030ecb34b4b0e4734ccaa965909189;hb=72e8ca6087a7244947144df1a9c427cbd0683780;hp=b7d53f8a083572e1a04fa71b95fea15dc47dc210;hpb=1969325b4d84daa4386b7b9941798dc69162e78a;p=tools%2Fsat.git diff --git a/commands/generate.py b/commands/generate.py index b7d53f8..a190b5d 100644 --- a/commands/generate.py +++ b/commands/generate.py @@ -23,14 +23,15 @@ import imp import subprocess import src +import src.debug as DBG parser = src.options.Options() parser.add_option('p', 'products', 'list2', 'products', - _("the list of products to generate")) + _("Optional: the list of products to generate")) parser.add_option('', 'yacsgen', 'string', 'yacsgen', - _("path to YACSGEN's module_generator package")) + _("Optional: path to YACSGEN's module_generator package")) -def generate_component_list(config, product_info, context, logger): +def generate_component_list(config, product_name, product_info, context, logger): res = "?" logger.write("\n", 3) for compo in src.product.get_product_components(product_info): @@ -38,6 +39,7 @@ def generate_component_list(config, product_info, context, logger): "." * (20 - len(compo))) res = generate_component(config, compo, + product_name, product_info, context, header, @@ -48,9 +50,16 @@ def generate_component_list(config, product_info, context, logger): logger.write("\n", 3, False) return res -def generate_component(config, compo, product_info, context, header, logger): - hxxfile = compo + ".hxx" - cpplib = "lib" + compo + "CXX.so" +def generate_component(config, compo, product_name, product_info, context, header, logger): +# get from config include file name and librairy name, or take default value + if "hxxfile" in product_info: + hxxfile = product_info.hxxfile + else: + hxxfile = compo + ".hxx" + if "cpplib" in product_info: + cpplib = product_info.cpplib + else: + cpplib = "lib" + compo + "CXX.so" cpp_path = product_info.install_dir logger.write("%s\n" % header, 4, False) @@ -75,7 +84,7 @@ def generate_component(config, compo, product_info, context, header, logger): config.PRODUCTS.addMapping(compo, src.pyconf.Mapping(config), "") config.PRODUCTS[compo].default = compo_info - builder = src.compilation.Builder(config, logger, compo_info, check_src=False) + builder = src.compilation.Builder(config, logger, product_name, compo_info, check_src=False) builder.header = header # generate the component @@ -135,7 +144,10 @@ def generate_component(config, compo, product_info, context, header, logger): if src.product.product_has_salome_gui(product_info): # get files to build a template GUI - gui_files = salome_compo.getGUIfilesTemplate() + try: # try new yacsgen api + gui_files = salome_compo.getGUIfilesTemplate(compo) + except: # use old yacsgen api + gui_files = salome_compo.getGUIfilesTemplate() else: gui_files = None @@ -260,7 +272,7 @@ def check_yacsgen(config, directory, logger): yacsgen_info = src.product.get_product_config(config, 'YACSGEN') yacsgen_dir = yacsgen_info.install_dir yacs_src = _("Using YACSGEN from application") - elif os.environ.has_key("YACSGEN_ROOT_DIR"): + elif "YACSGEN_ROOT_DIR" in os.environ: yacsgen_dir = os.getenv("YACSGEN_ROOT_DIR") yacs_src = _("Using YACSGEN from environment") @@ -301,7 +313,8 @@ def description(): :rtype: str ''' return _("The generate command generates SALOME modules from 'pure cpp' " - "products.\nWARNING this command NEEDS YACSGEN to run!") + "products.\nWARNING this command NEEDS YACSGEN to run!\n\nexample:" + "\nsat generate SALOME-master --products FLICACPP") def run(args, runner, logger): @@ -357,9 +370,19 @@ def run(args, runner, logger): logger.write(_("not a generated product\n"), 3, False) continue + logger.write(_("\nCleaning generated directories\n"), 3, False) + # clean source, build and install directories of the generated product + # no verbosity to avoid warning at the first generation, for which dirs don't exist + runner.clean(runner.cfg.VARS.application + + " --products " + pi.name + + " --generated", + batch=True, + verbose=0, + logger_add_link = logger) nbgen += 1 try: result = generate_component_list(runner.cfg, + product, pi, context, logger)