# Define all possible option for configure command : sat configure <options>
parser = src.options.Options()
parser.add_option('p', 'products', 'list2', 'products',
- _('products to configure. This option can be'
- ' passed several time to configure several products.'))
+ _('Optional: products to configure. This option accepts a comma separated list.'))
parser.add_option('o', 'option', 'string', 'option',
- _('Option to add to the configure or cmake command.'), "")
+ _('Optional: Option to add to the configure or cmake command.'), "")
-def get_products_list(options, cfg, logger):
- '''method that gives the product list with their informations from
- configuration regarding the passed options.
-
- :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
- :return: The list of (product name, product_informations).
- :rtype: List
- '''
- # Get the products to be prepared, regarding the options
- if options.products is None:
- # No options, get all products sources
- products = cfg.APPLICATION.products
- else:
- # if option --products, check that all products of the command line
- # are present in the application.
- products = options.products
- for p in products:
- if p not in cfg.APPLICATION.products:
- raise src.SatException(_("Product %(product)s "
- "not defined in application %(application)s") %
- { 'product': p, 'application': cfg.VARS.application} )
-
- # Construct the list of tuple containing
- # 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]))]
-
- return products_infos
def log_step(logger, header, step):
logger.write("\r%s%s" % (header, " " * 20), 3)
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)
:rtype: str
'''
return _("The configure command executes in the build directory"
- " the configure commands corresponding to the compilation mode"
+ " the configure commands corresponding\nto the compilation mode"
" of the application products.\nThe possible compilation modes"
" are \"cmake\", \"autotools\", or a script.\n\nHere are the "
"commands to be run :\nautotools: build_configure and configure\n"
- "cmake: cmake\nscript: N\A")
+ "cmake: cmake\nscript: do nothing\n\nexample:\nsat configure "
+ "SALOME-master --products KERNEL,GUI,PARAVIS")
def run(args, runner, logger):
'''method that is called when salomeTools is called with make parameter.
# check that the command has been called with an application
src.check_config_has_application( runner.cfg )
- # Get the list of products to threat
- products_infos = get_products_list(options, runner.cfg, logger)
+ # Get the list of products to treat
+ products_infos = src.product.get_products_list(options, runner.cfg, logger)
# Print some informations
logger.write(_('Configuring the sources of the application %s\n') %
# Call the function that will loop over all the products and execute
# the right command(s)
+ if options.option is None:
+ options.option = ""
res = configure_all_products(runner.cfg, products_infos, options.option, logger)
# Print the final state