View Issue Details

IDProjectCategoryView StatusLast Update
0029410CommunityOCCT:DRAWpublic2023-08-01 15:06
ReporterabvAssigned Toapn  
PrioritynormalSeverityminor 
Status newResolutionopen 
Target VersionUnscheduled 
Summary0029410: DRAW - make DRAWEXE usable without environment settings
DescriptionHistorically 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 ReproduceOn Linux or macOS:

1. Build OCCT using CMake and run make install

2. Start DRAWEXE directly
TagsNo tags attached.
Test case number

Relationships

related to 0030339 closedapn Open CASCADE Configuration - add project files for qmake 

Activities

oan

2019-03-31 15:58

developer   ~0083324

Last edited: 2019-03-31 17:34

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.

Issue History

Date Modified Username Field Change
2018-01-02 21:53 abv New Issue
2018-01-02 21:53 abv Assigned To => apn
2018-01-02 21:55 abv Steps to Reproduce Updated
2019-01-21 10:49 kgv Relationship added related to 0030339
2019-03-31 15:58 oan Note Added: 0083324
2019-03-31 17:34 oan Note Edited: 0083324
2019-07-10 22:24 abv Target Version 7.4.0 => 7.5.0
2020-09-11 15:43 utverdov Target Version 7.5.0 => 7.6.0
2021-09-09 23:09 kgv Target Version 7.6.0 => 7.7.0
2022-10-24 10:40 szy Target Version 7.7.0 => 7.8.0
2023-08-01 15:06 dpasukhi Target Version 7.8.0 => Unscheduled