mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-05-21 10:55:33 +03:00
131 lines
4.8 KiB
Plaintext
Executable File
131 lines
4.8 KiB
Plaintext
Executable File
# Copyright (c) 1999-2014 OPEN CASCADE SAS
|
|
#
|
|
# This file is part of Open CASCADE Technology software library.
|
|
#
|
|
# This library is free software; you can redistribute it and/or modify it under
|
|
# the terms of the GNU Lesser General Public License version 2.1 as published
|
|
# by the Free Software Foundation, with special exception defined in the file
|
|
# OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
|
# distribution for complete text of the license and disclaimer of any warranty.
|
|
#
|
|
# Alternatively, this file may be used under the terms of Open CASCADE
|
|
# commercial license or contractual agreement.
|
|
|
|
# This script is to be executed automatically at DRAWEXE start.
|
|
#
|
|
# For that to happen, either environment DRAWDEFAULT should be set pointing
|
|
# to this file, or CASROOT variable should be set, so that the script is
|
|
# found as $CASROOT/src/DrawResources/DrawDefault
|
|
|
|
# indicate that DRAW is interactive environment
|
|
set tcl_interactive 1
|
|
|
|
# define location of standard DRAW scripts; normally it is
|
|
# $CASROOT/src/DrawResources
|
|
set dir ""
|
|
if { [info exists env(DRAWHOME) ] } {
|
|
set dir $env(DRAWHOME)
|
|
} else {
|
|
if { [info exists env(CASROOT) ] } {
|
|
set dir [file join $env(CASROOT) src DrawResources]
|
|
if { ! [file isdirectory $dir] } {
|
|
set dir [file join $env(CASROOT) resources DrawResources]
|
|
}
|
|
} else {
|
|
puts "Warning: CASROOT is not defined, some features may not load correctly"
|
|
set dir [file dirname [info script]]
|
|
}
|
|
}
|
|
|
|
# load standard DRAW scripts
|
|
if { [file isdirectory $dir] } {
|
|
foreach script {StandardCommands.tcl Geometry.tcl StandardViews.tcl
|
|
TestCommands.tcl CheckCommands.tcl Vector.tcl} {
|
|
if [file exist [file join $dir $script]] {
|
|
source [file join $dir $script]
|
|
} else {
|
|
puts "Warning: could not find command file $script"
|
|
}
|
|
}
|
|
|
|
# and TK extensions
|
|
set stationname $tcl_platform(platform)
|
|
if [info exists tk_version] {
|
|
source [file join $dir DrawTK.tcl]
|
|
# setup the icon for main window
|
|
if { ${stationname} == "windows" } {
|
|
wm iconbitmap . -default [file join $dir lamp.ico]
|
|
}
|
|
wm title . Draw
|
|
}
|
|
} else {
|
|
puts "Warning: could not find DRAW directory"
|
|
}
|
|
|
|
# set default testing environment (unless already defined before)
|
|
if { ! [info exists env(CSF_TestScriptsPath)] } {
|
|
if {[info exists ::env(CSF_OCCTTestsPath)] && [file isdirectory $env(CSF_OCCTTestsPath)]} {
|
|
set env(CSF_TestScriptsPath) $env(CSF_OCCTTestsPath)
|
|
} elseif { [info exists env(CASROOT)] && [file isdirectory $env(CASROOT)/tests] } {
|
|
set env(CSF_TestScriptsPath) $env(CASROOT)/tests
|
|
}
|
|
}
|
|
if {[info exists ::env(CSF_OCCTDataPath)] && [file isdirectory $env(CSF_OCCTDataPath)]} {
|
|
if { ! [info exists env(CSF_TestDataPath)] } {
|
|
set env(CSF_TestDataPath) $env(CSF_OCCTDataPath)
|
|
} else {
|
|
set env(CSF_TestDataPath) $env(CSF_TestDataPath)[_path_separator]$env(CSF_OCCTDataPath)
|
|
}
|
|
} elseif { [info exists env(CASROOT)] && [file isdirectory $env(CASROOT)/tests] } {
|
|
if { ! [info exists env(CSF_TestDataPath)] } {
|
|
set env(CSF_TestDataPath) $env(CASROOT)/data
|
|
} else {
|
|
set env(CSF_TestDataPath) $env(CSF_TestDataPath)[_path_separator]$env(CASROOT)/data
|
|
}
|
|
}
|
|
|
|
# load application-defined initialization script, which is expected to
|
|
# be found either in the file pointed by environment variable CSF_DrawAppliInit,
|
|
# or in the file DrawAppliInit in the current directory
|
|
set draw_appli_init_file DrawAppliInit
|
|
if { [info exists env(CSF_DrawAppliInit)] } {
|
|
set draw_appli_init_file $env(CSF_DrawAppliInit)
|
|
}
|
|
if { [file readable $draw_appli_init_file] } {
|
|
if { [catch {source $draw_appli_init_file} res] } {
|
|
puts "Warning: problem while loading file $draw_appli_init_file: $res"
|
|
}
|
|
}
|
|
|
|
# on Windows, set special handler to update automatically environment variables
|
|
# in C subsystem when Tcl environment changes (see Mantis issue #23197)
|
|
if { $tcl_platform(platform) == "windows" && ! [catch {dgetenv PATH}] } {
|
|
proc _update_c_env {envenv var op} {
|
|
global env
|
|
if { $op == "unset" } {
|
|
if { $var != "" } {
|
|
dsetenv $var
|
|
} else {
|
|
#"array get env varname" command calls _update_c_env with op="unset" and var=""
|
|
#It leads to detach of trace from env array
|
|
trace add variable env array _update_c_env
|
|
trace add variable env read _update_c_env
|
|
trace add variable env write _update_c_env
|
|
trace add variable env unset _update_c_env
|
|
}
|
|
} elseif { $op == "write" } {
|
|
dsetenv $var $env($var)
|
|
} elseif { $op == "read" } {
|
|
return dgetenv $var
|
|
}
|
|
}
|
|
#Execute "trace add ..." block from _update_c_env proc
|
|
_update_c_env env "" "unset"
|
|
}
|
|
|
|
# arm signal handler with default FPE setting
|
|
dsetsignal
|
|
|
|
# silent return from the script
|
|
return
|