Crosswalk, Common Files, and the PATH environment variable

Anytime you have problems with Crosswalk not showing up in Softimage or Crosswalk missing or dotXSI liberaries missing, it’s probably because the Common Files location is missing from your PATH environment variable.

Now, setenv.bat does add the Common Files location to the PATH:

rem Adding folder(s) to the Path
set SOFTIMAGE_COMMONFILES=C:\Program Files\Common Files\Softimage
if not "%XSI_SetenvDone%"=="" goto Done_Path

but strangely, this doesn’t [always] help.

  • If you start Softimage from the Start menu, this Softimage still can’t find the common file Crosswalk_2013.0.64.dll (which is installed in C:\Program Files\Common Files\Softimage).
  • But if you start Softimage from a command prompt with XSI.bat, Softimage does find Crosswalk_2013.0.64.dll.

I stumbled on this when I wrote a little script to check whether or not Common Files was in the PATH. Because setenv.bat prepends the Common Files location to PATH, I need to check whether there is more than one occurrence in the PATH. If there’s just one, then that’s a problem because Crosswalk won’t be found when you start Softimage from the Start menu.

from siutils import si

if Application.Version().split('.')[0]>= "11":
	si = si()					# win32com.client.Dispatch('XSI.Application')
from siutils import log		# LogMessage
from siutils import disp	# win32com.client.Dispatch
from siutils import C		# win32com.client.constants

path = XSIUtils.Environment( 'PATH' )
cf = "".join( [XSIUtils.Environment( 'CommonProgramFiles' ), '\Softimage'] )
#cfx86 = "".join( [XSIUtils.Environment( 'CommonProgramFiles(x86)' ), '\Softimage'] )

# Check Common Files

# Log number of times Common Files is found in PATH
# log( path.split(';').count(cf) )

if path.split(';').count(cf) > 1:
	log( "'%s' is in PATH" % cf )
	log( "'%s' is missing from PATH" % cf, C.siError )