@@ -274,19 +274,19 @@ o.Add(
274274
275275o .Add (
276276 "CPPPATH" ,
277- "A colon separated list of paths to search for headers on." ,
277+ "A colon (semi-colon on Windows) separated list of paths to search for headers on." ,
278278 "" ,
279279)
280280
281281o .Add (
282282 "LIBPATH" ,
283- "A colon separated list of paths to search for libraries on." ,
283+ "A colon (semi-colon on Windows) separated list of paths to search for libraries on." ,
284284 "" ,
285285)
286286
287287o .Add (
288288 "PYTHONPATH" ,
289- "A colon separated list of paths to search for python modules on." ,
289+ "A colon (semi-colon on Windows) separated list of paths to search for python modules on." ,
290290 "" ,
291291)
292292
@@ -991,8 +991,8 @@ o.Add(
991991
992992o .Add (
993993 "TEST_LIBPATH" ,
994- "Additional colon separated paths to be prepended to the library path "
995- "used when running tests." ,
994+ "Additional colon separated (semi-colon on Windows) paths to be prepended to the "
995+ "library path used when running tests." ,
996996 ""
997997)
998998
@@ -1001,17 +1001,14 @@ if Environment()["PLATFORM"]=="darwin" :
10011001elif Environment ()["PLATFORM" ] != "win32" :
10021002 libraryPathEnvVar = "LD_LIBRARY_PATH"
10031003else :
1004- # Windows. We don't have a library path, but we
1005- # can't use an empty string for an environment
1006- # variable name.
1007- libraryPathEnvVar = "UNUSED_LIBRARY_PATH"
1004+ libraryPathEnvVar = "PATH"
10081005
10091006o .Add (
10101007 "TEST_LIBRARY_PATH_ENV_VAR" ,
10111008 "This is a curious one, probably only ever necessary at image engine. It "
10121009 "specifies the name of an environment variable used to specify the library "
10131010 "search paths correctly when running the tests. Defaults to LD_LIBRARY_PATH on "
1014- "Linux and DYLD_LIBRARY_PATH on OSX." ,
1011+ "Linux, DYLD_LIBRARY_PATH on OSX and PATH on Windows ." ,
10151012 libraryPathEnvVar
10161013)
10171014
@@ -1036,7 +1033,7 @@ env = Environment(
10361033)
10371034
10381035if isinstance ( env ["LIBPATH" ], str ) :
1039- env ["LIBPATH" ] = env ["LIBPATH" ].split ( ":" )
1036+ env ["LIBPATH" ] = env ["LIBPATH" ].split ( os . pathsep )
10401037
10411038for e in env ["ENV_VARS_TO_IMPORT" ].split () :
10421039 if e in os .environ :
@@ -1482,25 +1479,32 @@ if pythonModuleEnv["PLATFORM"]=="darwin" :
14821479
14831480testEnv = env .Clone ()
14841481
1485- testEnvLibPath = ":" .join ( testEnv ["LIBPATH" ] )
1482+ testEnvLibPath = os . pathsep .join ( testEnv ["LIBPATH" ] )
14861483if testEnv ["TEST_LIBPATH" ] != "" :
1487- testEnvLibPath = testEnv ["TEST_LIBPATH" ] + ":" + testEnvLibPath
1484+ testEnvLibPath = testEnv ["TEST_LIBPATH" ] + os . pathsep + testEnvLibPath
14881485testEnvLibPath = testEnv .subst ( testEnvLibPath )
14891486
1490- testEnv ["ENV" ][testEnv ["TEST_LIBRARY_PATH_ENV_VAR" ]] = testEnvLibPath
1491- if libraryPathEnvVar :
1492- testEnv ["ENV" ][libraryPathEnvVar ] = testEnvLibPath
1493- testEnv ["ENV" ]["IECORE_OP_PATHS" ] = "test/ IECore/ ops"
1487+ testEnv ["ENV" ][testEnv ["TEST_LIBRARY_PATH_ENV_VAR" ]] = os . pathsep . join ( [ testEnv [ "ENV" ]. get ( testEnv [ "TEST_LIBRARY_PATH_ENV_VAR" ], "" ), testEnvLibPath ] )
1488+ if testEnv [ "TEST_LIBRARY_PATH_ENV_VAR" ] != libraryPathEnvVar :
1489+ testEnv ["ENV" ][libraryPathEnvVar ] = os . pathsep . join ( [ testEnv [ "ENV" ]. get ( libraryPathEnvVar , "" ), testEnvLibPath ] )
1490+ testEnv ["ENV" ]["IECORE_OP_PATHS" ] = os . path . join ( "test" , " IECore" , " ops" )
14941491
14951492c = Configure ( testEnv )
14961493
14971494withBoostUnitTest = c .CheckLibWithHeader ( env .subst ( "boost_unit_test_framework" + env ["BOOST_LIB_SUFFIX" ] ), "boost/test/unit_test.hpp" , "CXX" )
1498- withBoostTestExecMonitor = c .CheckLibWithHeader ( env .subst ( "boost_test_exec_monitor" + env ["BOOST_LIB_SUFFIX" ] ), "boost/test/test_exec_monitor.hpp" , "CXX" )
1495+ # Boost on Windows does includes the "lib" prefix for the boost_test_exec_monitor
1496+ boostTestExecMonitorLibName = "libboost_test_exec_monitor" if testEnv ["PLATFORM" ] == "win32" else "boost_test_exec_monitor"
1497+ withBoostTestExecMonitor = c .CheckLibWithHeader ( env .subst ( boostTestExecMonitorLibName + env ["BOOST_LIB_SUFFIX" ] ), "boost/test/test_exec_monitor.hpp" , "CXX" )
14991498withBoostTest = withBoostUnitTest and withBoostTestExecMonitor
15001499
15011500c .Finish ()
15021501
1503- testEnv ["ENV" ]["PYTHONPATH" ] = "./python:" + testEnv .subst ( "$PYTHONPATH" )
1502+ testEnv ["ENV" ]["PYTHONPATH" ] = os .pathsep .join (
1503+ [
1504+ os .path .join ( "." , "python" ),
1505+ testEnv .subst ( "$PYTHONPATH" )
1506+ ]
1507+ )
15041508
15051509if testEnv ["PLATFORM" ] == "darwin" :
15061510
@@ -1689,6 +1693,8 @@ def writePkgConfig( env, python_env ):
16891693
16901694coreEnv = env .Clone ( IECORE_NAME = "IECore" )
16911695coreEnv .Append ( CXXFLAGS = "-DIECore_EXPORTS" )
1696+ if coreEnv ["PLATFORM" ] == "win32" :
1697+ coreEnv .Append ( LIBS = "version.lib" )
16921698corePythonEnv = pythonEnv .Clone ( IECORE_NAME = "IECorePython" )
16931699corePythonEnv .Append ( CXXFLAGS = "-DIECorePython_EXPORTS" )
16941700corePythonModuleEnv = pythonModuleEnv .Clone ( IECORE_NAME = "IECore" )
@@ -1827,9 +1833,9 @@ imageEnvPrepends = {
18271833}
18281834
18291835imageEnv .Prepend ( ** imageEnvPrepends )
1830- # Windows does not have a default library path, it will find the needed libraries based on PATH environment variable
1831- if libraryPathEnvVar :
1832- imageEnv ["ENV" ][libraryPathEnvVar ] = imageEnv ["LIBPATH" ]
1836+ # Windows uses PATH for to find libraries, we must append to it to make sure we don't overwrite existing PATH entries.
1837+ # On Linux and MacOS this will append to an empty library path.
1838+ imageEnv ["ENV" ][libraryPathEnvVar ] = os . pathsep . join ( [ imageEnv ["ENV" ]. get ( libraryPathEnvVar , "" ) ] + imageEnv [ " LIBPATH" ] )
18331839
18341840if doConfigure :
18351841
@@ -1920,12 +1926,12 @@ if doConfigure :
19201926
19211927 # testing
19221928 imageTestEnv = testEnv .Clone ()
1923- imageTestEnv ["ENV" ]["PYTHONPATH" ] = imageTestEnv ["ENV" ]["PYTHONPATH" ] + ": python"
1929+ imageTestEnv ["ENV" ]["PYTHONPATH" ] = os . pathsep . join ( [ imageTestEnv ["ENV" ]["PYTHONPATH" ], " python" ] )
19241930
1925- imageEnvLibPath = ":" .join ( imageEnvPrepends ["LIBPATH" ] )
1931+ imageEnvLibPath = os . pathsep .join ( imageEnvPrepends ["LIBPATH" ] )
19261932 imageLibs = imageTestEnv .subst ( imageEnvLibPath )
19271933 imageTestLibs = imageTestEnv ["ENV" ][imageTestEnv ["TEST_LIBRARY_PATH_ENV_VAR" ]]
1928- imageTestEnv ["ENV" ][imageTestEnv ["TEST_LIBRARY_PATH_ENV_VAR" ]] = ":" .join ( [imageLibs , imageTestLibs ] )
1934+ imageTestEnv ["ENV" ][imageTestEnv ["TEST_LIBRARY_PATH_ENV_VAR" ]] = os . pathsep .join ( [imageLibs , imageTestLibs ] )
19291935
19301936 imageTest = imageTestEnv .Command ( "test/IECoreImage/results.txt" , imagePythonModule , "$PYTHON $TEST_IMAGE_SCRIPT --verbose" )
19311937 NoCache ( imageTest )
@@ -2097,7 +2103,7 @@ if doConfigure :
20972103 # testing
20982104 vdbTestEnv = testEnv .Clone ()
20992105
2100- vdbTestEnv ["ENV" ]["PYTHONPATH" ] = vdbTestEnv ["ENV" ]["PYTHONPATH" ] + ":" + vdbTestEnv ["VDB_PYTHON_PATH" ]
2106+ vdbTestEnv ["ENV" ]["PYTHONPATH" ] = vdbTestEnv ["ENV" ]["PYTHONPATH" ] + os . pathsep + vdbTestEnv ["VDB_PYTHON_PATH" ]
21012107
21022108 vdbTest = vdbTestEnv .Command ( "test/IECoreVDB/results.txt" , vdbPythonModule , "$PYTHON $TEST_VDB_SCRIPT --verbose" )
21032109 NoCache ( vdbTest )
@@ -2473,9 +2479,9 @@ if doConfigure :
24732479
24742480 mayaTestEnv = testEnv .Clone ()
24752481
2476- mayaTestLibPaths = mayaEnv .subst ( ":" .join ( mayaPythonModuleEnv ["LIBPATH" ] ) )
2477- mayaTestEnv ["ENV" ][mayaTestEnv ["TEST_LIBRARY_PATH_ENV_VAR" ]] += ":" + mayaTestLibPaths
2478- mayaTestEnv ["ENV" ][libraryPathEnvVar ] += ":" + mayaTestLibPaths
2482+ mayaTestLibPaths = mayaEnv .subst ( os . pathsep .join ( mayaPythonModuleEnv ["LIBPATH" ] ) )
2483+ mayaTestEnv ["ENV" ][mayaTestEnv ["TEST_LIBRARY_PATH_ENV_VAR" ]] += os . pathsep + mayaTestLibPaths
2484+ mayaTestEnv ["ENV" ][libraryPathEnvVar ] += os . pathsep + mayaTestLibPaths
24792485
24802486 mayaTestEnv ["ENV" ]["PATH" ] = mayaEnv .subst ( "$MAYA_ROOT/bin:" ) + mayaEnv ["ENV" ]["PATH" ]
24812487 mayaTestEnv ["ENV" ]["MAYA_PLUG_IN_PATH" ] = "./plugins/maya:./test/IECoreMaya/plugins"
@@ -2940,9 +2946,9 @@ if doConfigure :
29402946 #=====
29412947 houdiniTestEnv = testEnv .Clone ()
29422948
2943- houdiniTestLibPaths = houdiniEnv .subst ( ":" .join ( houdiniPythonModuleEnv ["LIBPATH" ] ) )
2944- houdiniTestEnv ["ENV" ][houdiniTestEnv ["TEST_LIBRARY_PATH_ENV_VAR" ]] += ":" + houdiniTestLibPaths
2945- houdiniTestEnv ["ENV" ][libraryPathEnvVar ] += ":" + houdiniTestLibPaths
2949+ houdiniTestLibPaths = houdiniEnv .subst ( os . pathsep .join ( houdiniPythonModuleEnv ["LIBPATH" ] ) )
2950+ houdiniTestEnv ["ENV" ][houdiniTestEnv ["TEST_LIBRARY_PATH_ENV_VAR" ]] += os . pathsep + houdiniTestLibPaths
2951+ houdiniTestEnv ["ENV" ][libraryPathEnvVar ] += os . pathsep + houdiniTestLibPaths
29462952
29472953 houdiniTestEnv ["ENV" ]["PATH" ] = houdiniEnv .subst ( "$HOUDINI_ROOT/bin:" ) + houdiniEnv ["ENV" ]["PATH" ]
29482954
@@ -3121,9 +3127,9 @@ if doConfigure :
31213127 # tests
31223128 arnoldTestEnv = testEnv .Clone ()
31233129 arnoldTestEnv ["ENV" ]["PYTHONPATH" ] += ":./contrib/IECoreArnold/python:" + arnoldEnv .subst ( "$ARNOLD_ROOT/python" )
3124- arnoldTestEnv ["ENV" ][testEnv ["TEST_LIBRARY_PATH_ENV_VAR" ]] += ":" + arnoldEnv .subst ( ":" .join ( arnoldPythonModuleEnv ["LIBPATH" ] ) )
3125- arnoldTestEnv ["ENV" ]["PATH" ] = arnoldEnv .subst ( "$ARNOLD_ROOT/bin" ) + ":" + arnoldTestEnv ["ENV" ]["PATH" ]
3126- arnoldTestEnv ["ENV" ]["ARNOLD_PLUGIN_PATH" ] = "contrib/IECoreArnold/test/IECoreArnold/plugins: contrib/IECoreArnold/test/IECoreArnold/metadata"
3130+ arnoldTestEnv ["ENV" ][testEnv ["TEST_LIBRARY_PATH_ENV_VAR" ]] += os . pathsep + arnoldEnv .subst ( os . pathsep .join ( arnoldPythonModuleEnv ["LIBPATH" ] ) )
3131+ arnoldTestEnv ["ENV" ]["PATH" ] = arnoldEnv .subst ( "$ARNOLD_ROOT/bin" ) + os . pathsep + arnoldTestEnv ["ENV" ]["PATH" ]
3132+ arnoldTestEnv ["ENV" ]["ARNOLD_PLUGIN_PATH" ] = os . pathsep . join ( [ "contrib/IECoreArnold/test/IECoreArnold/plugins" , " contrib/IECoreArnold/test/IECoreArnold/metadata" ] )
31273133 arnoldTest = arnoldTestEnv .Command ( "contrib/IECoreArnold/test/IECoreArnold/results.txt" , arnoldPythonModule , "$PYTHON $TEST_ARNOLD_SCRIPT --verbose" )
31283134 NoCache ( arnoldTest )
31293135 arnoldTestEnv .Depends ( arnoldTest , [ arnoldPythonModule + arnoldDriverForTest + arnoldLibrary ] )
@@ -3285,8 +3291,8 @@ if doConfigure :
32853291 usdLibPath = coreEnv .subst ("$USD_LIB_PATH" )
32863292 usdPythonPath = os .path .join (usdLibPath , "python" )
32873293
3288- usdTestEnv ["ENV" ]["PYTHONPATH" ] += ":" + usdPythonPath
3289- usdTestEnv ["ENV" ][testEnv ["TEST_LIBRARY_PATH_ENV_VAR" ]] += ":" + usdLibPath
3294+ usdTestEnv ["ENV" ]["PYTHONPATH" ] += os . pathsep + usdPythonPath
3295+ usdTestEnv ["ENV" ][testEnv ["TEST_LIBRARY_PATH_ENV_VAR" ]] += os . pathsep + usdLibPath
32903296
32913297 # setup pluginInfo for custom file format registration
32923298 testSdfPlugInfo = os .path .join ( os .getcwd (), "plugins" , "usd" , "plugInfo.json" )
@@ -3429,8 +3435,8 @@ if doConfigure :
34293435
34303436 # tests
34313437 alembicTestEnv = testEnv .Clone ()
3432- alembicTestLibPaths = alembicEnv .subst ( ":" .join ( alembicPythonModuleEnv ["LIBPATH" ] ) )
3433- alembicTestEnv ["ENV" ][alembicTestEnv ["TEST_LIBRARY_PATH_ENV_VAR" ]] += ":" + alembicTestLibPaths
3438+ alembicTestLibPaths = alembicEnv .subst ( os . pathsep .join ( alembicPythonModuleEnv ["LIBPATH" ] ) )
3439+ alembicTestEnv ["ENV" ][alembicTestEnv ["TEST_LIBRARY_PATH_ENV_VAR" ]] += os . pathsep + alembicTestLibPaths
34343440 alembicTestEnv ["ENV" ]["PYTHONPATH" ] += ":./contrib/IECoreAlembic/python"
34353441 alembicTest = alembicTestEnv .Command ( "contrib/IECoreAlembic/test/IECoreAlembic/results.txt" , alembicPythonModule , "$PYTHON $TEST_ALEMBIC_SCRIPT --verbose" )
34363442 NoCache ( alembicTest )
@@ -3587,9 +3593,9 @@ if doConfigure :
35873593
35883594 # tests
35893595 appleseedTestEnv = testEnv .Clone ()
3590- appleseedTestEnv ["ENV" ]["PYTHONPATH" ] += ":./contrib/IECoreAppleseed/python" + ":" + appleseedEnv .subst ( "$APPLESEED_LIB_PATH/python" + pythonEnv ["PYTHON_VERSION" ] )
3591- appleseedTestEnv ["ENV" ][testEnv ["TEST_LIBRARY_PATH_ENV_VAR" ]] += ":" + appleseedEnv .subst ( ":" .join ( appleseedPythonModuleEnv ["LIBPATH" ] ) )
3592- appleseedTestEnv ["ENV" ]["PATH" ] = appleseedEnv .subst ( "$APPLESEED_ROOT/bin" ) + ":" + appleseedTestEnv ["ENV" ]["PATH" ]
3596+ appleseedTestEnv ["ENV" ]["PYTHONPATH" ] += ":./contrib/IECoreAppleseed/python" + os . pathsep + appleseedEnv .subst ( "$APPLESEED_LIB_PATH/python" + pythonEnv ["PYTHON_VERSION" ] )
3597+ appleseedTestEnv ["ENV" ][testEnv ["TEST_LIBRARY_PATH_ENV_VAR" ]] += os . pathsep + appleseedEnv .subst ( os . pathsep .join ( appleseedPythonModuleEnv ["LIBPATH" ] ) )
3598+ appleseedTestEnv ["ENV" ]["PATH" ] = appleseedEnv .subst ( "$APPLESEED_ROOT/bin" ) + os . pathsep + appleseedTestEnv ["ENV" ]["PATH" ]
35933599 appleseedTestEnv ["ENV" ]["APPLESEED_SEARCHPATH" ] = os .getcwd () + "/contrib/IECoreAppleseed/test/IECoreAppleseed/plugins"
35943600 appleseedTest = appleseedTestEnv .Command ( "contrib/IECoreAppleseed/test/IECoreAppleseed/results.txt" , appleseedPythonModule , "$PYTHON $TEST_APPLESEED_SCRIPT --verbose" )
35953601 NoCache ( appleseedTest )
0 commit comments