0027514: Configuration, CMake - relative paths are not correctly handled for INSTALL_DIR
[occt.git] / adm / templates / env.sh
1 #!/bin/bash
2
3 # go to the script directory
4 aScriptPath=${BASH_SOURCE%/*}; if [ -d "${aScriptPath}" ]; then cd "$aScriptPath"; fi; aScriptPath="$PWD";
5
6 # Reset values
7 export CASROOT="__CASROOT__"
8 export CASDEB=""
9 export TARGET="";
10 export HAVE_TBB="false";
11 export HAVE_OPENCL="false";
12 export HAVE_FREEIMAGE="false";
13 export HAVE_GL2PS="false";
14 export HAVE_VTK="false";
15 export HAVE_GLES2="false";
16 export MACOSX_USE_GLX="false";
17 export CSF_OPT_INC=""
18 export CSF_OPT_LIB32=""
19 export CSF_OPT_LIB64=""
20 export CSF_OPT_BIN32=""
21 export CSF_OPT_BIN64=""
22
23 # ----- Set local settings -----
24 if [ "${CASROOT}" != "" ] && [ -e "${CASROOT}/custom.sh" ]; then source "${CASROOT}/custom.sh"; fi
25 if [ -e "${aScriptPath}/custom.sh" ]; then source "${aScriptPath}/custom.sh"; fi
26
27 if [ "${CASROOT}" != "" ] && [ -d "${aScriptPath}/${CASROOT}" ]; then
28   export CASROOT="${aScriptPath}/${CASROOT}"
29 fi
30 if [ "${CASROOT}" == "" ]; then
31   export CASROOT="${aScriptPath}"
32 fi
33
34 # Read script arguments
35 shopt -s nocasematch
36 for i in $*
37 do
38   if [ "$i" == "d" ] || [ "$i" == "debug" ]; then
39     export CASDEB="d"
40   elif [ "$i" == "i" ] || [ "$i" == "relwithdeb" ]; then
41     export CASDEB="i"
42   elif [ "$i" == "cbp" ]; then
43     export TARGET="cbp";
44   elif [ "$i" == "xcd" ] || [ "$i" == "xcode" ]; then
45     export TARGET="xcd";
46   fi
47 done
48 shopt -u nocasematch
49
50 # ----- Setup Environment Variables -----
51 anArch=`uname -m`
52 if [ "$anArch" != "x86_64" ] && [ "$anArch" != "ia64" ]; then
53   export ARCH="32";
54 else
55   export ARCH="64";
56 fi
57
58 aSystem=`uname -s`
59 if [ "$aSystem" == "Darwin" ]; then
60   export WOKSTATION="mac";
61   export ARCH="64";
62 else
63   export WOKSTATION="lin";
64 fi
65
66 export CASBIN=""
67 if [ "${TARGET}" == "cbp" ]; then
68   export CASBIN="${WOKSTATION}/cbp"
69 elif [ "${TARGET}" == "xcd" ]; then
70   export CASBIN="adm/mac/xcd/build"
71 fi
72
73 export CSF_OPT_INC="${CSF_OPT_INC}:${CASROOT}/inc"
74
75 if [ "${TARGET}" == "cbp" ]; then
76   export CSF_OPT_LIB32D="${CSF_OPT_LIB32}:${CASROOT}/${CASBIN}/libd"
77   export CSF_OPT_LIB64D="${CSF_OPT_LIB64}:${CASROOT}/${CASBIN}/libd"
78   export CSF_OPT_LIB32="${CSF_OPT_LIB32}:${CASROOT}/${CASBIN}/lib"
79   export CSF_OPT_LIB64="${CSF_OPT_LIB64}:${CASROOT}/${CASBIN}/lib"
80   export CSF_OPT_LIB32I="${CSF_OPT_LIB32}:${CASROOT}/${CASBIN}/libi"
81   export CSF_OPT_LIB64I="${CSF_OPT_LIB64}:${CASROOT}/${CASBIN}/libi"
82 elif [ "${TARGET}" == "xcd" ]; then
83   export CSF_OPT_LIB32D="${CSF_OPT_LIB32}:${CASROOT}/${CASBIN}/Debug"
84   export CSF_OPT_LIB64D="${CSF_OPT_LIB64}:${CASROOT}/${CASBIN}/Debug"
85   export CSF_OPT_LIB32="${CSF_OPT_LIB32}:${CASROOT}/${CASBIN}/Release"
86   export CSF_OPT_LIB64="${CSF_OPT_LIB64}:${CASROOT}/${CASBIN}/Release"
87   export CSF_OPT_LIB32I="${CSF_OPT_LIB32}:${CASROOT}/${CASBIN}/RelWithDebInfo"
88   export CSF_OPT_LIB64I="${CSF_OPT_LIB64}:${CASROOT}/${CASBIN}/RelWithDebInfo"
89 fi
90
91 export CSF_OPT_CMPL=""
92
93 # Optiona 3rd-parties should be enabled by HAVE macros
94 if [ "$HAVE_TBB" == "true" ]; then
95   export CSF_OPT_CMPL="${CSF_OPT_CMPL} -DHAVE_TBB"
96 fi
97 if [ "$HAVE_OPENCL" == "true" ]; then
98   export CSF_OPT_CMPL="${CSF_OPT_CMPL} -DHAVE_OPENCL"
99 fi
100 if [ "$HAVE_FREEIMAGE" == "true" ]; then
101   export CSF_OPT_CMPL="${CSF_OPT_CMPL} -DHAVE_FREEIMAGE"
102 fi
103 if [ "$HAVE_GL2PS" == "true" ]; then
104   export CSF_OPT_CMPL="${CSF_OPT_CMPL} -DHAVE_GL2PS"
105 fi
106 if [ "$HAVE_GLES2" == "true" ]; then
107   export CSF_OPT_CMPL="${CSF_OPT_CMPL} -DHAVE_GLES2"
108 fi
109 if [ "$HAVE_VTK" == "true" ]; then
110   export CSF_OPT_CMPL="${CSF_OPT_CMPL} -DHAVE_VTK"
111 fi
112 # Option to compile OCCT with X11 libs on Mac OS X
113 if [ "$MACOSX_USE_GLX" == "true" ]; then
114   export CSF_OPT_CMPL="${CSF_OPT_CMPL} -DMACOSX_USE_GLX"
115 fi
116
117 # To split string into array
118 aDelimBack=$IFS
119 IFS=":"
120
121 # 3rd-parties additional include paths
122 set -- "$CSF_OPT_INC"
123 declare -a aPartiesIncs=($*)
124 for anItem in ${aPartiesIncs[*]}
125 do
126   export CSF_OPT_CMPL="${CSF_OPT_CMPL} -I${anItem}";
127 done
128
129 # Append 3rd-parties to LD_LIBRARY_PATH
130 if [ "$ARCH" == "32" ]; then
131   set -- "$CSF_OPT_LIB32"
132   declare -a aPartiesLibs=($*)
133   set -- "$CSF_OPT_LIB32D"
134   declare -a aPartiesLibsDeb=($*)
135   set -- "$CSF_OPT_LIB32I"
136   declare -a aPartiesLibsRelWithDebInfo=($*)
137 else
138   set -- "$CSF_OPT_LIB64"
139   declare -a aPartiesLibs=($*)
140   set -- "$CSF_OPT_LIB64D"
141   declare -a aPartiesLibsDeb=($*)
142   set -- "$CSF_OPT_LIB64I"
143   declare -a aPartiesLibsRelWithDebInfo=($*)
144 fi
145
146 # Turn back value
147 IFS=$aDelimBack
148
149 OPT_LINKER_OPTIONS_DEB=""
150 for anItem in ${aPartiesLibsDeb[*]}
151 do
152   OPT_LINKER_OPTIONS_DEB="${OPT_LINKER_OPTIONS_DEB} -L${anItem}"
153 done
154
155 OPT_LINKER_OPTIONS_REL_WITH_DEB_INFO=""
156 for anItem in ${aPartiesLibsRelWithDebInfo[*]}
157 do
158   OPT_LINKER_OPTIONS_REL_WITH_DEB_INFO="${OPT_LINKER_OPTIONS_REL_WITH_DEB_INFO} -L${anItem}"
159 done
160
161 OPT_LINKER_OPTIONS=""
162 for anItem in ${aPartiesLibs[*]}
163 do
164   if [ "${LD_LIBRARY_PATH}" == "" ]; then
165     export LD_LIBRARY_PATH="${anItem}"
166   else
167     export LD_LIBRARY_PATH="${anItem}:${LD_LIBRARY_PATH}"
168   fi
169   OPT_LINKER_OPTIONS="${OPT_LINKER_OPTIONS} -L${anItem}"
170 done
171
172 if [ "$ARCH" == "64" ]; then
173   export CSF_OPT_LNK64="$OPT_LINKER_OPTIONS"
174   export CSF_OPT_LNK64D="$OPT_LINKER_OPTIONS_DEB"
175   export CSF_OPT_LNK64I="$OPT_LINKER_OPTIONS_REL_WITH_DEB_INFO"
176 else
177   export CSF_OPT_LNK32="$OPT_LINKER_OPTIONS"
178   export CSF_OPT_LNK32D="$OPT_LINKER_OPTIONS_DEB"
179   export CSF_OPT_LNK32I="$OPT_LINKER_OPTIONS_REL_WITH_DEB_INFO"
180 fi
181
182 # ----- Default paths to sub-folders (can be different in install env) -----
183 export CSF_OCCTIncludePath="${CSF_OCCTIncludePath:-$CASROOT/inc}"
184 export CSF_OCCTResourcePath="${CSF_OCCTResourcePath:-$CASROOT/src}"
185 export CSF_OCCTSamplesPath="${CSF_OCCTSamplesPath:-$CASROOT/samples}"
186 export CSF_OCCTDataPath="${CSF_OCCTDataPath:-$CASROOT/data}"
187 export CSF_OCCTTestsPath="${CSF_OCCTTestsPath:-$CASROOT/tests}"
188
189 if [ "${TARGET}" == "xcd" ]; then
190   if [ "${CASDEB}" == "d" ]; then
191     export CSF_OCCTBinPath="${CSF_OCCTBinPath:-$CASROOT/$CASBIN/Debug}"
192   else
193     export CSF_OCCTBinPath="${CSF_OCCTBinPath:-$CASROOT/$CASBIN/Release}"
194   fi
195   export CSF_OCCTLibPath="${CSF_OCCTLibPath:-$CSF_OCCTBinPath}"
196 else
197   export CSF_OCCTBinPath="${CSF_OCCTBinPath:-$CASROOT/$CASBIN/bin$CASDEB}"
198   export CSF_OCCTLibPath="${CSF_OCCTLibPath:-$CASROOT/$CASBIN/lib$CASDEB}"
199 fi
200
201 export PATH="${CSF_OCCTBinPath}:${PATH}"
202 export LD_LIBRARY_PATH="${CSF_OCCTLibPath}:${LD_LIBRARY_PATH}"
203 if [ "$WOKSTATION" == "mac" ]; then
204   export DYLD_LIBRARY_PATH="${LD_LIBRARY_PATH}:${DYLD_LIBRARY_PATH}"
205 fi
206
207 # Set envoronment variables used by OCCT
208 export CSF_LANGUAGE="us"
209 export MMGT_CLEAR="1"
210 export CSF_SHMessage="${CASROOT}/src/SHMessage"
211 export CSF_MDTVTexturesDirectory="${CASROOT}/src/Textures"
212 export CSF_ShadersDirectory="${CASROOT}/src/Shaders"
213 export CSF_XSMessage="${CASROOT}/src/XSMessage"
214 export CSF_TObjMessage="${CASROOT}/src/TObj"
215 export CSF_StandardDefaults="${CASROOT}/src/StdResource"
216 export CSF_PluginDefaults="${CASROOT}/src/StdResource"
217 export CSF_XCAFDefaults="${CASROOT}/src/StdResource"
218 export CSF_TObjDefaults="${CASROOT}/src/StdResource"
219 export CSF_StandardLiteDefaults="${CASROOT}/src/StdResource"
220 export CSF_UnitsLexicon="${CASROOT}/src/UnitsAPI/Lexi_Expr.dat"
221 export CSF_UnitsDefinition="${CASROOT}/src/UnitsAPI/Units.dat"
222 export CSF_IGESDefaults="${CASROOT}/src/XSTEPResource"
223 export CSF_STEPDefaults="${CASROOT}/src/XSTEPResource"
224 export CSF_XmlOcafResource="${CASROOT}/src/XmlOcafResource"
225 export CSF_MIGRATION_TYPES="${CASROOT}/src/StdResource/MigrationSheet.txt"
226
227 # Draw Harness special stuff
228 if [ -e "${CASROOT}/src/DrawResources" ]; then
229   export DRAWHOME="${CASROOT}/src/DrawResources"
230   export CSF_DrawPluginDefaults="${DRAWHOME}"
231 fi