Windows上编译OpenShadingLanguage

将OSL 1.3.0解压到[工作目录]/osl/OpenShadingLanguage

对Debug使用如下bat生成项目文件:

@Echo off

cd OpenShadingLanguage

set LIBDIR=%CD%....

:: create build directory
mkdir buildwindows_debug
cd buildwindows_debug

cmake -G "Visual Studio 9 2008" ....src ^
-DCMAKE_INSTALL_PREFIX=%LIBDIR%osldebug ^
-DCMAKE_CXX_FLAGS_DEBUG="/D_DEBUG /MTd /Zi /Ob0 /Od /RTC1" ^
-DCMAKE_CXX_FLAGS_MINSIZEREL="/MT /O1 /Ob1 /D NDEBUG" ^
-DCMAKE_CXX_FLAGS_RELEASE="/MT /O2 /Ob2 /D NDEBUG" ^
-DCMAKE_CXX_FLAGS_RELWITHDEBINFO="/MT /Zi /O2 /Ob1 /D NDEBUG" ^
-DCMAKE_CXX_STANDARD_LIBRARIES:STRING="kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib psapi.lib" ^
-DBUILDSTATIC=ON ^
-DILMBASE_HOME=%LIBDIR%openexr ^
-DOPENIMAGEIOHOME=%LIBDIR%openimageio ^
-DOPENIMAGEIO_LIBRARY=%LIBDIR%/openimageio/lib/OpenImageIO_d.lib;%LIBDIR%/png/lib/libpng_d.lib;%LIBDIR%/jpeg/lib/libjpeg_d.lib;%LIBDIR%/tiff/lib/libtiff_d.lib;%LIBDIR%/openexr/lib/Half_d.lib;%LIBDIR%/openexr/lib/Imath_d.lib;%LIBDIR%/openexr/lib/IlmImf_d.lib;%LIBDIR%/openexr/lib/Iex_d.lib;%LIBDIR%/openexr/lib/IlmThread_d.lib ^
-DBOOST_ROOT=%LIBDIR%oost ^
-DBoost_USE_STATIC_LIBS=ON ^
-DBoost_USE_STATIC_RUNTIME=ON ^
-DZLIB_INCLUDE_DIR=%LIBDIR%zlibinclude ^
-DZLIB_LIBRARY=%LIBDIR%zlibliblibz_d.lib ^
-DUSE_TBB=OFF ^
-DFLEX_EXECUTABLE=%LIBDIR%oslflex_bisoninwin_flex.exe ^
-DBISON_EXECUTABLE=%LIBDIR%oslflex_bisoninwin_bison.exe ^
-DLLVM_DIRECTORY=%LIBDIR%llvmdebug ^
-DLLVM_INCLUDES=%LIBDIR%llvmdebuginclude ^
-DLLVM_LIB_DIR=%LIBDIR%llvmdebuglib ^
-DLLVM_VERSION=3.2 ^
-DLLVM_LIBRARY=%LIBDIR%llvmdebuglibLLVMAnalysis.lib;%LIBDIR%llvmdebuglibLLVMArchive.lib;%LIBDIR%llvmdebuglibLLVMAsmParser.lib;%LIBDIR%llvmdebuglibLLVMAsmPrinter.lib;%LIBDIR%llvmdebuglibLLVMBitReader.lib;%LIBDIR%llvmdebuglibLLVMBitWriter.lib;%LIBDIR%llvmdebuglibLLVMCodeGen.lib;%LIBDIR%llvmdebuglibLLVMCore.lib;%LIBDIR%llvmdebuglibLLVMDebugInfo.lib;%LIBDIR%llvmdebuglibLLVMExecutionEngine.lib;%LIBDIR%llvmdebuglibLLVMInstCombine.lib;%LIBDIR%llvmdebuglibLLVMInstrumentation.lib;%LIBDIR%llvmdebuglibLLVMInterpreter.lib;%LIBDIR%llvmdebuglibLLVMJIT.lib;%LIBDIR%llvmdebuglibLLVMLinker.lib;%LIBDIR%llvmdebuglibLLVMMC.lib;%LIBDIR%llvmdebuglibLLVMMCDisassembler.lib;%LIBDIR%llvmdebuglibLLVMMCJIT.lib;%LIBDIR%llvmdebuglibLLVMMCParser.lib;%LIBDIR%llvmdebuglibLLVMObject.lib;%LIBDIR%llvmdebuglibLLVMRuntimeDyld.lib;%LIBDIR%llvmdebuglibLLVMScalarOpts.lib;%LIBDIR%llvmdebuglibLLVMSelectionDAG.lib;%LIBDIR%llvmdebuglibLLVMSupport.lib;%LIBDIR%llvmdebuglibLLVMTableGen.lib;%LIBDIR%llvmdebuglibLLVMTarget.lib;%LIBDIR%llvmdebuglibLLVMTransformUtils.lib;%LIBDIR%llvmdebuglibLLVMVectorize.lib;%LIBDIR%llvmdebuglibLLVMX86AsmParser.lib;%LIBDIR%llvmdebuglibLLVMX86AsmPrinter.lib;%LIBDIR%llvmdebuglibLLVMX86CodeGen.lib;%LIBDIR%llvmdebuglibLLVMX86Desc.lib;%LIBDIR%llvmdebuglibLLVMX86Disassembler.lib;%LIBDIR%llvmdebuglibLLVMX86Info.lib;%LIBDIR%llvmdebuglibLLVMX86Utils.lib;%LIBDIR%llvmdebuglibLLVMipa.lib;%LIBDIR%llvmdebuglibLLVMipo.lib

cd ......

对Release使用:

@Echo off

cd OpenShadingLanguage

set LIBDIR=%CD%....

:: create build directory
mkdir buildwindows
cd buildwindows

cmake -G "Visual Studio 9 2008" ....src ^
-DCMAKE_INSTALL_PREFIX=%LIBDIR%osl elease ^
-DCMAKE_CXX_FLAGS_DEBUG="/D_DEBUG /MTd /Zi /Ob0 /Od /RTC1" ^
-DCMAKE_CXX_FLAGS_MINSIZEREL="/MT /O1 /Ob1 /D NDEBUG" ^
-DCMAKE_CXX_FLAGS_RELEASE="/MT /O2 /Ob2 /D NDEBUG" ^
-DCMAKE_CXX_FLAGS_RELWITHDEBINFO="/MT /Zi /O2 /Ob1 /D NDEBUG" ^
-DCMAKE_CXX_STANDARD_LIBRARIES:STRING="kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib psapi.lib" ^
-DBUILDSTATIC=ON ^
-DILMBASE_HOME=%LIBDIR%openexr ^
-DOPENIMAGEIOHOME=%LIBDIR%openimageio ^
-DOPENIMAGEIO_LIBRARY=%LIBDIR%/openimageio/lib/OpenImageIO.lib;%LIBDIR%/png/lib/libpng.lib;%LIBDIR%/jpeg/lib/libjpeg.lib;%LIBDIR%/tiff/lib/libtiff.lib;%LIBDIR%/openexr/lib/Half.lib;%LIBDIR%/openexr/lib/Imath.lib;%LIBDIR%/openexr/lib/IlmImf.lib;%LIBDIR%/openexr/lib/Iex.lib;%LIBDIR%/openexr/lib/IlmThread.lib ^
-DBOOST_ROOT=%LIBDIR%oost ^
-DBoost_USE_STATIC_LIBS=ON ^
-DBoost_USE_STATIC_RUNTIME=ON ^
-DZLIB_INCLUDE_DIR=%LIBDIR%zlibinclude ^
-DZLIB_LIBRARY=%LIBDIR%zlibliblibz.lib ^
-DUSE_TBB=OFF ^
-DFLEX_EXECUTABLE=%LIBDIR%oslflex_bisoninwin_flex.exe ^
-DBISON_EXECUTABLE=%LIBDIR%oslflex_bisoninwin_bison.exe ^
-DLLVM_DIRECTORY=%LIBDIR%llvm ^
-DLLVM_INCLUDES=%LIBDIR%llvminclude ^
-DLLVM_LIB_DIR=%LIBDIR%llvmlib ^
-DLLVM_VERSION=3.2 ^
-DLLVM_LIBRARY=%LIBDIR%llvmlibLLVMAnalysis.lib;%LIBDIR%llvmlibLLVMArchive.lib;%LIBDIR%llvmlibLLVMAsmParser.lib;%LIBDIR%llvmlibLLVMAsmPrinter.lib;%LIBDIR%llvmlibLLVMBitReader.lib;%LIBDIR%llvmlibLLVMBitWriter.lib;%LIBDIR%llvmlibLLVMCodeGen.lib;%LIBDIR%llvmlibLLVMCore.lib;%LIBDIR%llvmlibLLVMDebugInfo.lib;%LIBDIR%llvmlibLLVMExecutionEngine.lib;%LIBDIR%llvmlibLLVMInstCombine.lib;%LIBDIR%llvmlibLLVMInstrumentation.lib;%LIBDIR%llvmlibLLVMInterpreter.lib;%LIBDIR%llvmlibLLVMJIT.lib;%LIBDIR%llvmlibLLVMLinker.lib;%LIBDIR%llvmlibLLVMMC.lib;%LIBDIR%llvmlibLLVMMCDisassembler.lib;%LIBDIR%llvmlibLLVMMCJIT.lib;%LIBDIR%llvmlibLLVMMCParser.lib;%LIBDIR%llvmlibLLVMObject.lib;%LIBDIR%llvmlibLLVMRuntimeDyld.lib;%LIBDIR%llvmlibLLVMScalarOpts.lib;%LIBDIR%llvmlibLLVMSelectionDAG.lib;%LIBDIR%llvmlibLLVMSupport.lib;%LIBDIR%llvmlibLLVMTableGen.lib;%LIBDIR%llvmlibLLVMTarget.lib;%LIBDIR%llvmlibLLVMTransformUtils.lib;%LIBDIR%llvmlibLLVMVectorize.lib;%LIBDIR%llvmlibLLVMX86AsmParser.lib;%LIBDIR%llvmlibLLVMX86AsmPrinter.lib;%LIBDIR%llvmlibLLVMX86CodeGen.lib;%LIBDIR%llvmlibLLVMX86Desc.lib;%LIBDIR%llvmlibLLVMX86Disassembler.lib;%LIBDIR%llvmlibLLVMX86Info.lib;%LIBDIR%llvmlibLLVMX86Utils.lib;%LIBDIR%llvmlibLLVMipa.lib;%LIBDIR%llvmlibLLVMipo.lib

cd ......

然后打开对应的项目文件,编译。

原文地址:https://www.cnblogs.com/len3d/p/3201882.html