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):
res = "?"
return res
def generate_component(config, compo, product_info, context, header, logger):
- hxxfile = compo + ".hxx"
- cpplib = "lib" + compo + "CXX.so"
+# 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)
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, compo, compo_info, check_src=False)
builder.header = header
# generate the component
- # create GENERETE dir if necessary
+ # create GENERATE dir if necessary
if not os.path.exists(generate_dir):
os.mkdir(generate_dir)
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
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")
: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):
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,