X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=commands%2Fmake.py;h=6cd7bac762b4efe924898d5af37e7b63da799a63;hb=8907858912a4ceb6358a1f6659e8b9dbd6ef4ef4;hp=a64ec11411b318883bf319bc51c7f1d3408c8154;hpb=fc3047920719104a389d0c771ee8e6d46d907207;p=tools%2Fsat.git diff --git a/commands/make.py b/commands/make.py index a64ec11..6cd7bac 100644 --- a/commands/make.py +++ b/commands/make.py @@ -24,10 +24,10 @@ import src # Define all possible option for the make command : sat make parser = src.options.Options() parser.add_option('p', 'products', 'list2', 'products', - _('products to configure. This option can be' + _('Optional: products to configure. This option can be' ' passed several time to configure several products.')) parser.add_option('o', 'option', 'string', 'option', - _('Option to add to the make command.'), "") + _('Optional: Option to add to the make command.'), "") def get_products_list(options, cfg, logger): '''method that gives the product list with their informations from @@ -36,7 +36,8 @@ def get_products_list(options, cfg, logger): :param options Options: The Options instance that stores the commands arguments :param cfg Config: The global configuration - :param logger Logger: The logger instance to use for the display and logging + :param logger Logger: The logger instance to use for the display and + logging :return: The list of (product name, product_informations). :rtype: List ''' @@ -58,7 +59,9 @@ def get_products_list(options, cfg, logger): # the products name and their definition products_infos = src.product.get_products_infos(products, cfg) - products_infos = [pi for pi in products_infos if not(src.product.product_is_native(pi[1]) or src.product.product_is_fixed(pi[1]))] + products_infos = [pi for pi in products_infos if not( + src.product.product_is_native(pi[1]) or + src.product.product_is_fixed(pi[1]))] return products_infos @@ -118,7 +121,14 @@ def make_product(p_name_info, make_option, config, logger): logger.write(header, 3) logger.write("\n", 4, False) logger.flush() - + + # Do nothing if he product is not compilable + if ("properties" in p_info and "compilation" in p_info.properties and + p_info.properties.compilation == "no"): + log_step(logger, header, "ignored") + logger.write("\n", 3, False) + return 0 + # Instantiate the class that manages all the construction commands # like cmake, make, make install, make test, environment management, etc... builder = src.compilation.Builder(config, logger, p_info) @@ -130,6 +140,7 @@ def make_product(p_name_info, make_option, config, logger): # Execute buildconfigure, configure if the product is autotools # Execute cmake if the product is cmake + len_end_line = 20 res = 0 if not src.product.product_has_script(p_info): nb_proc, make_opt_without_j = get_nb_proc(p_info, config, make_option) @@ -137,16 +148,23 @@ def make_product(p_name_info, make_option, config, logger): res_m = builder.make(nb_proc, make_opt_without_j) log_res_step(logger, res_m) res += res_m + else: + scrit_path_display = src.printcolors.printcLabel(p_info.compil_script) + log_step(logger, header, "SCRIPT " + scrit_path_display) + len_end_line += len(scrit_path_display) + res_s = builder.do_script_build(p_info.compil_script) + log_res_step(logger, res_s) + res += res_s # Log the result if res > 0: - logger.write("\r%s%s" % (header, " " * 20), 3) + logger.write("\r%s%s" % (header, " " * len_end_line), 3) logger.write("\r" + header + src.printcolors.printcError("KO")) logger.write("==== %(KO)s in make of %(name)s \n" % { "name" : p_name , "KO" : src.printcolors.printcInfo("ERROR")}, 4) logger.flush() else: - logger.write("\r%s%s" % (header, " " * 20), 3) + logger.write("\r%s%s" % (header, " " * len_end_line), 3) logger.write("\r" + header + src.printcolors.printcSuccess("OK")) logger.write("==== %s \n" % src.printcolors.printcInfo("OK"), 4) logger.write("==== Make of %(name)s %(OK)s \n" % @@ -190,7 +208,10 @@ def description(): :rtype: str ''' return _("The make command executes the \"make\" command in" - " the build directory") + " the build directory.\nIn case of a product that is constructed " + "using a script (build_source : \"script\"), then the make " + "command executes the script.\n\nexample:\nsat make SALOME-master " + "--products Python,KERNEL,GUI") def run(args, runner, logger): '''method that is called when salomeTools is called with make parameter. @@ -202,11 +223,12 @@ def run(args, runner, logger): # check that the command has been called with an application src.check_config_has_application( runner.cfg ) - # Get the list of products to threat + # Get the list of products to treat products_infos = get_products_list(options, runner.cfg, logger) # Print some informations - logger.write(_('Executing the make command in the build directories of the application %s\n') % + logger.write(_('Executing the make command in the build ' + 'directories of the application %s\n') % src.printcolors.printcLabel(runner.cfg.VARS.application), 1) info = [(_("BUILD directory"), @@ -215,6 +237,8 @@ def run(args, runner, logger): # Call the function that will loop over all the products and execute # the right command(s) + if options.option is None: + options.option = "" res = make_all_products(runner.cfg, products_infos, options.option, logger) # Print the final state