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