View Issue Details

IDProjectCategoryView StatusLast Update
0009457CommunityOCCT:Foundation Classespublic2017-08-15 15:23
Reporterbugmaster Assigned Toski 
Status closedResolutionfixed 
Target Version7.1.0Fixed in Version7.1.0 
Summary0009457: Avoid usage of environment variables
DescriptionProposal (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.
TagsNo tags attached.
Test case number


related to 0028124 newvpozdyayev Open CASCADE Visualization - availability of standard textures 
related to 0027258 closedapn Open CASCADE Configuration - generate built-in replacement for mandatory resource files 
related to 0024925 closedapn Community Enabling OCAF persistence without setting environment variables 



2012-01-11 16:10

manager   ~0019087

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

manager   ~0024311

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

manager   ~0024347

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

manager   ~0069403

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

Issue History

Date Modified Username Field Change
2005-07-08 13:21 bugmaster Status new => closed
2005-07-08 13:21 bugmaster Resolution @0@ => suspended
2005-07-08 13:21 bugmaster validate => 1
2005-07-08 16:17 bugmaster Type => FIP
2011-08-02 11:23 bugmaster Category OCCT:FDC => OCCT:Foundation Classes
2011-12-15 16:35 abv Fixed in Version EMPTY =>
2011-12-15 16:35 abv Description Updated
2011-12-15 16:35 abv Project Open CASCADE => Community
2012-01-11 16:10 szy Note Added: 0019087
2012-01-11 16:10 szy Assigned To bugmaster => abv
2012-01-11 16:10 szy Status acknowledged => assigned
2013-05-06 11:06 abv Assigned To abv => sdv
2013-05-06 11:44 abv Note Added: 0024311
2013-05-08 17:24 abv Note Added: 0024347
2014-05-14 23:49 Roman Lygin Relationship added related to 0024925
2014-09-10 18:13 abv Target Version => 7.0.0
2015-12-15 14:06 abv Target Version 7.0.0 => 7.1.0
2016-04-06 06:50 abv Assigned To sdv => ski
2016-11-17 17:01 abv Relationship added related to 0028124
2016-11-22 10:24 abv Target Version 7.1.0 => 7.2.0
2017-08-15 15:18 abv Relationship added related to 0027258
2017-08-15 15:23 abv Note Added: 0069403
2017-08-15 15:23 abv Status assigned => closed
2017-08-15 15:23 abv Resolution suspended => fixed
2017-08-15 15:23 abv Fixed in Version => 7.1.0
2017-08-15 15:23 abv Target Version 7.2.0 => 7.1.0