MantisBT - Community
View Issue Details
0009457Community[OCCT] OCCT:Foundation Classespublic2005-07-08 13:212017-08-15 15:23
[OCCT] 7.1.0[OCCT] 7.1.0 
0009457: Avoid usage of environment variables
Proposal (summary)
  This idea is inspired by message by Philippe Carret of OCC forum (see [^])

Currently OCCT and derived applications require that a number of environment
variables were
correctly installed. Thus the user has either to modify global settings on the
wokstation, or use
bat files (or scripts on UNIX), which both methods are not very convenient.

The proposal is to provide a means to define the necessary settings by using
alternative methods,
thus avoiding usage of environment variables:
- registry on WNT
- specific configuration file on UNIX (e.g. $HOME/.occtconfig)
Naturally, the possibility to use environment variables should be kept for

An additional proposal is to provide some GUI utility to manage the whole set of
variables. This shall make user's life more easy.
Expected benefits
  Better user comprehension and easier OCCT installation and configuration.
Improved usability of
OCCT in applications.
No tags attached.
related to 0028124new kgv Open CASCADE Visualization - availability of standard textures 
related to 0027258closed apn Open CASCADE Configuration - generate built-in replacement for mandatory resource files 
related to 0024925closed apn Community Enabling OCAF persistence without setting environment variables 
Issue History
2005-07-08 13:21bugmasterStatusnew => closed
2005-07-08 13:21bugmasterResolution@0@ => suspended
2005-07-08 13:21bugmastervalidate => 1
2005-07-08 16:17bugmasterType => FIP
2011-08-02 11:23bugmasterCategoryOCCT:FDC => OCCT:Foundation Classes
2011-12-15 16:35abvFixed in VersionEMPTY =>
2011-12-15 16:35abvDescription Updatedbug_revision_view_page.php?rev_id=1269#r1269
2011-12-15 16:35abvProjectOpen CASCADE => Community
2012-01-11 16:10szyNote Added: 0019087
2012-01-11 16:10szyAssigned Tobugmaster => abv
2012-01-11 16:10szyStatusacknowledged => assigned
2013-05-06 11:06abvAssigned Toabv => sdv
2013-05-06 11:44abvNote Added: 0024311
2013-05-08 17:24abvNote Added: 0024347
2014-05-14 23:49Roman LyginRelationship addedrelated to 0024925
2014-09-10 18:13abvTarget Version => 7.0.0
2015-12-15 14:06abvTarget Version7.0.0 => 7.1.0
2016-04-06 06:50abvAssigned Tosdv => ski
2016-11-17 17:01abvRelationship addedrelated to 0028124
2016-11-22 10:24abvTarget Version7.1.0 => 7.2.0
2017-08-15 15:18abvRelationship addedrelated to 0027258
2017-08-15 15:23abvNote Added: 0069403
2017-08-15 15:23abvStatusassigned => closed
2017-08-15 15:23abvResolutionsuspended => fixed
2017-08-15 15:23abvFixed in Version => 7.1.0
2017-08-15 15:23abvTarget Version7.2.0 => 7.1.0

2012-01-11 16:10   
It seems the bug became foul (2005 year...).
Do you want to analyze it once again or may be better to close it?
What is your decision?
2013-05-06 11:44   
Sergey, please consider this issue as a starting point for improvement to make OCCT usable without necessity to set environment variables.

I propose the following steps:

1. Find and document all environment variables currently used by OCCT
   - Check OCCT documentation (Overview, FC UG) for this list
   - Search code for getenv(), OSD_Environment
   - Make up-to-date list of used variables
   - Propose which environment variables are not useful to be removed

2. Identify environment variables which specify location of resource files and thus are required for OCCT to operate correctly. For these, find good way to make the code work without environment variables.

My idea is that necessary files can be found automatically using knowledge of possible layouts of OCCT binaries and resources.

Naturally, we will need to enumerate and document these supported layouts, for instance:
   - Windows / MSVC development layout: binaries in ./win32/vc*/bin*, resources in ./src/*Resources
   - Possible install layout: binaries in ./bin, resources in ./res
   - Possible Linux install layout: binaries in /opt/occt*/bin, resources in /opt/share/occt
   - etc.

3. Implement necessary changes in OCCT (I suppose some supporting class shall be created and then used in all occurrences). Ensure that DRAW works well without preliminary environment settings in all configurations

4. Make corresponding changes in samples (though it will likely be necessary to specify location of OCCT build, this could be made on CMake configuration step)
2013-05-08 17:24   
In context of step 1, please note message of user Timo at

Dear Forum supervisor,

according to the OCC 6.6.0 release notes the CSF_GraphicShr is not used anymore.
But it is still docmented in the section on System Environment Variables in "Open CASCADE Technology Overview":

"CSF_GraphicShr is required to define the path to the TKOpenGl library;"

2017-08-15 15:23   
The need of using environment variables has been eliminated by 0027258. The variables that are still relevant seem to be correctly documented in Overview. If necessary, the client application can easily configure this environment using platform-specific means. Thus closing the issue