From: Cédric Aguerre Date: Thu, 28 Jan 2016 13:14:21 +0000 (+0100) Subject: Initiate Python build script X-Git-Tag: 160205_pv50~3 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=eeb05965a7291c718e66e742c84ebc5359b7830c;p=tools%2Fpvdeliv.git Initiate Python build script --- diff --git a/scripts/BuildSalomeMini.py b/scripts/BuildSalomeMini.py new file mode 100755 index 0000000..3621ba3 --- /dev/null +++ b/scripts/BuildSalomeMini.py @@ -0,0 +1,459 @@ +#! /usr/bin/env python + +import os,subprocess,sys,re,datetime,shutil,glob + +rootDir="SalomeMini" +cmakeLoc="/home/H87074/salome/archives/cmake-3.0.2.tar.gz" +pythonLoc="/home/H87074/salome/archives/Python-2.7.10.tgz" +hdf5Loc="/home/H87074/salome/archives/hdf5-1.8.14.tar.gz" +swigLoc="/home/H87074/salome/archives/swig-2.0.8.tar.gz" +qtLoc="/home/H87074/salome/archives/qt-everywhere-opensource-src-5.5.1.tar.gz" +medLoc="/home/H87074/salome/archives/med-3.2.0rc1.tar.bz2" +medcouplingLoc=("https://git.salome-platform.org/gitpub/tools/medcoupling.git","0b7cacaa925") +paraviewLoc=("https://github.com/Kitware/ParaView.git","v5.0.0") +kernelLoc=("https://git.salome-platform.org/gitpub/modules/kernel.git","f64e49d2e163b9de96ea0") +guiLoc=("https://git.salome-platform.org/gitpub/modules/gui.git","7397622d22624ab84dd52c68a2") +paravisLoc=("https://git.salome-platform.org/gitpub/modules/paravis.git","574ac287ed7022000") + +#env PATH=/local00/home/H87074/TMP46/SalomeMiniForKW/install/cmake-3.0.2/bin:/local00/home/H87074/TMP46/SalomeMiniForKW/install/Python-2.7.10/bin:/local00/home/H87074/TMP46/SalomeMiniForKW/install/hdf5-1.8.14/bin:/local00/home/H87074/TMP46/SalomeMiniForKW/install/swig-2.0.8/bin:/local00/home/H87074/Tools/git_2.0.1_install/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games SWIG_LIB=/local00/home/H87074/TMP46/SalomeMiniForKW/install/swig-2.0.8/share/swig/2.0.8 LD_LIBRARY_PATH=/local00/home/H87074/TMP46/SalomeMiniForKW/install/Python-2.7.10/lib:/local00/home/H87074/TMP46/SalomeMiniForKW/install/hdf5-1.8.14/lib PYTHON_VERSION=2.7 HDF5HOME=/local00/home/H87074/TMP46/SalomeMiniForKW/install/hdf5-1.8.14 SWIG_ROOT_DIR=/local00/home/H87074/TMP46/SalomeMiniForKW/install/swig-2.0.8 PYTHONSTARTUP=/local00/home/H87074/TMP46/SalomeMiniForKW/install/Python-2.7.10/pythonrc.py:/netdata/H87074/.pythonrc PYTHONHOME=/local00/home/H87074/TMP46/SalomeMiniForKW/install/Python-2.7.10 PYTHON_INCLUDE=/local00/home/H87074/TMP46/SalomeMiniForKW/install/Python-2.7.10/include/python2.7 HDF5_DISABLE_VERSION_CHECK=1 + +paraCompFlag="-j8" +cfgOut="config_out.txt" +cfgErr="config_err.txt" +compOut="compile_out.txt" +compErr="compile_err.txt" +okFlag=".install_ok" + +def cmake_Environ(installDir,envAcc): + pathAdd=[os.path.join(installDir,"bin")] + addEnv(envAcc,"PATH",pathAdd) + pass + +def python_Environ(installDir,envAcc): + pathAdd=[os.path.join(installDir,"bin")] + ldPathAdd=[os.path.join(installDir,"lib")] + addEnv(envAcc,"PATH",pathAdd) + addEnv(envAcc,"LD_LIBRARY_PATH",ldPathAdd) + envAcc["PYTHONHOME"]=installDir + envAcc["PYTHONSTARTUP"]=os.path.join(installDir,"pythonrc.py") + envAcc["PYTHON_VERSION"]="2.7" + envAcc["PYTHON_INCLUDE"]=os.path.join(installDir,"include","python%s"%envAcc["PYTHON_VERSION"]) + pass + +def hdf5_Environ(installDir,envAcc): + envAcc["HDF5HOME"]=installDir + envAcc["HDF5_DISABLE_VERSION_CHECK"]="1" + pathAdd=[os.path.join(installDir,"bin")] + ldPathAdd=[os.path.join(installDir,"lib")] + addEnv(envAcc,"PATH",pathAdd) + addEnv(envAcc,"LD_LIBRARY_PATH",ldPathAdd) + pass + +def swig_Environ(installDir,envAcc): + pathAdd=[os.path.join(installDir,"bin")] + addEnv(envAcc,"PATH",pathAdd) + envAcc["SWIG_ROOT_DIR"]=installDir + envAcc["SWIG_LIB"]=os.path.join(installDir,"share","swig","2.0.8") + pass + +def qt_Environ(installDir,envAcc): + pathAdd=[os.path.join(installDir,"bin")] + ldPathAdd=[os.path.join(installDir,"lib")] + addEnv(envAcc,"PATH",pathAdd) + addEnv(envAcc,"LD_LIBRARY_PATH",ldPathAdd) + envAcc["QTDIR"]=installDir + envAcc["QT_PLUGIN_PATH"]=os.path.join(installDir,"plugins") + pass + +def med_Environ(installDir,envAcc): + pathAdd=[os.path.join(installDir,"bin")] + ldPathAdd=[os.path.join(installDir,"lib")] + pyPathAdd=[os.path.join(installDir,"lib","python2.7","site-packages")] + addEnv(envAcc,"PATH",pathAdd) + addEnv(envAcc,"LD_LIBRARY_PATH",ldPathAdd) + addEnv(envAcc,"PYTHONPATH",pyPathAdd) + envAcc["MED3HOME"]=installDir + pass + +def medcoupling_Environ(installDir,envAcc): + pathAdd=[os.path.join(installDir,"bin")] + ldPathAdd=[os.path.join(installDir,"lib")] + pyPathAdd=[os.path.join(installDir,"lib","python2.7","site-packages")] + addEnv(envAcc,"PATH",pathAdd) + addEnv(envAcc,"LD_LIBRARY_PATH",ldPathAdd) + addEnv(envAcc,"PYTHONPATH",pyPathAdd) + addEnv(envAcc,"PATH",pathAdd) + addEnv(envAcc,"LD_LIBRARY_PATH",ldPathAdd) + addEnv(envAcc,"PYTHONPATH",pyPathAdd) + envAcc["MEDCOUPLINGHOME"]=installDir + pass + +def paraview_Environ(installDir,envAcc): + pvversion="5.0" + envAcc["PVHOME"]=installDir + envAcc["PVVERSION"]=pvversion + pathAdd=[os.path.join(installDir,"bin")] + addEnv(envAcc,"PATH",pathAdd) + ldPathAdd=[os.path.join(installDir,"lib","paraview-%s"%pvversion)] + addEnv(envAcc,"LD_LIBRARY_PATH",ldPathAdd) + pyPathAdd =[os.path.join(installDir,"lib","paraview-%s"%pvversion,"site-packages")] + pyPathAdd+=[os.path.join(installDir,"lib","paraview-%s"%pvversion,"site-packages","vtk")] + pyPathAdd+=[os.path.join(installDir,"lib","paraview-%s"%pvversion,"site-packages","paraview","vtk")] + addEnv(envAcc,"PYTHONPATH",pyPathAdd) + pvPlgPathAdd=[os.path.join(installDir,"lib","paraview-%s"%pvversion)] + addEnv(envAcc,"PV_PLUGIN_PATH",pvPlgPathAdd) + pass + +def paravis_Environ(installDir,envAcc): + ldPathAdd=[os.path.join(installDir,"lib","salome")] + pvPlgPathAdd=[os.path.join(installDir,"lib","paraview")] + addEnv(envAcc,"LD_LIBRARY_PATH",ldPathAdd) + addEnv(envAcc,"PV_PLUGIN_PATH",pvPlgPathAdd) + pass + +#################### + +def addEnv(dico,key,val): + if key not in dico.keys(): + dico[key]=val + else: + dico[key]+=val + +class AutoChdir: + def __init__(self,dn): + os.chdir(dn) + def __del__(self): + os.chdir("..") + +def extractSrcFromArchive(srcLoc,srcDir,pattern): + tmpDir="tmp" + zz=AutoChdir(srcDir) + if os.path.exists(tmpDir): + assert(False) + os.mkdir(tmpDir) + srcDN=None + ret=None + myExt=os.path.splitext(srcLoc)[1] + if myExt in [".gz",".tgz",".bz2"]: + if myExt in [".gz",".tgz"]: + myCmd=["tar","xfz",srcLoc] + else: + myCmd=["tar","xfj",srcLoc] + p=subprocess.Popen(myCmd,cwd=tmpDir,stdout=subprocess.PIPE,stderr=subprocess.PIPE) + p.communicate() + assert(p.returncode==0) + # + li=os.listdir(tmpDir) + assert(len(li)==1) + li=filter(lambda x: pattern.lower() in x.lower(),li) + assert(len(li)==1) + unzipDir=os.path.join(tmpDir,li[0]) + assert(os.path.isdir(unzipDir)) + srcDN=os.path.basename(li[0]) + ret=os.path.realpath(os.path.join(os.getcwd(),srcDN)) + if os.path.exists(ret): + print("\"%s\" already exists : keep it as this !"%ret) + shutil.rmtree(tmpDir) + else: + shutil.move(unzipDir,os.getcwd()) + os.rmdir(tmpDir) + pass + else: + assert(False) + #for elt in os.listdir(os.getcwd()): + # print datetime.date.fromtimestamp(os.stat(elt).st_ctime) + # pass + return ret + +def extractSrcFromGit(gitLoc,srcDir,pattern): + zz=AutoChdir(srcDir) + assert(isinstance(gitLoc,tuple)) + assert(len(gitLoc)==2) + dirGitLoc=os.path.splitext(os.path.basename(gitLoc[0]))[0] + ret=os.path.realpath(os.path.join(os.getcwd(),dirGitLoc)) + if not os.path.exists(dirGitLoc): + print("Cloning %s..."%dirGitLoc) + p=subprocess.Popen(["git","clone",gitLoc[0]],stdout=subprocess.PIPE,stderr=subprocess.PIPE) + p.communicate() + assert(p.returncode==0) + else: + assert(os.path.exists(os.path.join(dirGitLoc,".git"))) + p=subprocess.Popen(["git","checkout",gitLoc[1]],cwd=dirGitLoc,stdout=subprocess.PIPE,stderr=subprocess.PIPE) + p.communicate() + assert(p.returncode==0) + if dirGitLoc=="ParaView": + p=subprocess.Popen(["git","submodule","update","--init"],cwd=dirGitLoc,stdout=subprocess.PIPE,stderr=subprocess.PIPE) + p.communicate() + assert(p.returncode==0) + return ret + + +def extractSrc(srcDir,pattern): + srcLoc=eval("%sLoc"%pattern) + if isinstance(srcLoc,str): + return extractSrcFromArchive(srcLoc,srcDir,pattern) + elif isinstance(srcLoc,tuple): + return extractSrcFromGit(srcLoc,srcDir,pattern) + else: + raise Exception("Unrecognized localization of source : %s"%srcLoc) + +def computeEnv(envAcc,withDft=True): + import os,copy + if withDft: + d=copy.deepcopy(os.environ) + for k in os.environ.keys(): + if k not in envAcc.keys(): + del d[k] + else: + d={} + for k in envAcc.keys(): + l=[] + if k in d.keys(): + l=d[k].split(os.pathsep) + tmp=envAcc[k] + if not isinstance(tmp,list): + tmp=[tmp] + l=tmp+l + if k!="PYTHONSTARTUP": + d[k]=os.pathsep.join(l) + else: + d[k]=l[-1] + # + if "PATH" not in d.keys(): + d["PATH"]=os.environ["PATH"] + return d + +def compilePart0(envAcc,srcDir,topBuildDir,topInstallDir,addCfgParam,forceRebuild): + assert(os.path.isdir(srcDir)) + baseName=os.path.basename(srcDir) + myBuildDir=os.path.realpath(os.path.join(topBuildDir,baseName)) + myInstallDir=os.path.realpath(os.path.join(topInstallDir,baseName)) + if os.path.exists(myBuildDir): + if forceRebuild: + shutil.rmtree(myBuildDir) + else: + if not os.path.exists(os.path.join(myBuildDir,okFlag)): + shutil.rmtree(myBuildDir) + os.mkdir(myBuildDir) + else: + print("For \"%s\" : Do nothing !"%srcDir) + return myBuildDir,myInstallDir,False + else: + os.mkdir(myBuildDir) + return myBuildDir,myInstallDir,True + +def compilePart1(p,buildDir): + a,b=p.communicate() + f=file(os.path.join(buildDir,cfgOut),"w") ; f.write(a) ; f.flush() + f=file(os.path.join(buildDir,cfgErr),"w") ; f.write(b) ; f.flush() + assert(p.returncode==0) + +def compilePart2(envAcc,buildDir,splitInstall): + print("make in %s"%(buildDir)) + if not splitInstall: + p=subprocess.Popen(["make",paraCompFlag,"install"],cwd=buildDir,env=computeEnv(envAcc),stdout=subprocess.PIPE,stderr=subprocess.PIPE) + a,b=p.communicate() + f=file(os.path.join(buildDir,compOut),"w") ; f.write(a) ; f.flush() + f=file(os.path.join(buildDir,compErr),"w") ; f.write(b) ; f.flush() + assert(p.returncode==0) + else: + p=subprocess.Popen(["make",paraCompFlag],cwd=buildDir,env=computeEnv(envAcc),stdout=subprocess.PIPE,stderr=subprocess.PIPE) + a0,b0=p.communicate() + f=file(os.path.join(buildDir,compOut),"w") ; f.write(a0) ; f.flush() + f=file(os.path.join(buildDir,compErr),"w") ; f.write(b0) ; f.flush() + assert(p.returncode==0) + p=subprocess.Popen(["make",paraCompFlag,"install"],cwd=buildDir,env=computeEnv(envAcc),stdout=subprocess.PIPE,stderr=subprocess.PIPE) + a1,b1=p.communicate() + f=file(os.path.join(buildDir,compOut),"w") ; f.write(a0+a1) ; f.flush() + f=file(os.path.join(buildDir,compErr),"w") ; f.write(b0+b1) ; f.flush() + assert(p.returncode==0) + pass + f=file(os.path.join(buildDir,okFlag),"w") ; f.write(str(datetime.datetime.now())) ; f.flush() + pass + +def compileOldCommon(envAcc,srcDir,topBuildDir,topInstallDir,addCfgParam,forceRebuild,splitInstall): + myBuildDir,myInstallDir,shouldContinue=compilePart0(envAcc,srcDir,topBuildDir,topInstallDir,addCfgParam,forceRebuild) + if not shouldContinue: + return myInstallDir + myCmd=[os.path.join(srcDir,"configure"),"--prefix=%s"%(myInstallDir)]+addCfgParam + print(myCmd) + p=subprocess.Popen(myCmd,cwd=myBuildDir,env=computeEnv(envAcc),stdout=subprocess.PIPE,stderr=subprocess.PIPE) + compilePart1(p,myBuildDir) + compilePart2(envAcc,myBuildDir,splitInstall) + return myInstallDir + +def compileOld(envAcc,srcDir,topBuildDir,topInstallDir,addCfgParam,forceRebuild): + return compileOldCommon(envAcc,srcDir,topBuildDir,topInstallDir,addCfgParam,forceRebuild,False) + +def compileVeryOld(envAcc,srcDir,topBuildDir,topInstallDir,addCfgParam,forceRebuild): + return compileOldCommon(envAcc,srcDir,topBuildDir,topInstallDir,addCfgParam,forceRebuild,True) + +def compileNew(envAcc,srcDir,topBuildDir,topInstallDir,addCfgParam,forceRebuild): + myBuildDir,myInstallDir,shouldContinue=compilePart0(envAcc,srcDir,topBuildDir,topInstallDir,addCfgParam,forceRebuild) + if not shouldContinue: + return myInstallDir + myCmd=["cmake","-DCMAKE_INSTALL_PREFIX=%s"%(myInstallDir)]+addCfgParam+[srcDir] + print(" ".join(myCmd)) + p=subprocess.Popen(myCmd,cwd=myBuildDir,env=computeEnv(envAcc),stdout=subprocess.PIPE,stderr=subprocess.PIPE) + compilePart1(p,myBuildDir) + compilePart2(envAcc,myBuildDir,False) + return myInstallDir + +def accumulateEnv(installDir,pattern,envAcc): + """ envAcc out parameter""" + zeAccumulator=eval("%s_Environ"%pattern) + zeAccumulator(installDir,envAcc) + pass + +def generateInlineEnv(envAcc): + d=computeEnv(envAcc) + return "env "+" ".join(["%s=%s"%(k,d[k]) for k in d.keys()]) + + +def generateFileEnv(envAcc): + d=computeEnv(envAcc) + return "\n".join(["export %s=\"%s\""%(k,d[k]) for k in d.keys()]) + +def bidouilleForCMake(topSrcDir,guiSrcDir): + kernelFake="DUMMY_KERNEL" + zeKernelFake=os.path.join(topSrcDir,kernelFake) + if os.path.exists(zeKernelFake): + shutil.rmtree(zeKernelFake) + os.mkdir(zeKernelFake) + distDir=os.path.join(zeKernelFake,"salome_adm") + os.mkdir(distDir) + shutil.copytree(os.path.join(guiSrcDir,"adm_local","cmake_files"),os.path.join(distDir,"cmake_files")) + return os.path.abspath(zeKernelFake) + +def copyCMakeFromSrcToInstall(srcDir,installDir): + zeSrcDir=os.path.join(srcDir,"cmake_files") + zeInstDir=os.path.join(installDir,"cmake_files") + for fi in glob.glob(os.path.join(zeSrcDir,"*.cmake")): + shutil.copy(fi,zeInstDir) + +def patchCMakeLists(topSrcDir,srcDir): + realSrcDirSrc=os.path.join(srcDir,'src','Plugins','MEDReader') + destReal=os.path.join(topSrcDir,'MEDReader') + if os.path.exists(destReal): + shutil.rmtree(destReal) + shutil.copytree(realSrcDirSrc,destReal) + linesToAdd0="""INCLUDE(UseQtExt) +""" + linesToAdd1="""IF (NOT SALOME_GUI_BUILD_WITH_QT5) + FIND_PACKAGE(SalomeQt4 REQUIRED COMPONENTS QtCore QtGui QtXml QtHelp) +ELSE() + FIND_PACKAGE(SalomeQt5 REQUIRED) +ENDIF() +""" + # + cmakeToPatch=os.path.join(destReal,"CMakeLists.txt") + assert(os.path.exists(cmakeToPatch)) + f=file(cmakeToPatch) ; lines=f.readlines() + pos0=filter(lambda (x,y): "INCLUDE(SalomeSetupPlatform)" in y,enumerate(lines)) + assert(len(pos0)==1) ; pos0=pos0[0] + lines=lines[0:pos0[0]+1]+[linesToAdd0]+lines[pos0[0]+1:] + pos1=filter(lambda (x,y): "FIND_PACKAGE(SalomeMEDFile REQUIRED)" in y,enumerate(lines)) + assert(len(pos1)==1) ; pos1=pos1[0] + lines=lines[0:pos1[0]+1]+[linesToAdd1]+lines[pos1[0]+1:] + f=file(cmakeToPatch,"w") ; f.writelines(lines) + return os.path.abspath(destReal) + +########### FINI LA PARLOTE ! + +if not os.path.exists(rootDir): + os.mkdir(rootDir) + +zz=AutoChdir(rootDir) +envAcc={} + +topSrcDir="src" +topBuildDir="build" +topInstallDir="install" +for d in [topSrcDir,topBuildDir,topInstallDir]: + if not os.path.exists(d): + os.mkdir(d) + +# +pattern="cmake" +srcDir=extractSrc(topSrcDir,pattern) +installDir=compileOld(envAcc,srcDir,topBuildDir,topInstallDir,[],False) +accumulateEnv(installDir,pattern,envAcc) +# +pattern="python" +srcDir=extractSrc(topSrcDir,pattern) +installDir=compileOld(envAcc,srcDir,topBuildDir,topInstallDir,["--enable-shared","--enable-unicode=ucs4","-without-pymalloc"],False) +accumulateEnv(installDir,pattern,envAcc) +# +pattern="hdf5" +srcDir=extractSrc(topSrcDir,pattern) +installDir=compileNew(envAcc,srcDir,topBuildDir,topInstallDir, + ['-DHDF5_BUILD_HL_LIB=ON','-DHDF5_BUILD_TOOLS=ON','-DBUILD_SHARED_LIBS=ON','-DHDF5_ENABLE_Z_LIB_SUPPORT=ON','-DCMAKE_BUILD_TYPE=Release'],False) +accumulateEnv(installDir,pattern,envAcc) +# +pattern="swig" +srcDir=extractSrc(topSrcDir,pattern) +installDir=compileVeryOld(envAcc,srcDir,topBuildDir,topInstallDir,["--without-pcre","--without-octave"],False) +accumulateEnv(installDir,pattern,envAcc) +# +pattern="qt" +srcDir=extractSrc(topSrcDir,pattern) +installDir=compileVeryOld(envAcc,srcDir,topBuildDir,topInstallDir,["-opensource","-confirm-license","-no-rpath","-qt-xcb"],False) +accumulateEnv(installDir,pattern,envAcc) +# +pattern="med" +srcDir=extractSrc(topSrcDir,pattern) +installDir=compileOld(envAcc,srcDir,topBuildDir,topInstallDir,["--with-hdf5=%s"%(envAcc["HDF5HOME"]),"--enable-production"],False) +accumulateEnv(installDir,pattern,envAcc) +# +pattern="medcoupling" +srcDir=extractSrc(topSrcDir,pattern) ; medcouplingSrcDir=srcDir +installDir=compileNew(envAcc,srcDir,topBuildDir,topInstallDir, + ["-DMEDFILE_ROOT_DIR=%s"%(envAcc["MED3HOME"]),"-DCMAKE_BUILD_TYPE=Debug","-DMEDCOUPLING_BUILD_DOC=OFF","-DMEDCOUPLING_BUILD_TESTS=OFF", + "-DMEDCOUPLING_PARTITIONER_METIS=OFF","-DMEDCOUPLING_ENABLE_RENUMBER=OFF","-DMEDCOUPLING_PARTITIONER_SCOTCH=OFF"],False) +accumulateEnv(installDir,pattern,envAcc) +#copyCMakeFromSrcToInstall(srcDir,installDir)#patch +# +pattern="paraview" +srcDir=extractSrc(topSrcDir,pattern) +installDir=compileNew(envAcc,srcDir,topBuildDir,topInstallDir, + ['-DPYTHON_ROOT_DIR=%s'%(envAcc["PYTHONHOME"]),'-DHDF5_ROOT_DIR=%s'%(envAcc["HDF5HOME"]),'-DPYTHON_EXECUTABLE=%s/bin/python%s'%(envAcc["PYTHONHOME"],envAcc["PYTHON_VERSION"]), + '-DPYTHON_INCLUDE_DIR=%s'%(envAcc["PYTHON_INCLUDE"]),'-DPYTHON_LIBRARY=%s/lib/libpython%s.so'%(envAcc["PYTHONHOME"],envAcc["PYTHON_VERSION"]), + '-DHDF5_LIBRARIES=%s/lib'%(envAcc["HDF5HOME"]), + '-DHDF5_INCLUDE_DIRS=%s/include'%(envAcc["HDF5HOME"]),'-DHDF5_CXX_COMPILER_EXECUTABLE=%s/bin/h5pcc'%(envAcc["HDF5HOME"]), + '-DHDF5_HL_INCLUDE_DIR=%s/include'%(envAcc["HDF5HOME"]),'-DHDF5_hdf5_hl_LIBRARY=%s/lib/libhdf5_hl.so'%(envAcc["HDF5HOME"]), + '-DHDF5_hdf5_hl_LIBRARY_RELEASE=%s/lib/libhdf5_hl.so'%(envAcc["HDF5HOME"]),'-DHDF5_hdf5_hl_LIBRARY_DEBUG=%s/lib/libhdf5_hl.so'%(envAcc["HDF5HOME"]), + '-DHDF5_HL_LIBRARY=%s/lib/libhdf5_hl.so'%(envAcc["HDF5HOME"]),'-DBUILD_SHARED_LIBS:BOOL=ON','-DCMAKE_BUILD_TYPE:STRING=Debug', + '-DPARAVIEW_INSTALL_DEVELOPMENT:BOOL=ON','-DPARAVIEW_INSTALL_DEVELOPMENT_FILES:BOOL=ON','-DVTK_USE_64BIT_IDS:BOOL=OFF','-DPARAVIEW_BUILD_QT_GUI:BOOL=ON', + '-DVTK_QT_USE_WEBKIT:BOOL=ON','-DQT_TESTING_INSTALL_DEVELOPMENT:BOOL=ON','-DPARAVIEW_ENABLE_PYTHON:BOOL=ON','-DVTK_USE_SYSTEM_HDF5:BOOL=ON','-DVTK_USE_GL2PS:BOOL=ON', + '-DPARAVIEW_BUILD_PLUGIN_Moments:BOOL=OFF', '-DPARAVIEW_BUILD_PLUGIN_SierraPlotTools:BOOL=OFF', '-DPARAVIEW_BUILD_PLUGIN_SLACTools:BOOL=OFF', + '-DPARAVIEW_INSTALL_DEVELOPMENT_FILES=ON', + '-DVTK_NO_PYTHON_THREADS=OFF','-DPARAVIEW_ENABLE_CATALYST:BOOL=ON','-DPARAVIEW_BUILD_PLUGIN_AnalyzeNIfTIIO:BOOL=OFF','-DPARAVIEW_BUILD_PLUGIN_ArrowGlyph:BOOL=OFF', + '-DPARAVIEW_BUILD_PLUGIN_CatalystScriptGeneratorPlugin:BOOL=ON','-DPARAVIEW_BUILD_PLUGIN_GMVReader:BOOL=OFF','-DPARAVIEW_BUILD_PLUGIN_MobileRemoteControl:BOOL=OFF', + '-DPARAVIEW_BUILD_PLUGIN_NonOrthogonalSource:BOOL=OFF','-DPARAVIEW_BUILD_PLUGIN_QuadView:BOOL=OFF','-DPARAVIEW_BUILD_PLUGIN_PacMan:BOOL=OFF','-DPARAVIEW_BUILD_PLUGIN_PrismPlugin:BOOL=OFF', + '-DPARAVIEW_BUILD_PLUGIN_RGBZView:BOOL=OFF','-DPARAVIEW_BUILD_PLUGIN_SciberQuestToolKit:BOOL=OFF','-DPARAVIEW_BUILD_PLUGIN_StreamingParticles:BOOL=ON', + '-DPARAVIEW_BUILD_PLUGIN_UncertaintyRendering:BOOL=ON','-DPARAVIEW_ENABLE_MATPLOTLIB:BOOL=ON','-DPARAVIEW_BUILD_PLUGIN_EyeDomeLighting:BOOL=ON','-DPARAVIEW_BUILD_PLUGIN_ForceTime:BOOL=ON', + '-DPARAVIEW_BUILD_PLUGIN_H5PartReader:BOOL=ON','-DPARAVIEW_BUILD_PLUGIN_PointSprite:BOOL=ON','-DPARAVIEW_BUILD_PLUGIN_SurfaceLIC:BOOL=ON', + '-DCMAKE_BUILD_QT_GUI:BOOL=ON','-DVTK_USE_SYSTEM_LIBXML2:BOOL=ON','-DVTK_USE_OGGTHEORA_ENCODER:BOOL=ON','-DPARAVIEW_INSTALL_THIRD_PARTY_LIBRARIES:BOOL=OFF', + '-DBUILD_DOCUMENTATION:BOOL=ON','-DBUILD_EXAMPLES:BOOL=OFF','-DBUILD_TESTING:BOOL=OFF', '-DPARAVIEW_GENERATE_PROXY_DOCUMENTATION:BOOL=ON','-DVTK_NO_PYTHON_THREADS=OFF', + '-DVTK_PYTHON_FULL_THREADSAFE=ON','-DPARAVIEW_QT_VERSION=5','-DQT_HELP_GENERATOR=%s/bin/qhelpgenerator'%(envAcc["QTDIR"]),'-DVTK_BUILD_QT_DESIGNER_PLUGIN:BOOL=OFF','-DBUILD_DOCUMENTATION=OFF'],False) +accumulateEnv(installDir,pattern,envAcc) +# +pattern="gui" +srcDir=extractSrc(topSrcDir,pattern) +fakeKernelDir=bidouilleForCMake(topSrcDir,srcDir) +# +pattern="paravis"# for MEDReader +srcDir=extractSrc(topSrcDir,pattern) +srcDir=patchCMakeLists(topSrcDir,srcDir)# change Reference for source +installDir=compileNew(envAcc,srcDir,topBuildDir,topInstallDir, + ["-DMEDCOUPLING_ROOT_DIR=%s"%(envAcc["MEDCOUPLINGHOME"]),"-DKERNEL_ROOT_DIR=%s"%fakeKernelDir, + '-DPYTHON_ROOT_DIR=%s'%(envAcc["PYTHONHOME"]),'-DHDF5_ROOT_DIR=%s'%(envAcc["HDF5HOME"]), + '-DPYTHON_EXECUTABLE=%s/bin/python%s'%(envAcc["PYTHONHOME"],envAcc["PYTHON_VERSION"]), + '-DPYTHON_INCLUDE_DIR=%s'%(envAcc["PYTHON_INCLUDE"]),'-DPARAVIEW_QT_VERSION=5','-DQT_VERSION=5','-DSALOME_GUI_BUILD_WITH_QT5=ON','-DSALOME_INSTALL_SCRIPT_SCRIPTS=%s'%topInstallDir, + '-DPYTHON_LIBRARY=%s/lib/libpython%s.so'%(envAcc["PYTHONHOME"],envAcc["PYTHON_VERSION"])],False) +accumulateEnv(installDir,pattern,envAcc) +# END +envFile=os.path.abspath(os.path.join(topInstallDir,"environment.sh")) +f=file(envFile,"w") +f.write(generateFileEnv(envAcc)) ; f.flush() ; del f +print("Env file generated : %s"%envFile)