From 4817e9acd94ac61c97e5377a0dd6adf8814c9c4b Mon Sep 17 00:00:00 2001 From: =?utf8?q?C=C3=A9dric=20Aguerre?= Date: Tue, 13 Sep 2016 10:43:30 +0200 Subject: [PATCH] option for Pleiade mirrors --- scripts/BuildSalomeMini.py | 51 ++++++++++++++++++++---------------- scripts/SalomeMiniConfig.cfg | 12 ++++++--- scripts/salome_config.py | 22 ++++++++++++---- scripts/salome_download.py | 24 ++++++++++------- 4 files changed, 68 insertions(+), 41 deletions(-) diff --git a/scripts/BuildSalomeMini.py b/scripts/BuildSalomeMini.py index c8f4e4a..f5c4e5c 100755 --- a/scripts/BuildSalomeMini.py +++ b/scripts/BuildSalomeMini.py @@ -1,6 +1,7 @@ #! /usr/bin/env python import os,sys,shutil,glob +from optparse import OptionParser from salome_misc import AutoChdir from salome_config import read_config_file, initialize, update_config_file @@ -12,7 +13,7 @@ from salome_environ import accumulateEnv, generateFileEnv current_directory=os.path.dirname(os.path.abspath(__file__)) -def __init(envAcc={}, paraview_version=None): +def __init(envAcc={}, paraview_version=None, use_pleiade_mirrors=False): # Read configuration filename=os.path.join(current_directory, "SalomeMiniConfig.cfg") config=read_config_file(filename) @@ -20,6 +21,11 @@ def __init(envAcc={}, paraview_version=None): config["paraview_version"] = paraview_version[0] config["paraview_git_version"] = paraview_version[1] update_config_file(filename, {"paraview_version": paraview_version[0], "paraview_git_version":paraview_version[1]}) + pass + if use_pleiade_mirrors: + config["use_pleiade_mirrors"] = use_pleiade_mirrors + #update_config_file(filename, {"use_pleiade_mirrors": "yes"}) + pass # Check system prerequisites check_gcc_version(config["gcc_version_min"], envAcc) # Download archives @@ -66,9 +72,9 @@ ENDIF() return os.path.abspath(destReal) #################### -def __let_us_go(paraview_version=None): +def __let_us_go(paraview_version=None, use_pleiade_mirrors=False): envAcc={} - config=__init(paraview_version=paraview_version) + config=__init(paraview_version=paraview_version, use_pleiade_mirrors=use_pleiade_mirrors) # Prepare build rootDir="SalomeMini" @@ -152,31 +158,30 @@ def __let_us_go(paraview_version=None): print("Env file generated : %s"%envFile) pass -def __usage(exe): - return """ -Usage: %s [--with-paraview-version=number,sha1]\n -Use option --with-paraview-version to build a specific paraview version. Give the -version number (e.g. 5.1) and a git sha1. -"""%(exe) +def __parse_options(): + parser = OptionParser() + parser.add_option("--with-paraview-version", dest="paraview_version", + help="Build a specific paraview version. Give the version number (e.g. 5.1) and a git sha1.", metavar="number,sha1") + parser.add_option("--pleiade", + action="store_true", dest="pleiade", default=False, + help="Use PLEIADE mirrors (for EDF).") + (options, args) = parser.parse_args() + return options, args ### if __name__ == "__main__": - if len(sys.argv) not in [1,2]: - print __usage(sys.argv[0]) + options, args = __parse_options() + if args: + print "Unrecognized argument(s):", ",".join(args) sys.exit(1) paraview_version = None - if len(sys.argv) == 2: - if sys.argv[1].startswith("--with-paraview-version="): - try: - number,sha1 = sys.argv[1].split("=")[1].split(",") - paraview_version = (number.strip(),sha1.strip()) - except: - print "Syntax error in paraview version" - print __usage(sys.argv[0]) - sys.exit(1) - else: - print __usage(sys.argv[0]) + if options.paraview_version: + try: + number,sha1 = options.paraview_version.split(",") + paraview_version = (number.strip(),sha1.strip()) + except: + print "Syntax error in paraview version" sys.exit(1) - __let_us_go(paraview_version) + __let_us_go(paraview_version=paraview_version, use_pleiade_mirrors=options.pleiade) diff --git a/scripts/SalomeMiniConfig.cfg b/scripts/SalomeMiniConfig.cfg index 6948cd8..e320160 100644 --- a/scripts/SalomeMiniConfig.cfg +++ b/scripts/SalomeMiniConfig.cfg @@ -18,15 +18,18 @@ swig_url=http://downloads.sourceforge.net/project/swig/swig/swig-2.0.8/swig-2.0. [ParaView] paraview_git_repo=https://github.com/Kitware/ParaView.git -paraview_git_version=97cdb51f +#paraview_git_repo=https://gitlab.kitware.com/paraview/paraview.git +paraview_git_repo_pleiade=https://git.forge.pleiade.edf.fr/git/prerequisites-salome.paraview.git +paraview_git_version=09fee996 paraview_version=5.1 [SALOME] -# Last Update: 31/08/2016 +# Last Update: 13/09/2016 salome_git_repo=https://git.salome-platform.org/gitpub -medcoupling_version=7146d186409953ffb6875c8b75deaf6971ce981a +salome_git_repo_pleiade=https://git.forge.pleiade.edf.fr/git +medcoupling_version=c05e2c047dcd8953a4242c696dd34abf0674ffdf repo_config_version=e31ab9172f3922b62b56c10969e2b88eda24c002 -paravis_version=f8c7a434ba8797c580c2fe4c532a4cbac580d309 +paravis_version=f671e69102c5ae8e2194509a6b719fae0b06d26c [Build options] make_nb_jobs=6 @@ -34,3 +37,4 @@ do_archive_download=yes [System] gcc_version_min=4.9.2 +use_pleiade_mirrors=no diff --git a/scripts/salome_config.py b/scripts/salome_config.py index 8f156b1..e4a22f5 100644 --- a/scripts/salome_config.py +++ b/scripts/salome_config.py @@ -28,15 +28,18 @@ def read_config_file(config_filename): config["swig_version"] = c.get('Prerequisites', 'swig_version', 0) config["swig_url"] = c.get('Prerequisites', 'swig_url', 0) config["paraview_git_repo"] = c.get('ParaView', 'paraview_git_repo', 0) + config["paraview_git_repo_pleiade"] = c.get('ParaView', 'paraview_git_repo_pleiade', 0) config["paraview_git_version"] = c.get('ParaView', 'paraview_git_version', 0) config["paraview_version"] = c.get('ParaView', 'paraview_version', 0) config["salome_git_repo"] = c.get('SALOME', 'salome_git_repo', 0) + config["salome_git_repo_pleiade"] = c.get('SALOME', 'salome_git_repo_pleiade', 0) config["medcoupling_version"] = c.get('SALOME', 'medcoupling_version', 0) config["repo_config_version"] = c.get('SALOME', 'repo_config_version', 0) config["paravis_version"] = c.get('SALOME', 'paravis_version', 0) config["make_nb_jobs"] = c.get('Build options', 'make_nb_jobs', 0) config["do_archive_download"] = c.getboolean('Build options', 'do_archive_download') config["gcc_version_min"] = c.get('System', 'gcc_version_min') + config["use_pleiade_mirrors"] = c.getboolean('System', 'use_pleiade_mirrors') return config __softwares = ["cmake","python","hdf5","swig","qt","med","medcoupling","paraview","paravis"] @@ -63,11 +66,20 @@ def initialize(config): config["paraCompFlag"] = "-j%s"%config["make_nb_jobs"] - config["paraviewLoc"] = (config["paraview_git_repo"],config["paraview_git_version"]) - salome_git_repo = config["salome_git_repo"] - config["medcouplingLoc"] = (os.path.join(salome_git_repo,"tools","medcoupling.git"),config["medcoupling_version"]) - config["repoConfigLoc"] = (os.path.join(salome_git_repo,"tools","configuration.git"),config["repo_config_version"]) - config["paravisLoc"] = (os.path.join(salome_git_repo,"modules","paravis.git"),config["paravis_version"]) + if config["use_pleiade_mirrors"]: + config["paraviewLoc"] = (config["paraview_git_repo_pleiade"],config["paraview_git_version"]) + salome_git_repo = config["salome_git_repo_pleiade"] + config["medcouplingLoc"] = (os.path.join(salome_git_repo,"tools-salome.medcoupling.git"),config["medcoupling_version"]) + config["repoConfigLoc"] = (os.path.join(salome_git_repo,"tools-salome.configuration.git"),config["repo_config_version"]) + config["paravisLoc"] = (os.path.join(salome_git_repo,"modules-salome.paravis.git"),config["paravis_version"]) + else: + config["paraviewLoc"] = (config["paraview_git_repo"],config["paraview_git_version"]) + salome_git_repo = config["salome_git_repo"] + config["medcouplingLoc"] = (os.path.join(salome_git_repo,"tools","medcoupling.git"),config["medcoupling_version"]) + config["repoConfigLoc"] = (os.path.join(salome_git_repo,"tools","configuration.git"),config["repo_config_version"]) + config["paravisLoc"] = (os.path.join(salome_git_repo,"modules","paravis.git"),config["paravis_version"]) + pass + pass def update_config_file(filename, dico): diff --git a/scripts/salome_download.py b/scripts/salome_download.py index 55d6e06..4ead437 100644 --- a/scripts/salome_download.py +++ b/scripts/salome_download.py @@ -1,9 +1,11 @@ #! /usr/bin/env python import os +import sys import tarfile import shutil import subprocess +import urllib2 from salome_misc import AutoChdir @@ -78,7 +80,7 @@ def __extractSrcFromGit(gitLoc,srcDir,pattern): if p.returncode != 0: msg = "Error in checkout\n" + p_err raise Exception(msg) - if dirGitLoc=="ParaView": + if dirGitLoc in ["ParaView", "prerequisites-salome.paraview"]: p=subprocess.Popen(["git","submodule","update","--init"],cwd=dirGitLoc,stdout=subprocess.PIPE,stderr=subprocess.PIPE) p_out,p_err=p.communicate() if p.returncode != 0: @@ -95,8 +97,11 @@ def extractSrc(srcDir,pattern,config): else: raise Exception("Unrecognized localization of source : %s"%srcLoc) -import urllib2 -def __download(url, outfile): +def __download(url, outfile, use_pleiade_mirrors, subfolder): + if use_pleiade_mirrors: + archive_name = os.path.basename(url) + url = os.path.join("http://ftp.pleiade.edf.fr/projets/YAMM/Public/SALOME/sources", subfolder, archive_name) + print "Downloading",outfile,"..." if os.path.exists(outfile): print "Already downloaded" # :TODO: should include MD5 check @@ -143,12 +148,13 @@ def download_archives(current_directory, config): pass if do_archive_download: - __download(config["cmake_url"], cmakeLoc) - __download(config["med_url"], medLoc) - __download(config["hdf5_url"], hdf5Loc) - __download(config["swig_url"], swigLoc) - __download(config["qt_url"], qtLoc) - __download(config["python_url"], pythonLoc) + use_pleiade_mirrors = config["use_pleiade_mirrors"] + __download(config["cmake_url"], cmakeLoc, use_pleiade_mirrors, "prerequis") + __download(config["med_url"], medLoc, use_pleiade_mirrors, "tools") + __download(config["hdf5_url"], hdf5Loc, use_pleiade_mirrors, "prerequis") + __download(config["swig_url"], swigLoc, use_pleiade_mirrors, "prerequis") + __download(config["qt_url"], qtLoc, use_pleiade_mirrors, "prerequis") + __download(config["python_url"], pythonLoc, use_pleiade_mirrors, "prerequis") pass config["cmakeLoc"] = cmakeLoc -- 2.39.2