2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
3 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
6 <html xmlns="http://www.w3.org/1999/xhtml">
8 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
10 <title>src.environment — salomeTools 5.0.0dev documentation</title>
12 <link rel="stylesheet" href="../../_static/alabaster.css" type="text/css" />
13 <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
14 <link rel="stylesheet" href="/volatile/wambeke/SAT5/SAT5_S840_MATIX24/SAT/doc/src/custom.css" type="text/css" />
16 <script type="text/javascript">
17 var DOCUMENTATION_OPTIONS = {
20 COLLAPSE_INDEX: false,
25 <script type="text/javascript" src="../../_static/jquery.js"></script>
26 <script type="text/javascript" src="../../_static/underscore.js"></script>
27 <script type="text/javascript" src="../../_static/doctools.js"></script>
28 <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
29 <link rel="top" title="salomeTools 5.0.0dev documentation" href="../../index.html" />
30 <link rel="up" title="Module code" href="../index.html" />
32 <link rel="stylesheet" href="../../_static/custom.css" type="text/css" />
35 <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
41 <div class="document">
42 <div class="documentwrapper">
43 <div class="bodywrapper">
44 <div class="body" role="main">
46 <h1>Source code for src.environment</h1><div class="highlight"><pre>
47 <span class="c">#!/usr/bin/env python</span>
48 <span class="c">#-*- coding:utf-8 -*-</span>
49 <span class="c"># Copyright (C) 2010-2013 CEA/DEN</span>
50 <span class="c">#</span>
51 <span class="c"># This library is free software; you can redistribute it and/or</span>
52 <span class="c"># modify it under the terms of the GNU Lesser General Public</span>
53 <span class="c"># License as published by the Free Software Foundation; either</span>
54 <span class="c"># version 2.1 of the License.</span>
55 <span class="c">#</span>
56 <span class="c"># This library is distributed in the hope that it will be useful,</span>
57 <span class="c"># but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
58 <span class="c"># MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU</span>
59 <span class="c"># Lesser General Public License for more details.</span>
60 <span class="c">#</span>
61 <span class="c"># You should have received a copy of the GNU Lesser General Public</span>
62 <span class="c"># License along with this library; if not, write to the Free Software</span>
63 <span class="c"># Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA</span>
65 <span class="kn">import</span> <span class="nn">os</span>
66 <span class="kn">import</span> <span class="nn">subprocess</span>
67 <span class="kn">import</span> <span class="nn">string</span>
68 <span class="kn">import</span> <span class="nn">sys</span>
70 <span class="kn">import</span> <span class="nn">src</span>
71 <span class="kn">import</span> <span class="nn">src.debug</span> <span class="kn">as</span> <span class="nn">DBG</span>
72 <span class="kn">import</span> <span class="nn">pprint</span> <span class="kn">as</span> <span class="nn">PP</span>
74 <div class="viewcode-block" id="Environ"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.environment.Environ">[docs]</a><span class="k">class</span> <span class="nc">Environ</span><span class="p">:</span>
75 <span class="sd">"""\</span>
76 <span class="sd"> Class to manage the environment context</span>
77 <span class="sd"> """</span>
78 <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">environ</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
79 <span class="sd">"""Initialization. If the environ argument is passed, the environment</span>
80 <span class="sd"> will be add to it, else it is the external environment.</span>
81 <span class="sd"> </span>
82 <span class="sd"> :param environ dict: </span>
83 <span class="sd"> """</span>
84 <span class="k">if</span> <span class="n">environ</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
85 <span class="bp">self</span><span class="o">.</span><span class="n">environ</span> <span class="o">=</span> <span class="n">environ</span>
86 <span class="k">else</span><span class="p">:</span>
87 <span class="bp">self</span><span class="o">.</span><span class="n">environ</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">environ</span>
89 <span class="k">def</span> <span class="nf">__repr__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
90 <span class="sd">"""easy non exhaustive quick resume for debug print"""</span>
91 <span class="k">return</span> <span class="s">"</span><span class="si">%s</span><span class="s">(</span><span class="se">\n</span><span class="si">%s</span><span class="se">\n</span><span class="s">)"</span> <span class="o">%</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">__class__</span><span class="o">.</span><span class="n">__name__</span><span class="p">,</span> <span class="n">PP</span><span class="o">.</span><span class="n">pformat</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">environ</span><span class="p">))</span>
93 <span class="k">def</span> <span class="nf">_expandvars</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">value</span><span class="p">):</span>
94 <span class="sd">"""\</span>
95 <span class="sd"> replace some $VARIABLE into its actual value in the environment</span>
96 <span class="sd"> </span>
97 <span class="sd"> :param value str: the string to be replaced</span>
98 <span class="sd"> :return: the replaced variable</span>
99 <span class="sd"> :rtype: str</span>
100 <span class="sd"> """</span>
101 <span class="k">if</span> <span class="s">"$"</span> <span class="ow">in</span> <span class="n">value</span><span class="p">:</span>
102 <span class="c"># The string.Template class is a string class </span>
103 <span class="c"># for supporting $-substitutions</span>
104 <span class="n">zt</span> <span class="o">=</span> <span class="n">string</span><span class="o">.</span><span class="n">Template</span><span class="p">(</span><span class="n">value</span><span class="p">)</span>
105 <span class="k">try</span><span class="p">:</span>
106 <span class="n">value</span> <span class="o">=</span> <span class="n">zt</span><span class="o">.</span><span class="n">substitute</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">environ</span><span class="p">)</span>
107 <span class="k">except</span> <span class="ne">KeyError</span> <span class="k">as</span> <span class="n">exc</span><span class="p">:</span>
108 <span class="k">raise</span> <span class="n">src</span><span class="o">.</span><span class="n">SatException</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s">"Missing definition "</span>
109 <span class="s">"in environment: </span><span class="si">%s</span><span class="s">"</span><span class="p">)</span> <span class="o">%</span> <span class="nb">str</span><span class="p">(</span><span class="n">exc</span><span class="p">))</span>
110 <span class="k">return</span> <span class="n">value</span>
112 <div class="viewcode-block" id="Environ.append_value"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.environment.Environ.append_value">[docs]</a> <span class="k">def</span> <span class="nf">append_value</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="n">os</span><span class="o">.</span><span class="n">pathsep</span><span class="p">):</span>
113 <span class="sd">"""\</span>
114 <span class="sd"> append value to key using sep</span>
115 <span class="sd"> </span>
116 <span class="sd"> :param key str: the environment variable to append</span>
117 <span class="sd"> :param value str: the value to append to key</span>
118 <span class="sd"> :param sep str: the separator string</span>
119 <span class="sd"> """</span>
120 <span class="c"># check if the key is already in the environment</span>
121 <span class="k">if</span> <span class="n">key</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">environ</span><span class="p">:</span>
122 <span class="n">value_list</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">environ</span><span class="p">[</span><span class="n">key</span><span class="p">]</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="n">sep</span><span class="p">)</span>
123 <span class="c"># Check if the value is already in the key value or not</span>
124 <span class="k">if</span> <span class="ow">not</span> <span class="n">value</span> <span class="ow">in</span> <span class="n">value_list</span><span class="p">:</span>
125 <span class="n">value_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">value</span><span class="p">)</span>
126 <span class="k">else</span><span class="p">:</span>
127 <span class="n">value_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">value_list</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="n">value_list</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="n">value</span><span class="p">)))</span>
128 <span class="bp">self</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">sep</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">value_list</span><span class="p">))</span>
129 <span class="k">else</span><span class="p">:</span>
130 <span class="bp">self</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
132 <div class="viewcode-block" id="Environ.append"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.environment.Environ.append">[docs]</a> <span class="k">def</span> <span class="nf">append</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="n">os</span><span class="o">.</span><span class="n">pathsep</span><span class="p">):</span>
133 <span class="sd">"""\</span>
134 <span class="sd"> Same as append_value but the value argument can be a list</span>
135 <span class="sd"> </span>
136 <span class="sd"> :param key str: the environment variable to append</span>
137 <span class="sd"> :param value str or list: the value(s) to append to key</span>
138 <span class="sd"> :param sep str: the separator string</span>
139 <span class="sd"> """</span>
140 <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="nb">list</span><span class="p">):</span>
141 <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">value</span><span class="p">:</span>
142 <span class="bp">self</span><span class="o">.</span><span class="n">append_value</span><span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">v</span><span class="p">,</span> <span class="n">sep</span><span class="p">)</span>
143 <span class="k">else</span><span class="p">:</span>
144 <span class="bp">self</span><span class="o">.</span><span class="n">append_value</span><span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">sep</span><span class="p">)</span>
146 <div class="viewcode-block" id="Environ.prepend_value"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.environment.Environ.prepend_value">[docs]</a> <span class="k">def</span> <span class="nf">prepend_value</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="n">os</span><span class="o">.</span><span class="n">pathsep</span><span class="p">):</span>
147 <span class="sd">"""\</span>
148 <span class="sd"> prepend value to key using sep</span>
149 <span class="sd"> </span>
150 <span class="sd"> :param key str: the environment variable to prepend</span>
151 <span class="sd"> :param value str: the value to prepend to key</span>
152 <span class="sd"> :param sep str: the separator string</span>
153 <span class="sd"> """</span>
154 <span class="k">if</span> <span class="n">key</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">environ</span><span class="p">:</span>
155 <span class="n">value_list</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">environ</span><span class="p">[</span><span class="n">key</span><span class="p">]</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="n">sep</span><span class="p">)</span>
156 <span class="k">if</span> <span class="ow">not</span> <span class="n">value</span> <span class="ow">in</span> <span class="n">value_list</span><span class="p">:</span>
157 <span class="n">value_list</span><span class="o">.</span><span class="n">insert</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
158 <span class="k">else</span><span class="p">:</span>
159 <span class="n">value_list</span><span class="o">.</span><span class="n">insert</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="n">value_list</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="n">value_list</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="n">value</span><span class="p">)))</span>
160 <span class="bp">self</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">sep</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">value_list</span><span class="p">))</span>
161 <span class="k">else</span><span class="p">:</span>
162 <span class="bp">self</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
164 <div class="viewcode-block" id="Environ.prepend"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.environment.Environ.prepend">[docs]</a> <span class="k">def</span> <span class="nf">prepend</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="n">os</span><span class="o">.</span><span class="n">pathsep</span><span class="p">):</span>
165 <span class="sd">"""\</span>
166 <span class="sd"> Same as prepend_value but the value argument can be a list</span>
167 <span class="sd"> </span>
168 <span class="sd"> :param key str: the environment variable to prepend</span>
169 <span class="sd"> :param value str or list: the value(s) to prepend to key</span>
170 <span class="sd"> :param sep str: the separator string</span>
171 <span class="sd"> """</span>
172 <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="nb">list</span><span class="p">):</span>
173 <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">value</span><span class="p">:</span>
174 <span class="bp">self</span><span class="o">.</span><span class="n">prepend_value</span><span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">v</span><span class="p">,</span> <span class="n">sep</span><span class="p">)</span>
175 <span class="k">else</span><span class="p">:</span>
176 <span class="bp">self</span><span class="o">.</span><span class="n">prepend_value</span><span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">sep</span><span class="p">)</span>
178 <div class="viewcode-block" id="Environ.is_defined"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.environment.Environ.is_defined">[docs]</a> <span class="k">def</span> <span class="nf">is_defined</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">):</span>
179 <span class="sd">"""\</span>
180 <span class="sd"> Check if the key exists in the environment</span>
181 <span class="sd"> </span>
182 <span class="sd"> :param key str: the environment variable to check</span>
183 <span class="sd"> """</span>
184 <span class="k">return</span> <span class="n">key</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">environ</span><span class="o">.</span><span class="n">keys</span><span class="p">()</span>
186 <div class="viewcode-block" id="Environ.set"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.environment.Environ.set">[docs]</a> <span class="k">def</span> <span class="nf">set</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">):</span>
187 <span class="sd">"""\</span>
188 <span class="sd"> Set the environment variable "key" to value "value"</span>
189 <span class="sd"> </span>
190 <span class="sd"> :param key str: the environment variable to set</span>
191 <span class="sd"> :param value str: the value</span>
192 <span class="sd"> """</span>
193 <span class="bp">self</span><span class="o">.</span><span class="n">environ</span><span class="p">[</span><span class="n">key</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_expandvars</span><span class="p">(</span><span class="n">value</span><span class="p">)</span>
195 <div class="viewcode-block" id="Environ.get"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.environment.Environ.get">[docs]</a> <span class="k">def</span> <span class="nf">get</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">):</span>
196 <span class="sd">"""\</span>
197 <span class="sd"> Get the value of the environment variable "key"</span>
198 <span class="sd"> </span>
199 <span class="sd"> :param key str: the environment variable</span>
200 <span class="sd"> """</span>
201 <span class="k">if</span> <span class="n">key</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">environ</span><span class="p">:</span>
202 <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">environ</span><span class="p">[</span><span class="n">key</span><span class="p">]</span>
203 <span class="k">else</span><span class="p">:</span>
204 <span class="k">return</span> <span class="s">""</span>
206 <div class="viewcode-block" id="Environ.command_value"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.environment.Environ.command_value">[docs]</a> <span class="k">def</span> <span class="nf">command_value</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">command</span><span class="p">):</span>
207 <span class="sd">"""\</span>
208 <span class="sd"> Get the value given by the system command "command" </span>
209 <span class="sd"> and put it in the environment variable key</span>
210 <span class="sd"> </span>
211 <span class="sd"> :param key str: the environment variable</span>
212 <span class="sd"> :param command str: the command to execute</span>
213 <span class="sd"> """</span>
214 <span class="n">value</span> <span class="o">=</span> <span class="n">subprocess</span><span class="o">.</span><span class="n">Popen</span><span class="p">(</span><span class="n">command</span><span class="p">,</span>
215 <span class="n">shell</span><span class="o">=</span><span class="bp">True</span><span class="p">,</span>
216 <span class="n">stdout</span><span class="o">=</span><span class="n">subprocess</span><span class="o">.</span><span class="n">PIPE</span><span class="p">,</span>
217 <span class="n">env</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">environ</span><span class="p">)</span><span class="o">.</span><span class="n">communicate</span><span class="p">()[</span><span class="mi">0</span><span class="p">]</span>
218 <span class="bp">self</span><span class="o">.</span><span class="n">environ</span><span class="p">[</span><span class="n">key</span><span class="p">]</span> <span class="o">=</span> <span class="n">value</span>
221 <div class="viewcode-block" id="SalomeEnviron"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.environment.SalomeEnviron">[docs]</a><span class="k">class</span> <span class="nc">SalomeEnviron</span><span class="p">:</span>
222 <span class="sd">"""\</span>
223 <span class="sd"> Class to manage the environment of SALOME.</span>
224 <span class="sd"> """</span>
225 <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span>
226 <span class="n">cfg</span><span class="p">,</span>
227 <span class="n">environ</span><span class="p">,</span>
228 <span class="n">forBuild</span><span class="o">=</span><span class="bp">False</span><span class="p">,</span>
229 <span class="n">for_package</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span>
230 <span class="n">enable_simple_env_script</span> <span class="o">=</span> <span class="bp">True</span><span class="p">):</span>
231 <span class="sd">"""\</span>
232 <span class="sd"> Initialization.</span>
234 <span class="sd"> :param cfg Config: the global config</span>
235 <span class="sd"> :param environ Environ: the Environ instance where </span>
236 <span class="sd"> to store the environment variables</span>
237 <span class="sd"> :param forBuild bool: If true, it is a launch environment, </span>
238 <span class="sd"> else a build one</span>
239 <span class="sd"> :param for_package str: If not None, produce a relative environment </span>
240 <span class="sd"> designed for a package. </span>
241 <span class="sd"> """</span>
242 <span class="bp">self</span><span class="o">.</span><span class="n">environ</span> <span class="o">=</span> <span class="n">environ</span>
243 <span class="bp">self</span><span class="o">.</span><span class="n">cfg</span> <span class="o">=</span> <span class="n">cfg</span>
244 <span class="bp">self</span><span class="o">.</span><span class="n">forBuild</span> <span class="o">=</span> <span class="n">forBuild</span>
245 <span class="bp">self</span><span class="o">.</span><span class="n">for_package</span> <span class="o">=</span> <span class="n">for_package</span>
246 <span class="bp">self</span><span class="o">.</span><span class="n">enable_simple_env_script</span> <span class="o">=</span> <span class="n">enable_simple_env_script</span>
247 <span class="bp">self</span><span class="o">.</span><span class="n">silent</span> <span class="o">=</span> <span class="bp">False</span>
249 <span class="k">def</span> <span class="nf">__repr__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
250 <span class="sd">"""easy almost exhaustive quick resume for debug print"""</span>
251 <span class="n">res</span> <span class="o">=</span> <span class="p">{</span>
252 <span class="s">"environ"</span> <span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">environ</span><span class="p">,</span>
253 <span class="s">"forBuild"</span> <span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">forBuild</span><span class="p">,</span>
254 <span class="s">"for_package"</span> <span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">for_package</span><span class="p">,</span>
255 <span class="p">}</span>
256 <span class="k">return</span> <span class="s">"</span><span class="si">%s</span><span class="s">(</span><span class="se">\n</span><span class="si">%s</span><span class="se">\n</span><span class="s">)"</span> <span class="o">%</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">__class__</span><span class="o">.</span><span class="n">__name__</span><span class="p">,</span> <span class="n">PP</span><span class="o">.</span><span class="n">pformat</span><span class="p">(</span><span class="n">res</span><span class="p">))</span>
258 <div class="viewcode-block" id="SalomeEnviron.append"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.environment.SalomeEnviron.append">[docs]</a> <span class="k">def</span> <span class="nf">append</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="n">os</span><span class="o">.</span><span class="n">pathsep</span><span class="p">):</span>
259 <span class="sd">"""\</span>
260 <span class="sd"> append value to key using sep</span>
261 <span class="sd"> </span>
262 <span class="sd"> :param key str: the environment variable to append</span>
263 <span class="sd"> :param value str: the value to append to key</span>
264 <span class="sd"> :param sep str: the separator string</span>
265 <span class="sd"> """</span>
266 <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">environ</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">sep</span><span class="p">)</span>
268 <div class="viewcode-block" id="SalomeEnviron.prepend"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.environment.SalomeEnviron.prepend">[docs]</a> <span class="k">def</span> <span class="nf">prepend</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="n">os</span><span class="o">.</span><span class="n">pathsep</span><span class="p">):</span>
269 <span class="sd">"""\</span>
270 <span class="sd"> prepend value to key using sep</span>
271 <span class="sd"> </span>
272 <span class="sd"> :param key str: the environment variable to prepend</span>
273 <span class="sd"> :param value str: the value to prepend to key</span>
274 <span class="sd"> :param sep str: the separator string</span>
275 <span class="sd"> """</span>
276 <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">environ</span><span class="o">.</span><span class="n">prepend</span><span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">sep</span><span class="p">)</span>
278 <div class="viewcode-block" id="SalomeEnviron.is_defined"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.environment.SalomeEnviron.is_defined">[docs]</a> <span class="k">def</span> <span class="nf">is_defined</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">):</span>
279 <span class="sd">"""\</span>
280 <span class="sd"> Check if the key exists in the environment</span>
281 <span class="sd"> </span>
282 <span class="sd"> :param key str: the environment variable to check</span>
283 <span class="sd"> """</span>
284 <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">environ</span><span class="o">.</span><span class="n">is_defined</span><span class="p">(</span><span class="n">key</span><span class="p">)</span>
286 <div class="viewcode-block" id="SalomeEnviron.get"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.environment.SalomeEnviron.get">[docs]</a> <span class="k">def</span> <span class="nf">get</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">):</span>
287 <span class="sd">"""\</span>
288 <span class="sd"> Get the value of the environment variable "key"</span>
289 <span class="sd"> </span>
290 <span class="sd"> :param key str: the environment variable</span>
291 <span class="sd"> """</span>
292 <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">environ</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">key</span><span class="p">)</span>
294 <div class="viewcode-block" id="SalomeEnviron.set"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.environment.SalomeEnviron.set">[docs]</a> <span class="k">def</span> <span class="nf">set</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">):</span>
295 <span class="sd">"""\</span>
296 <span class="sd"> Set the environment variable "key" to value "value"</span>
297 <span class="sd"> </span>
298 <span class="sd"> :param key str: the environment variable to set</span>
299 <span class="sd"> :param value str: the value</span>
300 <span class="sd"> """</span>
301 <span class="c"># check if value needs to be evaluated</span>
302 <span class="k">if</span> <span class="n">value</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span> <span class="ow">and</span> <span class="n">value</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s">"`"</span><span class="p">)</span> <span class="ow">and</span> <span class="n">value</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span><span class="s">"`"</span><span class="p">):</span>
303 <span class="n">res</span> <span class="o">=</span> <span class="n">subprocess</span><span class="o">.</span><span class="n">Popen</span><span class="p">(</span><span class="s">"echo </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="n">value</span><span class="p">,</span>
304 <span class="n">shell</span><span class="o">=</span><span class="bp">True</span><span class="p">,</span>
305 <span class="n">stdout</span><span class="o">=</span><span class="n">subprocess</span><span class="o">.</span><span class="n">PIPE</span><span class="p">)</span><span class="o">.</span><span class="n">communicate</span><span class="p">()</span>
306 <span class="n">value</span> <span class="o">=</span> <span class="n">res</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span>
308 <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">environ</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
310 <div class="viewcode-block" id="SalomeEnviron.dump"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.environment.SalomeEnviron.dump">[docs]</a> <span class="k">def</span> <span class="nf">dump</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">out</span><span class="p">):</span>
311 <span class="sd">"""\</span>
312 <span class="sd"> Write the environment to out</span>
313 <span class="sd"> </span>
314 <span class="sd"> :param out file: the stream where to write the environment</span>
315 <span class="sd"> """</span>
316 <span class="k">for</span> <span class="n">k</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">environ</span><span class="o">.</span><span class="n">environ</span><span class="o">.</span><span class="n">keys</span><span class="p">():</span>
317 <span class="k">try</span><span class="p">:</span>
318 <span class="n">value</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">k</span><span class="p">)</span>
319 <span class="k">except</span><span class="p">:</span>
320 <span class="n">value</span> <span class="o">=</span> <span class="s">"?"</span>
321 <span class="n">out</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">"</span><span class="si">%s</span><span class="s">=</span><span class="si">%s</span><span class="se">\n</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">k</span><span class="p">,</span> <span class="n">value</span><span class="p">))</span>
323 <div class="viewcode-block" id="SalomeEnviron.add_line"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.environment.SalomeEnviron.add_line">[docs]</a> <span class="k">def</span> <span class="nf">add_line</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">nb_line</span><span class="p">):</span>
324 <span class="sd">"""\</span>
325 <span class="sd"> Add empty lines to the out stream (in case of file generation)</span>
326 <span class="sd"> </span>
327 <span class="sd"> :param nb_line int: the number of empty lines to add</span>
328 <span class="sd"> """</span>
329 <span class="k">if</span> <span class="s">'add_line'</span> <span class="ow">in</span> <span class="nb">dir</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">environ</span><span class="p">):</span>
330 <span class="bp">self</span><span class="o">.</span><span class="n">environ</span><span class="o">.</span><span class="n">add_line</span><span class="p">(</span><span class="n">nb_line</span><span class="p">)</span>
332 <div class="viewcode-block" id="SalomeEnviron.add_comment"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.environment.SalomeEnviron.add_comment">[docs]</a> <span class="k">def</span> <span class="nf">add_comment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">comment</span><span class="p">):</span>
333 <span class="sd">"""\</span>
334 <span class="sd"> Add a commentary to the out stream (in case of file generation)</span>
335 <span class="sd"> </span>
336 <span class="sd"> :param comment str: the commentary to add</span>
337 <span class="sd"> """</span>
338 <span class="k">if</span> <span class="s">'add_comment'</span> <span class="ow">in</span> <span class="nb">dir</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">environ</span><span class="p">):</span>
339 <span class="bp">self</span><span class="o">.</span><span class="n">environ</span><span class="o">.</span><span class="n">add_comment</span><span class="p">(</span><span class="n">comment</span><span class="p">)</span>
341 <div class="viewcode-block" id="SalomeEnviron.add_warning"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.environment.SalomeEnviron.add_warning">[docs]</a> <span class="k">def</span> <span class="nf">add_warning</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">warning</span><span class="p">):</span>
342 <span class="sd">"""\</span>
343 <span class="sd"> Add a warning to the out stream (in case of file generation)</span>
344 <span class="sd"> </span>
345 <span class="sd"> :param warning str: the warning to add</span>
346 <span class="sd"> """</span>
347 <span class="k">if</span> <span class="s">'add_warning'</span> <span class="ow">in</span> <span class="nb">dir</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">environ</span><span class="p">):</span>
348 <span class="bp">self</span><span class="o">.</span><span class="n">environ</span><span class="o">.</span><span class="n">add_warning</span><span class="p">(</span><span class="n">warning</span><span class="p">)</span>
350 <div class="viewcode-block" id="SalomeEnviron.finish"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.environment.SalomeEnviron.finish">[docs]</a> <span class="k">def</span> <span class="nf">finish</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">required</span><span class="p">):</span>
351 <span class="sd">"""\</span>
352 <span class="sd"> Add a final instruction in the out file (in case of file generation)</span>
353 <span class="sd"> </span>
354 <span class="sd"> :param required bool: Do nothing if required is False</span>
355 <span class="sd"> """</span>
356 <span class="k">if</span> <span class="s">'finish'</span> <span class="ow">in</span> <span class="nb">dir</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">environ</span><span class="p">):</span>
357 <span class="bp">self</span><span class="o">.</span><span class="n">environ</span><span class="o">.</span><span class="n">add_line</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
358 <span class="bp">self</span><span class="o">.</span><span class="n">environ</span><span class="o">.</span><span class="n">add_comment</span><span class="p">(</span><span class="s">"clean all the path"</span><span class="p">)</span>
359 <span class="bp">self</span><span class="o">.</span><span class="n">environ</span><span class="o">.</span><span class="n">finish</span><span class="p">(</span><span class="n">required</span><span class="p">)</span>
361 <div class="viewcode-block" id="SalomeEnviron.set_python_libdirs"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.environment.SalomeEnviron.set_python_libdirs">[docs]</a> <span class="k">def</span> <span class="nf">set_python_libdirs</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
362 <span class="sd">"""Set some generic variables for python library paths"""</span>
363 <span class="n">ver</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">'PYTHON_VERSION'</span><span class="p">)</span>
364 <span class="bp">self</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s">'PYTHON_LIBDIR0'</span><span class="p">,</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="s">'lib'</span><span class="p">,</span>
365 <span class="s">'python'</span> <span class="o">+</span> <span class="n">ver</span><span class="p">,</span>
366 <span class="s">'site-packages'</span><span class="p">))</span>
367 <span class="bp">self</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s">'PYTHON_LIBDIR1'</span><span class="p">,</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="s">'lib64'</span><span class="p">,</span>
368 <span class="s">'python'</span> <span class="o">+</span> <span class="n">ver</span><span class="p">,</span>
369 <span class="s">'site-packages'</span><span class="p">))</span>
371 <span class="bp">self</span><span class="o">.</span><span class="n">python_lib0</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">'PYTHON_LIBDIR0'</span><span class="p">)</span>
372 <span class="bp">self</span><span class="o">.</span><span class="n">python_lib1</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">'PYTHON_LIBDIR1'</span><span class="p">)</span>
374 <div class="viewcode-block" id="SalomeEnviron.get_names"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.environment.SalomeEnviron.get_names">[docs]</a> <span class="k">def</span> <span class="nf">get_names</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">lProducts</span><span class="p">):</span>
375 <span class="sd">"""\</span>
376 <span class="sd"> Get the products name to add in SALOME_MODULES environment variable</span>
377 <span class="sd"> It is the name of the product, except in the case where the is a </span>
378 <span class="sd"> component name. And it has to be in SALOME_MODULES variable only </span>
379 <span class="sd"> if the product has the property has_salome_hui = "yes"</span>
380 <span class="sd"> </span>
381 <span class="sd"> :param lProducts list: List of products to potentially add</span>
382 <span class="sd"> """</span>
383 <span class="n">lProdHasGui</span> <span class="o">=</span> <span class="p">[</span><span class="n">p</span> <span class="k">for</span> <span class="n">p</span> <span class="ow">in</span> <span class="n">lProducts</span> <span class="k">if</span> <span class="s">'properties'</span> <span class="ow">in</span>
384 <span class="n">src</span><span class="o">.</span><span class="n">product</span><span class="o">.</span><span class="n">get_product_config</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">cfg</span><span class="p">,</span> <span class="n">p</span><span class="p">)</span> <span class="ow">and</span>
385 <span class="s">'has_salome_gui'</span> <span class="ow">in</span>
386 <span class="n">src</span><span class="o">.</span><span class="n">product</span><span class="o">.</span><span class="n">get_product_config</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">cfg</span><span class="p">,</span> <span class="n">p</span><span class="p">)</span><span class="o">.</span><span class="n">properties</span> <span class="ow">and</span>
387 <span class="n">src</span><span class="o">.</span><span class="n">product</span><span class="o">.</span><span class="n">get_product_config</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">cfg</span><span class="p">,</span>
388 <span class="n">p</span><span class="p">)</span><span class="o">.</span><span class="n">properties</span><span class="o">.</span><span class="n">has_salome_gui</span><span class="o">==</span><span class="s">'yes'</span><span class="p">]</span>
389 <span class="n">lProdName</span> <span class="o">=</span> <span class="p">[]</span>
390 <span class="k">for</span> <span class="n">ProdName</span> <span class="ow">in</span> <span class="n">lProdHasGui</span><span class="p">:</span>
391 <span class="n">pi</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">product</span><span class="o">.</span><span class="n">get_product_config</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">cfg</span><span class="p">,</span> <span class="n">ProdName</span><span class="p">)</span>
392 <span class="k">if</span> <span class="s">'component_name'</span> <span class="ow">in</span> <span class="n">pi</span><span class="p">:</span>
393 <span class="n">lProdName</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">pi</span><span class="o">.</span><span class="n">component_name</span><span class="p">)</span>
394 <span class="k">else</span><span class="p">:</span>
395 <span class="n">lProdName</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">ProdName</span><span class="p">)</span>
396 <span class="k">return</span> <span class="n">lProdName</span>
398 <div class="viewcode-block" id="SalomeEnviron.set_application_env"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.environment.SalomeEnviron.set_application_env">[docs]</a> <span class="k">def</span> <span class="nf">set_application_env</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">logger</span><span class="p">):</span>
399 <span class="sd">"""\</span>
400 <span class="sd"> Sets the environment defined in the APPLICATION file.</span>
401 <span class="sd"> </span>
402 <span class="sd"> :param logger Logger: The logger instance to display messages</span>
403 <span class="sd"> """</span>
405 <span class="c"># add variable PRODUCT_ROOT_DIR as $workdir in APPLICATION.environ section if not present</span>
406 <span class="k">try</span><span class="p">:</span>
407 <span class="n">tmp</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">cfg</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">environ</span><span class="o">.</span><span class="n">PRODUCT_ROOT_DIR</span>
408 <span class="k">except</span><span class="p">:</span>
409 <span class="bp">self</span><span class="o">.</span><span class="n">cfg</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">environ</span><span class="o">.</span><span class="n">PRODUCT_ROOT_DIR</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">pyconf</span><span class="o">.</span><span class="n">Reference</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">cfg</span><span class="p">,</span> <span class="n">src</span><span class="o">.</span><span class="n">pyconf</span><span class="o">.</span><span class="n">DOLLAR</span><span class="p">,</span> <span class="s">"workdir"</span><span class="p">)</span>
410 <span class="n">DBG</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">"set_application_env add default Config.APPLICATION.environ.PRODUCT_ROOT_DIR"</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">cfg</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">environ</span><span class="p">)</span>
412 <span class="c"># Set the variables defined in the "environ" section</span>
413 <span class="k">if</span> <span class="s">'environ'</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">cfg</span><span class="o">.</span><span class="n">APPLICATION</span><span class="p">:</span>
414 <span class="c"># we write PRODUCT environment it in order to conform to </span>
415 <span class="c"># parseConfigFile.py</span>
416 <span class="bp">self</span><span class="o">.</span><span class="n">add_comment</span><span class="p">(</span><span class="s">"PRODUCT environment"</span><span class="p">)</span>
417 <span class="bp">self</span><span class="o">.</span><span class="n">load_cfg_environment</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">cfg</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">environ</span><span class="p">)</span>
418 <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">forBuild</span> <span class="ow">and</span> <span class="s">"build"</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">cfg</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">environ</span><span class="p">:</span>
419 <span class="bp">self</span><span class="o">.</span><span class="n">load_cfg_environment</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">cfg</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">environ</span><span class="o">.</span><span class="n">build</span><span class="p">)</span>
420 <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">forBuild</span> <span class="ow">and</span> <span class="s">"launch"</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">cfg</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">environ</span><span class="p">:</span>
421 <span class="bp">self</span><span class="o">.</span><span class="n">load_cfg_environment</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">cfg</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">environ</span><span class="o">.</span><span class="n">launch</span><span class="p">)</span>
422 <span class="bp">self</span><span class="o">.</span><span class="n">add_line</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
424 <span class="c"># If there is an "environ_script" section, load the scripts</span>
425 <span class="k">if</span> <span class="s">'environ_script'</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">cfg</span><span class="o">.</span><span class="n">APPLICATION</span><span class="p">:</span>
426 <span class="k">for</span> <span class="n">pscript</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">cfg</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">environ_script</span><span class="p">:</span>
427 <span class="bp">self</span><span class="o">.</span><span class="n">add_comment</span><span class="p">(</span><span class="s">"script </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="n">pscript</span><span class="p">)</span>
428 <span class="n">sname</span> <span class="o">=</span> <span class="n">pscript</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s">" "</span><span class="p">,</span> <span class="s">"_"</span><span class="p">)</span>
429 <span class="bp">self</span><span class="o">.</span><span class="n">run_env_script</span><span class="p">(</span><span class="s">"APPLICATION_</span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="n">sname</span><span class="p">,</span>
430 <span class="bp">self</span><span class="o">.</span><span class="n">cfg</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">environ_script</span><span class="p">[</span><span class="n">pscript</span><span class="p">],</span>
431 <span class="n">logger</span><span class="p">)</span>
432 <span class="bp">self</span><span class="o">.</span><span class="n">add_line</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
434 <div class="viewcode-block" id="SalomeEnviron.set_salome_minimal_product_env"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.environment.SalomeEnviron.set_salome_minimal_product_env">[docs]</a> <span class="k">def</span> <span class="nf">set_salome_minimal_product_env</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">product_info</span><span class="p">,</span> <span class="n">logger</span><span class="p">):</span>
435 <span class="sd">"""\</span>
436 <span class="sd"> Sets the minimal environment for a SALOME product.</span>
437 <span class="sd"> xxx_ROOT_DIR and xxx_SRC_DIR</span>
438 <span class="sd"> </span>
439 <span class="sd"> :param product_info Config: The product description</span>
440 <span class="sd"> :param logger Logger: The logger instance to display messages </span>
441 <span class="sd"> """</span>
442 <span class="c"># set root dir</span>
443 <span class="n">DBG</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">"set_salome_minimal_product_env"</span><span class="p">,</span> <span class="n">product_info</span><span class="p">)</span>
444 <span class="n">root_dir</span> <span class="o">=</span> <span class="n">product_info</span><span class="o">.</span><span class="n">name</span> <span class="o">+</span> <span class="s">"_ROOT_DIR"</span>
445 <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">is_defined</span><span class="p">(</span><span class="n">root_dir</span><span class="p">):</span>
446 <span class="k">if</span> <span class="s">'install_dir'</span> <span class="ow">in</span> <span class="n">product_info</span> <span class="ow">and</span> <span class="n">product_info</span><span class="o">.</span><span class="n">install_dir</span><span class="p">:</span>
447 <span class="bp">self</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">root_dir</span><span class="p">,</span> <span class="n">product_info</span><span class="o">.</span><span class="n">install_dir</span><span class="p">)</span>
448 <span class="k">elif</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">silent</span><span class="p">:</span>
449 <span class="n">logger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">" "</span> <span class="o">+</span> <span class="n">_</span><span class="p">(</span><span class="s">"No install_dir for product </span><span class="si">%s</span><span class="se">\n</span><span class="s">"</span><span class="p">)</span> <span class="o">%</span>
450 <span class="n">product_info</span><span class="o">.</span><span class="n">name</span><span class="p">,</span> <span class="mi">5</span><span class="p">)</span>
452 <span class="n">source_in_package</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">get_property_in_product_cfg</span><span class="p">(</span><span class="n">product_info</span><span class="p">,</span>
453 <span class="s">"sources_in_package"</span><span class="p">)</span>
454 <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">for_package</span> <span class="ow">or</span> <span class="n">source_in_package</span> <span class="o">==</span> <span class="s">"yes"</span><span class="p">:</span>
455 <span class="c"># set source dir, unless no source dir</span>
456 <span class="k">if</span> <span class="ow">not</span> <span class="n">src</span><span class="o">.</span><span class="n">product</span><span class="o">.</span><span class="n">product_is_fixed</span><span class="p">(</span><span class="n">product_info</span><span class="p">):</span>
457 <span class="n">src_dir</span> <span class="o">=</span> <span class="n">product_info</span><span class="o">.</span><span class="n">name</span> <span class="o">+</span> <span class="s">"_SRC_DIR"</span>
458 <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">is_defined</span><span class="p">(</span><span class="n">src_dir</span><span class="p">):</span>
459 <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">for_package</span><span class="p">:</span>
460 <span class="bp">self</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">src_dir</span><span class="p">,</span> <span class="n">product_info</span><span class="o">.</span><span class="n">source_dir</span><span class="p">)</span>
461 <span class="k">else</span><span class="p">:</span>
462 <span class="bp">self</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">src_dir</span><span class="p">,</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="s">"out_dir_Path"</span><span class="p">,</span>
463 <span class="s">"SOURCES"</span><span class="p">,</span>
464 <span class="n">product_info</span><span class="o">.</span><span class="n">name</span><span class="p">))</span>
466 <div class="viewcode-block" id="SalomeEnviron.set_salome_generic_product_env"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.environment.SalomeEnviron.set_salome_generic_product_env">[docs]</a> <span class="k">def</span> <span class="nf">set_salome_generic_product_env</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">pi</span><span class="p">):</span>
467 <span class="sd">"""\</span>
468 <span class="sd"> Sets the generic environment for a SALOME product.</span>
469 <span class="sd"> </span>
470 <span class="sd"> :param pi Config: The product description</span>
471 <span class="sd"> """</span>
472 <span class="c"># Construct XXX_ROOT_DIR</span>
473 <span class="n">env_root_dir</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">pi</span><span class="o">.</span><span class="n">name</span> <span class="o">+</span> <span class="s">"_ROOT_DIR"</span><span class="p">)</span>
474 <span class="n">l_binpath_libpath</span> <span class="o">=</span> <span class="p">[]</span>
476 <span class="c"># create additional ROOT_DIR for CPP components</span>
477 <span class="k">if</span> <span class="s">'component_name'</span> <span class="ow">in</span> <span class="n">pi</span><span class="p">:</span>
478 <span class="n">compo_name</span> <span class="o">=</span> <span class="n">pi</span><span class="o">.</span><span class="n">component_name</span>
479 <span class="k">if</span> <span class="n">compo_name</span> <span class="o">+</span> <span class="s">"CPP"</span> <span class="o">==</span> <span class="n">pi</span><span class="o">.</span><span class="n">name</span><span class="p">:</span>
480 <span class="n">compo_root_dir</span> <span class="o">=</span> <span class="n">compo_name</span> <span class="o">+</span> <span class="s">"_ROOT_DIR"</span>
481 <span class="n">envcompo_root_dir</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span>
482 <span class="bp">self</span><span class="o">.</span><span class="n">cfg</span><span class="o">.</span><span class="n">TOOLS</span><span class="o">.</span><span class="n">common</span><span class="o">.</span><span class="n">install_root</span><span class="p">,</span> <span class="n">compo_name</span> <span class="p">)</span>
483 <span class="bp">self</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">compo_root_dir</span> <span class="p">,</span> <span class="n">envcompo_root_dir</span><span class="p">)</span>
484 <span class="n">bin_path</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">envcompo_root_dir</span><span class="p">,</span> <span class="s">'bin'</span><span class="p">,</span> <span class="s">'salome'</span><span class="p">)</span>
485 <span class="n">lib_path</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">envcompo_root_dir</span><span class="p">,</span> <span class="s">'lib'</span><span class="p">,</span> <span class="s">'salome'</span><span class="p">)</span>
486 <span class="n">l_binpath_libpath</span><span class="o">.</span><span class="n">append</span><span class="p">(</span> <span class="p">(</span><span class="n">bin_path</span><span class="p">,</span> <span class="n">lib_path</span><span class="p">)</span> <span class="p">)</span>
488 <span class="k">if</span> <span class="n">src</span><span class="o">.</span><span class="n">get_property_in_product_cfg</span><span class="p">(</span><span class="n">pi</span><span class="p">,</span> <span class="s">"fhs"</span><span class="p">):</span>
489 <span class="n">lib_path</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">env_root_dir</span><span class="p">,</span> <span class="s">'lib'</span><span class="p">)</span>
490 <span class="n">pylib1_path</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">env_root_dir</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">python_lib0</span><span class="p">)</span>
491 <span class="n">pylib2_path</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">env_root_dir</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">python_lib1</span><span class="p">)</span>
492 <span class="n">bin_path</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">env_root_dir</span><span class="p">,</span> <span class="s">'bin'</span><span class="p">)</span>
493 <span class="k">else</span><span class="p">:</span>
494 <span class="n">lib_path</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">env_root_dir</span><span class="p">,</span> <span class="s">'lib'</span><span class="p">,</span> <span class="s">'salome'</span><span class="p">)</span>
495 <span class="n">pylib1_path</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">env_root_dir</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">python_lib0</span><span class="p">,</span> <span class="s">'salome'</span><span class="p">)</span>
496 <span class="n">pylib2_path</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">env_root_dir</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">python_lib1</span><span class="p">,</span> <span class="s">'salome'</span><span class="p">)</span>
497 <span class="n">bin_path</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">env_root_dir</span><span class="p">,</span> <span class="s">'bin'</span><span class="p">,</span> <span class="s">'salome'</span><span class="p">)</span>
499 <span class="c"># Construct the paths to prepend to PATH and LD_LIBRARY_PATH and </span>
500 <span class="c"># PYTHONPATH</span>
501 <span class="n">l_binpath_libpath</span><span class="o">.</span><span class="n">append</span><span class="p">(</span> <span class="p">(</span><span class="n">bin_path</span><span class="p">,</span> <span class="n">lib_path</span><span class="p">)</span> <span class="p">)</span>
503 <span class="k">for</span> <span class="n">bin_path</span><span class="p">,</span> <span class="n">lib_path</span> <span class="ow">in</span> <span class="n">l_binpath_libpath</span><span class="p">:</span>
504 <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">forBuild</span><span class="p">:</span>
505 <span class="bp">self</span><span class="o">.</span><span class="n">prepend</span><span class="p">(</span><span class="s">'PATH'</span><span class="p">,</span> <span class="n">bin_path</span><span class="p">)</span>
506 <span class="k">if</span> <span class="n">src</span><span class="o">.</span><span class="n">architecture</span><span class="o">.</span><span class="n">is_windows</span><span class="p">():</span>
507 <span class="bp">self</span><span class="o">.</span><span class="n">prepend</span><span class="p">(</span><span class="s">'PATH'</span><span class="p">,</span> <span class="n">lib_path</span><span class="p">)</span>
508 <span class="k">else</span> <span class="p">:</span>
509 <span class="bp">self</span><span class="o">.</span><span class="n">prepend</span><span class="p">(</span><span class="s">'LD_LIBRARY_PATH'</span><span class="p">,</span> <span class="n">lib_path</span><span class="p">)</span>
511 <span class="n">l</span> <span class="o">=</span> <span class="p">[</span> <span class="n">bin_path</span><span class="p">,</span> <span class="n">lib_path</span><span class="p">,</span> <span class="n">pylib1_path</span><span class="p">,</span> <span class="n">pylib2_path</span> <span class="p">]</span>
512 <span class="bp">self</span><span class="o">.</span><span class="n">prepend</span><span class="p">(</span><span class="s">'PYTHONPATH'</span><span class="p">,</span> <span class="n">l</span><span class="p">)</span>
514 <div class="viewcode-block" id="SalomeEnviron.set_cpp_env"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.environment.SalomeEnviron.set_cpp_env">[docs]</a> <span class="k">def</span> <span class="nf">set_cpp_env</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">product_info</span><span class="p">):</span>
515 <span class="sd">"""\</span>
516 <span class="sd"> Sets the generic environment for a SALOME cpp product.</span>
517 <span class="sd"> </span>
518 <span class="sd"> :param product_info Config: The product description</span>
519 <span class="sd"> """</span>
520 <span class="c"># Construct XXX_ROOT_DIR</span>
521 <span class="n">env_root_dir</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">product_info</span><span class="o">.</span><span class="n">name</span> <span class="o">+</span> <span class="s">"_ROOT_DIR"</span><span class="p">)</span>
522 <span class="n">l_binpath_libpath</span> <span class="o">=</span> <span class="p">[]</span>
524 <span class="c"># Construct the paths to prepend to PATH and LD_LIBRARY_PATH and </span>
525 <span class="c"># PYTHONPATH</span>
526 <span class="n">bin_path</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">env_root_dir</span><span class="p">,</span> <span class="s">'bin'</span><span class="p">)</span>
527 <span class="n">lib_path</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">env_root_dir</span><span class="p">,</span> <span class="s">'lib'</span><span class="p">)</span>
528 <span class="n">l_binpath_libpath</span><span class="o">.</span><span class="n">append</span><span class="p">(</span> <span class="p">(</span><span class="n">bin_path</span><span class="p">,</span> <span class="n">lib_path</span><span class="p">)</span> <span class="p">)</span>
530 <span class="k">for</span> <span class="n">bin_path</span><span class="p">,</span> <span class="n">lib_path</span> <span class="ow">in</span> <span class="n">l_binpath_libpath</span><span class="p">:</span>
531 <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">forBuild</span><span class="p">:</span>
532 <span class="bp">self</span><span class="o">.</span><span class="n">prepend</span><span class="p">(</span><span class="s">'PATH'</span><span class="p">,</span> <span class="n">bin_path</span><span class="p">)</span>
533 <span class="k">if</span> <span class="n">src</span><span class="o">.</span><span class="n">architecture</span><span class="o">.</span><span class="n">is_windows</span><span class="p">():</span>
534 <span class="bp">self</span><span class="o">.</span><span class="n">prepend</span><span class="p">(</span><span class="s">'PATH'</span><span class="p">,</span> <span class="n">lib_path</span><span class="p">)</span>
535 <span class="k">else</span> <span class="p">:</span>
536 <span class="bp">self</span><span class="o">.</span><span class="n">prepend</span><span class="p">(</span><span class="s">'LD_LIBRARY_PATH'</span><span class="p">,</span> <span class="n">lib_path</span><span class="p">)</span>
538 <span class="n">l</span> <span class="o">=</span> <span class="p">[</span> <span class="n">bin_path</span><span class="p">,</span> <span class="n">lib_path</span><span class="p">,</span>
539 <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">env_root_dir</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">python_lib0</span><span class="p">),</span>
540 <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">env_root_dir</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">python_lib1</span><span class="p">)</span>
541 <span class="p">]</span>
542 <span class="bp">self</span><span class="o">.</span><span class="n">prepend</span><span class="p">(</span><span class="s">'PYTHONPATH'</span><span class="p">,</span> <span class="n">l</span><span class="p">)</span>
544 <div class="viewcode-block" id="SalomeEnviron.load_cfg_environment"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.environment.SalomeEnviron.load_cfg_environment">[docs]</a> <span class="k">def</span> <span class="nf">load_cfg_environment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">cfg_env</span><span class="p">):</span>
545 <span class="sd">"""\</span>
546 <span class="sd"> Loads environment defined in cfg_env </span>
547 <span class="sd"> </span>
548 <span class="sd"> :param cfg_env Config: A config containing an environment </span>
549 <span class="sd"> """</span>
550 <span class="c"># Loop on cfg_env values</span>
551 <span class="k">for</span> <span class="n">env_def</span> <span class="ow">in</span> <span class="n">cfg_env</span><span class="p">:</span>
552 <span class="n">val</span> <span class="o">=</span> <span class="n">cfg_env</span><span class="p">[</span><span class="n">env_def</span><span class="p">]</span>
554 <span class="c"># if it is env_script, do not do anything (reserved keyword)</span>
555 <span class="k">if</span> <span class="n">env_def</span> <span class="o">==</span> <span class="s">"env_script"</span><span class="p">:</span>
556 <span class="k">continue</span>
558 <span class="c"># if it is a dict, do not do anything</span>
559 <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">val</span><span class="p">,</span> <span class="n">src</span><span class="o">.</span><span class="n">pyconf</span><span class="o">.</span><span class="n">Mapping</span><span class="p">):</span>
560 <span class="k">continue</span>
562 <span class="c"># if it is a list, loop on its values</span>
563 <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">val</span><span class="p">,</span> <span class="n">src</span><span class="o">.</span><span class="n">pyconf</span><span class="o">.</span><span class="n">Sequence</span><span class="p">):</span>
564 <span class="c"># transform into list of strings</span>
565 <span class="n">l_val</span> <span class="o">=</span> <span class="p">[]</span>
566 <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="n">val</span><span class="p">:</span>
567 <span class="n">l_val</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">item</span><span class="p">)</span>
568 <span class="n">val</span> <span class="o">=</span> <span class="n">l_val</span>
570 <span class="c"># "_" means that the value must be prepended</span>
571 <span class="k">if</span> <span class="n">env_def</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s">"_"</span><span class="p">):</span>
572 <span class="c"># separator exception for PV_PLUGIN_PATH</span>
573 <span class="k">if</span> <span class="n">env_def</span><span class="p">[</span><span class="mi">1</span><span class="p">:]</span> <span class="o">==</span> <span class="s">'PV_PLUGIN_PATH'</span><span class="p">:</span>
574 <span class="bp">self</span><span class="o">.</span><span class="n">prepend</span><span class="p">(</span><span class="n">env_def</span><span class="p">[</span><span class="mi">1</span><span class="p">:],</span> <span class="n">val</span><span class="p">,</span> <span class="s">';'</span><span class="p">)</span>
575 <span class="k">else</span><span class="p">:</span>
576 <span class="bp">self</span><span class="o">.</span><span class="n">prepend</span><span class="p">(</span><span class="n">env_def</span><span class="p">[</span><span class="mi">1</span><span class="p">:],</span> <span class="n">val</span><span class="p">)</span>
577 <span class="k">elif</span> <span class="n">env_def</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span><span class="s">"_"</span><span class="p">):</span>
578 <span class="c"># separator exception for PV_PLUGIN_PATH</span>
579 <span class="k">if</span> <span class="n">env_def</span><span class="p">[:</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="o">==</span> <span class="s">'PV_PLUGIN_PATH'</span><span class="p">:</span>
580 <span class="bp">self</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">env_def</span><span class="p">[:</span><span class="o">-</span><span class="mi">1</span><span class="p">],</span> <span class="n">val</span><span class="p">,</span> <span class="s">';'</span><span class="p">)</span>
581 <span class="k">else</span><span class="p">:</span>
582 <span class="bp">self</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">env_def</span><span class="p">[:</span><span class="o">-</span><span class="mi">1</span><span class="p">],</span> <span class="n">val</span><span class="p">)</span>
583 <span class="k">else</span><span class="p">:</span>
584 <span class="bp">self</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">env_def</span><span class="p">,</span> <span class="n">val</span><span class="p">)</span>
586 <div class="viewcode-block" id="SalomeEnviron.set_a_product"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.environment.SalomeEnviron.set_a_product">[docs]</a> <span class="k">def</span> <span class="nf">set_a_product</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">product</span><span class="p">,</span> <span class="n">logger</span><span class="p">):</span>
587 <span class="sd">"""\</span>
588 <span class="sd"> Sets the environment of a product. </span>
589 <span class="sd"> </span>
590 <span class="sd"> :param product str: The product name</span>
591 <span class="sd"> :param logger Logger: The logger instance to display messages</span>
592 <span class="sd"> """</span>
594 <span class="c"># Get the informations corresponding to the product</span>
595 <span class="n">pi</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">product</span><span class="o">.</span><span class="n">get_product_config</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">cfg</span><span class="p">,</span> <span class="n">product</span><span class="p">)</span>
597 <span class="c"># skip mesa products (if any) at run time, </span>
598 <span class="c"># unless use_mesa property was activated</span>
599 <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">forBuild</span><span class="p">:</span>
600 <span class="k">if</span> <span class="ow">not</span> <span class="p">(</span><span class="s">"APPLICATION"</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">cfg</span> <span class="ow">and</span>
601 <span class="s">"properties"</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">cfg</span><span class="o">.</span><span class="n">APPLICATION</span> <span class="ow">and</span>
602 <span class="s">"use_mesa"</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">cfg</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">properties</span> <span class="ow">and</span>
603 <span class="bp">self</span><span class="o">.</span><span class="n">cfg</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">properties</span><span class="o">.</span><span class="n">use_mesa</span> <span class="o">==</span> <span class="s">"yes"</span><span class="p">)</span> <span class="p">:</span>
604 <span class="k">if</span> <span class="p">(</span><span class="s">"properties"</span> <span class="ow">in</span> <span class="n">pi</span> <span class="ow">and</span>
605 <span class="s">"is_mesa"</span> <span class="ow">in</span> <span class="n">pi</span><span class="o">.</span><span class="n">properties</span> <span class="ow">and</span>
606 <span class="n">pi</span><span class="o">.</span><span class="n">properties</span><span class="o">.</span><span class="n">is_mesa</span> <span class="o">==</span> <span class="s">"yes"</span><span class="p">)</span> <span class="p">:</span>
607 <span class="n">logger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s">"Skip mesa product </span><span class="si">%s</span><span class="se">\n</span><span class="s">"</span><span class="p">)</span> <span class="o">%</span> <span class="n">pi</span><span class="o">.</span><span class="n">name</span><span class="p">,</span> <span class="mi">4</span><span class="p">)</span>
608 <span class="k">return</span>
611 <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">for_package</span><span class="p">:</span>
612 <span class="n">pi</span><span class="o">.</span><span class="n">install_dir</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="s">"out_dir_Path"</span><span class="p">,</span>
613 <span class="bp">self</span><span class="o">.</span><span class="n">for_package</span><span class="p">,</span>
614 <span class="n">pi</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
616 <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">silent</span><span class="p">:</span>
617 <span class="n">logger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s">"Setting environment for </span><span class="si">%s</span><span class="se">\n</span><span class="s">"</span><span class="p">)</span> <span class="o">%</span> <span class="n">product</span><span class="p">,</span> <span class="mi">4</span><span class="p">)</span>
619 <span class="bp">self</span><span class="o">.</span><span class="n">add_line</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
620 <span class="bp">self</span><span class="o">.</span><span class="n">add_comment</span><span class="p">(</span><span class="s">'setting environ for '</span> <span class="o">+</span> <span class="n">product</span><span class="p">)</span>
622 <span class="c"># Do not define environment if the product is native</span>
623 <span class="k">if</span> <span class="n">src</span><span class="o">.</span><span class="n">product</span><span class="o">.</span><span class="n">product_is_native</span><span class="p">(</span><span class="n">pi</span><span class="p">):</span>
624 <span class="k">if</span> <span class="n">src</span><span class="o">.</span><span class="n">product</span><span class="o">.</span><span class="n">product_has_env_script</span><span class="p">(</span><span class="n">pi</span><span class="p">):</span>
625 <span class="bp">self</span><span class="o">.</span><span class="n">run_env_script</span><span class="p">(</span><span class="n">pi</span><span class="p">,</span> <span class="n">native</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>
626 <span class="k">return</span>
628 <span class="c"># Set an additional environment for SALOME products</span>
629 <span class="k">if</span> <span class="n">src</span><span class="o">.</span><span class="n">product</span><span class="o">.</span><span class="n">product_is_salome</span><span class="p">(</span><span class="n">pi</span><span class="p">):</span>
630 <span class="c"># set environment using definition of the product</span>
631 <span class="bp">self</span><span class="o">.</span><span class="n">set_salome_minimal_product_env</span><span class="p">(</span><span class="n">pi</span><span class="p">,</span> <span class="n">logger</span><span class="p">)</span>
632 <span class="bp">self</span><span class="o">.</span><span class="n">set_salome_generic_product_env</span><span class="p">(</span><span class="n">pi</span><span class="p">)</span>
634 <span class="k">if</span> <span class="n">src</span><span class="o">.</span><span class="n">product</span><span class="o">.</span><span class="n">product_is_cpp</span><span class="p">(</span><span class="n">pi</span><span class="p">):</span>
635 <span class="c"># set a specific environment for cpp modules</span>
636 <span class="bp">self</span><span class="o">.</span><span class="n">set_salome_minimal_product_env</span><span class="p">(</span><span class="n">pi</span><span class="p">,</span> <span class="n">logger</span><span class="p">)</span>
637 <span class="bp">self</span><span class="o">.</span><span class="n">set_cpp_env</span><span class="p">(</span><span class="n">pi</span><span class="p">)</span>
639 <span class="k">if</span> <span class="n">src</span><span class="o">.</span><span class="n">product</span><span class="o">.</span><span class="n">product_is_generated</span><span class="p">(</span><span class="n">pi</span><span class="p">):</span>
640 <span class="k">if</span> <span class="s">"component_name"</span> <span class="ow">in</span> <span class="n">pi</span><span class="p">:</span>
641 <span class="c"># hack the source and install directories in order to point </span>
642 <span class="c"># on the generated product source install directories</span>
643 <span class="n">install_dir_save</span> <span class="o">=</span> <span class="n">pi</span><span class="o">.</span><span class="n">install_dir</span>
644 <span class="n">source_dir_save</span> <span class="o">=</span> <span class="n">pi</span><span class="o">.</span><span class="n">source_dir</span>
645 <span class="n">name_save</span> <span class="o">=</span> <span class="n">pi</span><span class="o">.</span><span class="n">name</span>
646 <span class="n">pi</span><span class="o">.</span><span class="n">install_dir</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">cfg</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">workdir</span><span class="p">,</span>
647 <span class="s">"INSTALL"</span><span class="p">,</span>
648 <span class="n">pi</span><span class="o">.</span><span class="n">component_name</span><span class="p">)</span>
649 <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">for_package</span><span class="p">:</span>
650 <span class="n">pi</span><span class="o">.</span><span class="n">install_dir</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="s">"out_dir_Path"</span><span class="p">,</span>
651 <span class="bp">self</span><span class="o">.</span><span class="n">for_package</span><span class="p">,</span>
652 <span class="n">pi</span><span class="o">.</span><span class="n">component_name</span><span class="p">)</span>
653 <span class="n">pi</span><span class="o">.</span><span class="n">source_dir</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">cfg</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">workdir</span><span class="p">,</span>
654 <span class="s">"GENERATED"</span><span class="p">,</span>
655 <span class="n">pi</span><span class="o">.</span><span class="n">component_name</span><span class="p">)</span>
656 <span class="n">pi</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="n">pi</span><span class="o">.</span><span class="n">component_name</span>
657 <span class="bp">self</span><span class="o">.</span><span class="n">set_salome_minimal_product_env</span><span class="p">(</span><span class="n">pi</span><span class="p">,</span> <span class="n">logger</span><span class="p">)</span>
658 <span class="bp">self</span><span class="o">.</span><span class="n">set_salome_generic_product_env</span><span class="p">(</span><span class="n">pi</span><span class="p">)</span>
660 <span class="c"># Put original values</span>
661 <span class="n">pi</span><span class="o">.</span><span class="n">install_dir</span> <span class="o">=</span> <span class="n">install_dir_save</span>
662 <span class="n">pi</span><span class="o">.</span><span class="n">source_dir</span> <span class="o">=</span> <span class="n">source_dir_save</span>
663 <span class="n">pi</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="n">name_save</span>
665 <span class="c"># Put the environment define in the configuration of the product</span>
666 <span class="k">if</span> <span class="s">"environ"</span> <span class="ow">in</span> <span class="n">pi</span><span class="p">:</span>
667 <span class="bp">self</span><span class="o">.</span><span class="n">load_cfg_environment</span><span class="p">(</span><span class="n">pi</span><span class="o">.</span><span class="n">environ</span><span class="p">)</span>
668 <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">forBuild</span> <span class="ow">and</span> <span class="s">"build"</span> <span class="ow">in</span> <span class="n">pi</span><span class="o">.</span><span class="n">environ</span><span class="p">:</span>
669 <span class="bp">self</span><span class="o">.</span><span class="n">load_cfg_environment</span><span class="p">(</span><span class="n">pi</span><span class="o">.</span><span class="n">environ</span><span class="o">.</span><span class="n">build</span><span class="p">)</span>
670 <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">forBuild</span> <span class="ow">and</span> <span class="s">"launch"</span> <span class="ow">in</span> <span class="n">pi</span><span class="o">.</span><span class="n">environ</span><span class="p">:</span>
671 <span class="bp">self</span><span class="o">.</span><span class="n">load_cfg_environment</span><span class="p">(</span><span class="n">pi</span><span class="o">.</span><span class="n">environ</span><span class="o">.</span><span class="n">launch</span><span class="p">)</span>
672 <span class="c"># if product_info defines a env_scripts, load it</span>
673 <span class="k">if</span> <span class="s">'env_script'</span> <span class="ow">in</span> <span class="n">pi</span><span class="o">.</span><span class="n">environ</span><span class="p">:</span>
674 <span class="bp">self</span><span class="o">.</span><span class="n">run_env_script</span><span class="p">(</span><span class="n">pi</span><span class="p">,</span> <span class="n">logger</span><span class="p">)</span>
679 <div class="viewcode-block" id="SalomeEnviron.run_env_script"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.environment.SalomeEnviron.run_env_script">[docs]</a> <span class="k">def</span> <span class="nf">run_env_script</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">product_info</span><span class="p">,</span> <span class="n">logger</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">native</span><span class="o">=</span><span class="bp">False</span><span class="p">):</span>
680 <span class="sd">"""\</span>
681 <span class="sd"> Runs an environment script. </span>
682 <span class="sd"> </span>
683 <span class="sd"> :param product_info Config: The product description</span>
684 <span class="sd"> :param logger Logger: The logger instance to display messages</span>
685 <span class="sd"> :param native Boolean: if True load set_native_env instead of set_env</span>
686 <span class="sd"> """</span>
687 <span class="n">env_script</span> <span class="o">=</span> <span class="n">product_info</span><span class="o">.</span><span class="n">environ</span><span class="o">.</span><span class="n">env_script</span>
688 <span class="c"># Check that the script exists</span>
689 <span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">env_script</span><span class="p">):</span>
690 <span class="k">raise</span> <span class="n">src</span><span class="o">.</span><span class="n">SatException</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s">"Environment script not found: </span><span class="si">%s</span><span class="s">"</span><span class="p">)</span> <span class="o">%</span>
691 <span class="n">env_script</span><span class="p">)</span>
693 <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">silent</span> <span class="ow">and</span> <span class="n">logger</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
694 <span class="n">logger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">" ** load </span><span class="si">%s</span><span class="se">\n</span><span class="s">"</span> <span class="o">%</span> <span class="n">env_script</span><span class="p">,</span> <span class="mi">4</span><span class="p">)</span>
696 <span class="c"># import the script and run the set_env function</span>
697 <span class="k">try</span><span class="p">:</span>
698 <span class="kn">import</span> <span class="nn">imp</span>
699 <span class="n">pyproduct</span> <span class="o">=</span> <span class="n">imp</span><span class="o">.</span><span class="n">load_source</span><span class="p">(</span><span class="n">product_info</span><span class="o">.</span><span class="n">name</span> <span class="o">+</span> <span class="s">"_env_script"</span><span class="p">,</span>
700 <span class="n">env_script</span><span class="p">)</span>
701 <span class="k">if</span> <span class="ow">not</span> <span class="n">native</span><span class="p">:</span>
702 <span class="n">pyproduct</span><span class="o">.</span><span class="n">set_env</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span>
703 <span class="n">product_info</span><span class="o">.</span><span class="n">install_dir</span><span class="p">,</span>
704 <span class="n">product_info</span><span class="o">.</span><span class="n">version</span><span class="p">)</span>
705 <span class="k">else</span><span class="p">:</span>
706 <span class="k">if</span> <span class="s">"set_nativ_env"</span> <span class="ow">in</span> <span class="nb">dir</span><span class="p">(</span><span class="n">pyproduct</span><span class="p">):</span>
707 <span class="n">pyproduct</span><span class="o">.</span><span class="n">set_nativ_env</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
708 <span class="k">except</span><span class="p">:</span>
709 <span class="n">__</span><span class="p">,</span> <span class="n">exceptionValue</span><span class="p">,</span> <span class="n">exceptionTraceback</span> <span class="o">=</span> <span class="n">sys</span><span class="o">.</span><span class="n">exc_info</span><span class="p">()</span>
710 <span class="k">print</span><span class="p">(</span><span class="n">exceptionValue</span><span class="p">)</span>
711 <span class="kn">import</span> <span class="nn">traceback</span>
712 <span class="n">traceback</span><span class="o">.</span><span class="n">print_tb</span><span class="p">(</span><span class="n">exceptionTraceback</span><span class="p">)</span>
713 <span class="n">traceback</span><span class="o">.</span><span class="n">print_exc</span><span class="p">()</span>
715 <div class="viewcode-block" id="SalomeEnviron.run_simple_env_script"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.environment.SalomeEnviron.run_simple_env_script">[docs]</a> <span class="k">def</span> <span class="nf">run_simple_env_script</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">script_path</span><span class="p">,</span> <span class="n">logger</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
716 <span class="sd">"""\</span>
717 <span class="sd"> Runs an environment script. Same as run_env_script, but with a </span>
718 <span class="sd"> script path as parameter.</span>
719 <span class="sd"> </span>
720 <span class="sd"> :param script_path str: a path to an environment script</span>
721 <span class="sd"> :param logger Logger: The logger instance to display messages</span>
722 <span class="sd"> """</span>
723 <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">enable_simple_env_script</span><span class="p">:</span>
724 <span class="k">return</span>
725 <span class="c"># Check that the script exists</span>
726 <span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">script_path</span><span class="p">):</span>
727 <span class="k">raise</span> <span class="n">src</span><span class="o">.</span><span class="n">SatException</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s">"Environment script not found: </span><span class="si">%s</span><span class="s">"</span><span class="p">)</span> <span class="o">%</span>
728 <span class="n">script_path</span><span class="p">)</span>
730 <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">silent</span> <span class="ow">and</span> <span class="n">logger</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
731 <span class="n">logger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">" ** load </span><span class="si">%s</span><span class="se">\n</span><span class="s">"</span> <span class="o">%</span> <span class="n">script_path</span><span class="p">,</span> <span class="mi">4</span><span class="p">)</span>
733 <span class="n">script_basename</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">basename</span><span class="p">(</span><span class="n">script_path</span><span class="p">)</span>
734 <span class="k">if</span> <span class="n">script_basename</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span><span class="s">".py"</span><span class="p">):</span>
735 <span class="n">script_basename</span> <span class="o">=</span> <span class="n">script_basename</span><span class="p">[:</span><span class="o">-</span><span class="nb">len</span><span class="p">(</span><span class="s">".py"</span><span class="p">)]</span>
737 <span class="c"># import the script and run the set_env function</span>
738 <span class="k">try</span><span class="p">:</span>
739 <span class="kn">import</span> <span class="nn">imp</span>
740 <span class="n">pyproduct</span> <span class="o">=</span> <span class="n">imp</span><span class="o">.</span><span class="n">load_source</span><span class="p">(</span><span class="n">script_basename</span> <span class="o">+</span> <span class="s">"_env_script"</span><span class="p">,</span>
741 <span class="n">script_path</span><span class="p">)</span>
742 <span class="n">pyproduct</span><span class="o">.</span><span class="n">load_env</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
743 <span class="k">except</span><span class="p">:</span>
744 <span class="n">__</span><span class="p">,</span> <span class="n">exceptionValue</span><span class="p">,</span> <span class="n">exceptionTraceback</span> <span class="o">=</span> <span class="n">sys</span><span class="o">.</span><span class="n">exc_info</span><span class="p">()</span>
745 <span class="k">print</span><span class="p">(</span><span class="n">exceptionValue</span><span class="p">)</span>
746 <span class="kn">import</span> <span class="nn">traceback</span>
747 <span class="n">traceback</span><span class="o">.</span><span class="n">print_tb</span><span class="p">(</span><span class="n">exceptionTraceback</span><span class="p">)</span>
748 <span class="n">traceback</span><span class="o">.</span><span class="n">print_exc</span><span class="p">()</span>
750 <div class="viewcode-block" id="SalomeEnviron.set_products"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.environment.SalomeEnviron.set_products">[docs]</a> <span class="k">def</span> <span class="nf">set_products</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">logger</span><span class="p">,</span> <span class="n">src_root</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
751 <span class="sd">"""\</span>
752 <span class="sd"> Sets the environment for all the products. </span>
753 <span class="sd"> </span>
754 <span class="sd"> :param logger Logger: The logger instance to display messages</span>
755 <span class="sd"> :param src_root src: the application working directory</span>
756 <span class="sd"> """</span>
757 <span class="bp">self</span><span class="o">.</span><span class="n">add_line</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
758 <span class="bp">self</span><span class="o">.</span><span class="n">add_comment</span><span class="p">(</span><span class="s">'setting environ for all products'</span><span class="p">)</span>
760 <span class="c"># Make sure that the python lib dirs are set after python</span>
761 <span class="k">if</span> <span class="s">"Python"</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">cfg</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">products</span><span class="p">:</span>
762 <span class="bp">self</span><span class="o">.</span><span class="n">set_a_product</span><span class="p">(</span><span class="s">"Python"</span><span class="p">,</span> <span class="n">logger</span><span class="p">)</span>
763 <span class="bp">self</span><span class="o">.</span><span class="n">set_python_libdirs</span><span class="p">()</span>
765 <span class="c"># The loop on the products</span>
766 <span class="k">for</span> <span class="n">product</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">cfg</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">products</span><span class="o">.</span><span class="n">keys</span><span class="p">():</span>
767 <span class="k">if</span> <span class="n">product</span> <span class="o">==</span> <span class="s">"Python"</span><span class="p">:</span>
768 <span class="k">continue</span>
769 <span class="bp">self</span><span class="o">.</span><span class="n">set_a_product</span><span class="p">(</span><span class="n">product</span><span class="p">,</span> <span class="n">logger</span><span class="p">)</span>
770 <span class="bp">self</span><span class="o">.</span><span class="n">finish</span><span class="p">(</span><span class="bp">False</span><span class="p">)</span>
772 <div class="viewcode-block" id="SalomeEnviron.set_full_environ"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.environment.SalomeEnviron.set_full_environ">[docs]</a> <span class="k">def</span> <span class="nf">set_full_environ</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">logger</span><span class="p">,</span> <span class="n">env_info</span><span class="p">):</span>
773 <span class="sd">"""\</span>
774 <span class="sd"> Sets the full environment for products </span>
775 <span class="sd"> specified in env_info dictionary. </span>
776 <span class="sd"> </span>
777 <span class="sd"> :param logger Logger: The logger instance to display messages</span>
778 <span class="sd"> :param env_info list: the list of products</span>
779 <span class="sd"> """</span>
780 <span class="n">DBG</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">"set_full_environ for"</span><span class="p">,</span> <span class="n">env_info</span><span class="p">)</span>
781 <span class="c"># DBG.write("set_full_environ config", self.cfg.APPLICATION.environ, True)</span>
782 <span class="c"># set product environ</span>
783 <span class="bp">self</span><span class="o">.</span><span class="n">set_application_env</span><span class="p">(</span><span class="n">logger</span><span class="p">)</span>
785 <span class="bp">self</span><span class="o">.</span><span class="n">set_python_libdirs</span><span class="p">()</span>
787 <span class="c"># set products</span>
788 <span class="k">for</span> <span class="n">product</span> <span class="ow">in</span> <span class="n">env_info</span><span class="p">:</span>
789 <span class="bp">self</span><span class="o">.</span><span class="n">set_a_product</span><span class="p">(</span><span class="n">product</span><span class="p">,</span> <span class="n">logger</span><span class="p">)</span>
791 <div class="viewcode-block" id="FileEnvWriter"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.environment.FileEnvWriter">[docs]</a><span class="k">class</span> <span class="nc">FileEnvWriter</span><span class="p">:</span>
792 <span class="sd">"""\</span>
793 <span class="sd"> Class to dump the environment to a file.</span>
794 <span class="sd"> """</span>
795 <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">config</span><span class="p">,</span> <span class="n">logger</span><span class="p">,</span> <span class="n">out_dir</span><span class="p">,</span> <span class="n">src_root</span><span class="p">,</span> <span class="n">env_info</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
796 <span class="sd">"""\</span>
797 <span class="sd"> Initialization.</span>
799 <span class="sd"> :param cfg Config: the global config</span>
800 <span class="sd"> :param logger Logger: The logger instance to display messages</span>
801 <span class="sd"> :param out_dir str: The directory path where t put the output files</span>
802 <span class="sd"> :param src_root str: The application working directory</span>
803 <span class="sd"> :param env_info str: The list of products to add in the files.</span>
804 <span class="sd"> """</span>
805 <span class="bp">self</span><span class="o">.</span><span class="n">config</span> <span class="o">=</span> <span class="n">config</span>
806 <span class="bp">self</span><span class="o">.</span><span class="n">logger</span> <span class="o">=</span> <span class="n">logger</span>
807 <span class="bp">self</span><span class="o">.</span><span class="n">out_dir</span> <span class="o">=</span> <span class="n">out_dir</span>
808 <span class="bp">self</span><span class="o">.</span><span class="n">src_root</span><span class="o">=</span> <span class="n">src_root</span>
809 <span class="bp">self</span><span class="o">.</span><span class="n">silent</span> <span class="o">=</span> <span class="bp">True</span>
810 <span class="bp">self</span><span class="o">.</span><span class="n">env_info</span> <span class="o">=</span> <span class="n">env_info</span>
812 <div class="viewcode-block" id="FileEnvWriter.write_env_file"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.environment.FileEnvWriter.write_env_file">[docs]</a> <span class="k">def</span> <span class="nf">write_env_file</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">filename</span><span class="p">,</span> <span class="n">forBuild</span><span class="p">,</span> <span class="n">shell</span><span class="p">,</span> <span class="n">for_package</span> <span class="o">=</span> <span class="bp">None</span><span class="p">):</span>
813 <span class="sd">"""\</span>
814 <span class="sd"> Create an environment file.</span>
815 <span class="sd"> </span>
816 <span class="sd"> :param filename str: the file path</span>
817 <span class="sd"> :param forBuild bool: if true, the build environment</span>
818 <span class="sd"> :param shell str: the type of file wanted (.sh, .bat)</span>
819 <span class="sd"> :return: The path to the generated file</span>
820 <span class="sd"> :rtype: str</span>
821 <span class="sd"> """</span>
822 <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">silent</span><span class="p">:</span>
823 <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s">"Create environment file </span><span class="si">%s</span><span class="se">\n</span><span class="s">"</span><span class="p">)</span> <span class="o">%</span>
824 <span class="n">src</span><span class="o">.</span><span class="n">printcolors</span><span class="o">.</span><span class="n">printcLabel</span><span class="p">(</span><span class="n">filename</span><span class="p">),</span> <span class="mi">3</span><span class="p">)</span>
826 <span class="c"># create then env object</span>
827 <span class="n">env_file</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">out_dir</span><span class="p">,</span> <span class="n">filename</span><span class="p">),</span> <span class="s">"w"</span><span class="p">)</span>
828 <span class="n">tmp</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">fileEnviron</span><span class="o">.</span><span class="n">get_file_environ</span><span class="p">(</span><span class="n">env_file</span><span class="p">,</span>
829 <span class="n">shell</span><span class="p">,</span>
830 <span class="p">{})</span>
831 <span class="n">env</span> <span class="o">=</span> <span class="n">SalomeEnviron</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="p">,</span> <span class="n">tmp</span><span class="p">,</span> <span class="n">forBuild</span><span class="p">,</span> <span class="n">for_package</span><span class="o">=</span><span class="n">for_package</span><span class="p">)</span>
832 <span class="n">env</span><span class="o">.</span><span class="n">silent</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">silent</span>
834 <span class="c"># Set the environment</span>
835 <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">env_info</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
836 <span class="n">env</span><span class="o">.</span><span class="n">set_full_environ</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">env_info</span><span class="p">)</span>
837 <span class="k">else</span><span class="p">:</span>
838 <span class="c"># set env from the APPLICATION</span>
839 <span class="n">env</span><span class="o">.</span><span class="n">set_application_env</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="p">)</span>
841 <span class="c"># The list of products to launch</span>
842 <span class="n">lProductsName</span> <span class="o">=</span> <span class="n">env</span><span class="o">.</span><span class="n">get_names</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">products</span><span class="o">.</span><span class="n">keys</span><span class="p">())</span>
843 <span class="n">env</span><span class="o">.</span><span class="n">set</span><span class="p">(</span> <span class="s">"SALOME_MODULES"</span><span class="p">,</span> <span class="s">','</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">lProductsName</span><span class="p">))</span>
845 <span class="c"># set the products</span>
846 <span class="n">env</span><span class="o">.</span><span class="n">set_products</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="p">,</span>
847 <span class="n">src_root</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">src_root</span><span class="p">)</span>
849 <span class="c"># add cleanup and close</span>
850 <span class="n">env</span><span class="o">.</span><span class="n">finish</span><span class="p">(</span><span class="bp">True</span><span class="p">)</span>
851 <span class="n">env_file</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
853 <span class="k">return</span> <span class="n">env_file</span><span class="o">.</span><span class="n">name</span>
855 <div class="viewcode-block" id="FileEnvWriter.write_cfgForPy_file"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.environment.FileEnvWriter.write_cfgForPy_file">[docs]</a> <span class="k">def</span> <span class="nf">write_cfgForPy_file</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span>
856 <span class="n">filename</span><span class="p">,</span>
857 <span class="n">additional_env</span> <span class="o">=</span> <span class="p">{},</span>
858 <span class="n">for_package</span> <span class="o">=</span> <span class="bp">None</span><span class="p">,</span>
859 <span class="n">with_commercial</span> <span class="o">=</span> <span class="bp">True</span><span class="p">):</span>
860 <span class="sd">"""\</span>
861 <span class="sd"> Append to current opened aFile a cfgForPy </span>
862 <span class="sd"> environment (SALOME python launcher).</span>
863 <span class="sd"> </span>
864 <span class="sd"> :param filename str: the file path</span>
865 <span class="sd"> :param additional_env dict: a dictionary of additional variables </span>
866 <span class="sd"> to add to the environment</span>
867 <span class="sd"> :param for_package str: If not None, produce a relative environment </span>
868 <span class="sd"> designed for a package. </span>
869 <span class="sd"> """</span>
870 <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">silent</span><span class="p">:</span>
871 <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s">"Create configuration file </span><span class="si">%s</span><span class="se">\n</span><span class="s">"</span><span class="p">)</span> <span class="o">%</span>
872 <span class="n">src</span><span class="o">.</span><span class="n">printcolors</span><span class="o">.</span><span class="n">printcLabel</span><span class="p">(</span><span class="n">filename</span><span class="o">.</span><span class="n">name</span><span class="p">),</span> <span class="mi">3</span><span class="p">)</span>
874 <span class="c"># create then env object</span>
875 <span class="n">tmp</span> <span class="o">=</span> <span class="n">src</span><span class="o">.</span><span class="n">fileEnviron</span><span class="o">.</span><span class="n">get_file_environ</span><span class="p">(</span><span class="n">filename</span><span class="p">,</span>
876 <span class="s">"cfgForPy"</span><span class="p">,</span>
877 <span class="p">{})</span>
878 <span class="c"># environment for launch</span>
879 <span class="n">env</span> <span class="o">=</span> <span class="n">SalomeEnviron</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="p">,</span>
880 <span class="n">tmp</span><span class="p">,</span>
881 <span class="n">forBuild</span><span class="o">=</span><span class="bp">False</span><span class="p">,</span>
882 <span class="n">for_package</span><span class="o">=</span><span class="n">for_package</span><span class="p">,</span>
883 <span class="n">enable_simple_env_script</span> <span class="o">=</span> <span class="n">with_commercial</span><span class="p">)</span>
884 <span class="n">env</span><span class="o">.</span><span class="n">silent</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">silent</span>
886 <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">env_info</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
887 <span class="n">env</span><span class="o">.</span><span class="n">set_full_environ</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">env_info</span><span class="p">)</span>
888 <span class="k">else</span><span class="p">:</span>
889 <span class="c"># set env from PRODUCT</span>
890 <span class="n">env</span><span class="o">.</span><span class="n">set_application_env</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="p">)</span>
892 <span class="c"># The list of products to launch</span>
893 <span class="n">lProductsName</span> <span class="o">=</span> <span class="n">env</span><span class="o">.</span><span class="n">get_names</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">APPLICATION</span><span class="o">.</span><span class="n">products</span><span class="o">.</span><span class="n">keys</span><span class="p">())</span>
894 <span class="n">env</span><span class="o">.</span><span class="n">set</span><span class="p">(</span> <span class="s">"SALOME_MODULES"</span><span class="p">,</span> <span class="s">','</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">lProductsName</span><span class="p">))</span>
896 <span class="c"># set the products</span>
897 <span class="n">env</span><span class="o">.</span><span class="n">set_products</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="p">,</span>
898 <span class="n">src_root</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">src_root</span><span class="p">)</span>
900 <span class="c"># Add the additional environment if it is not empty</span>
901 <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">additional_env</span><span class="p">)</span> <span class="o">!=</span> <span class="mi">0</span><span class="p">:</span>
902 <span class="k">for</span> <span class="n">variable</span> <span class="ow">in</span> <span class="n">additional_env</span><span class="p">:</span>
903 <span class="n">env</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">variable</span><span class="p">,</span> <span class="n">additional_env</span><span class="p">[</span><span class="n">variable</span><span class="p">])</span>
905 <span class="c"># add cleanup and close</span>
906 <span class="n">env</span><span class="o">.</span><span class="n">finish</span><span class="p">(</span><span class="bp">True</span><span class="p">)</span>
908 <div class="viewcode-block" id="Shell"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.environment.Shell">[docs]</a><span class="k">class</span> <span class="nc">Shell</span><span class="p">:</span>
909 <span class="sd">"""\</span>
910 <span class="sd"> Definition of a Shell.</span>
911 <span class="sd"> """</span>
912 <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">extension</span><span class="p">):</span>
913 <span class="sd">"""\</span>
914 <span class="sd"> Initialization.</span>
916 <span class="sd"> :param name str: the shell name</span>
917 <span class="sd"> :param extension str: the shell extension</span>
918 <span class="sd"> """</span>
919 <span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="n">name</span>
920 <span class="bp">self</span><span class="o">.</span><span class="n">extension</span> <span class="o">=</span> <span class="n">extension</span>
922 <div class="viewcode-block" id="load_environment"><a class="viewcode-back" href="../../commands/apidoc/src.html#src.environment.load_environment">[docs]</a><span class="k">def</span> <span class="nf">load_environment</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">build</span><span class="p">,</span> <span class="n">logger</span><span class="p">):</span>
923 <span class="sd">"""\</span>
924 <span class="sd"> Loads the environment (used to run the tests, for example).</span>
925 <span class="sd"> </span>
926 <span class="sd"> :param config Config: the global config</span>
927 <span class="sd"> :param build bool: build environement if True</span>
928 <span class="sd"> :param logger Logger: The logger instance to display messages</span>
929 <span class="sd"> """</span>
930 <span class="n">environ</span> <span class="o">=</span> <span class="n">SalomeEnviron</span><span class="p">(</span><span class="n">config</span><span class="p">,</span> <span class="n">Environ</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">environ</span><span class="p">),</span> <span class="n">build</span><span class="p">)</span>
931 <span class="n">environ</span><span class="o">.</span><span class="n">set_application_env</span><span class="p">(</span><span class="n">logger</span><span class="p">)</span>
932 <span class="n">environ</span><span class="o">.</span><span class="n">set_products</span><span class="p">(</span><span class="n">logger</span><span class="p">)</span>
933 <span class="n">environ</span><span class="o">.</span><span class="n">finish</span><span class="p">(</span><span class="bp">True</span><span class="p">)</span></div>
939 <div class="sphinxsidebar">
940 <div class="sphinxsidebarwrapper">
941 <p class="logo"><a href="../../index.html">
942 <img class="logo" src="../../_static/sat_v5.0.png" alt="Logo"/>
943 </a></p><div class="relations">
944 <h3>Related Topics</h3>
946 <li><a href="../../index.html">Documentation overview</a><ul>
947 <li><a href="../index.html">Module code</a><ul>
952 <div id="searchbox" style="display: none">
953 <h3>Quick search</h3>
954 <form class="search" action="../../search.html" method="get">
955 <input type="text" name="q" />
956 <input type="submit" value="Go" />
957 <input type="hidden" name="check_keywords" value="yes" />
958 <input type="hidden" name="area" value="default" />
960 <p class="searchtip" style="font-size: 90%">
961 Enter search terms or a module, class or function name.
964 <script type="text/javascript">$('#searchbox').show(0);</script>
967 <div class="clearer"></div>
973 Powered by <a href="http://sphinx-doc.org/">Sphinx 1.1.3</a>
974 & <a href="https://github.com/bitprophet/alabaster">Alabaster </a>