Archived issue #0029410

DRAW - make DRAWEXE usable without environment settings

CommunityOCCT:DRAWnew1 public note

Search issues

Description

Historically DRAW depends on environment variables and thus can be launched successfully only by the script which sets these variables according to the current setting (draw.bat or draw.sh).

This is not convenient: it is expected that executable (DRAWEXE) should be able to run correctly if started directly, without any pre-set variables.

To achieve this, we need to find good replacement of environment variables for two kinds of paths:

1. Paths to DRAW plugin binaries. Now command pload searches for these using standard paths supported by dlopen() on Linux / macOS or LoadLibrary() on Windows. If this is not the case (e.g. OCCT is installed to /usr/local on macOS), pload fails.

2. Paths to Tcl scripts and other resources. Now these paths are expected to be defined by a bunch of environment variables. There is some fallback code trying to find paths in the absence of variables, but these fallbacks are made on DRAW is running over sources (search OCCT code for "src/DrawResources"). This is not the case when OCCT is installed with "make install".

The most straightforward approach is to extend fallback code to perform search in default locations, starting from location of the current binary. However, more universal approach should be preferred if it exists.

Steps to reproduce

On Linux or macOS:

1. Build OCCT using CMake and run make install

2. Start DRAWEXE directly

Public activity

1 archived note

Participants are labeled by their role within this record.

01Commenter 2
DC,

what do you think about introduction of settings stored in *.ini file?
Good for that, there are a lot of open source ini parsers, such as
https://github.com/benhoyt/inih or
https://github.com/ndevilla/iniparser

Advantage is that it can be configured using cmake and also be human-readable.

Related records