diff -Naur OpenShadingLanguage-1.12.6.2/CMakeLists.txt external_osl/CMakeLists.txt --- OpenShadingLanguage-1.12.6.2/CMakeLists.txt 2022-09-30 17:43:53 -0600 +++ external_osl/CMakeLists.txt 2022-10-15 14:49:26 -0600 @@ -101,6 +101,11 @@ CACHE STRING "Directory where OptiX PTX files will be installed") set (CMAKE_DEBUG_POSTFIX "" CACHE STRING "Library naming postfix for Debug builds (e.g., '_debug')") +set (USE_OIIO_STATIC ON CACHE BOOL "If OIIO is built static") +if (USE_OIIO_STATIC) + add_definitions ("-DOIIO_STATIC_BUILD=1") + add_definitions ("-DOIIO_STATIC_DEFINE=1") +endif () set (OSL_NO_DEFAULT_TEXTURESYSTEM OFF CACHE BOOL "Do not use create a raw OIIO::TextureSystem") if (OSL_NO_DEFAULT_TEXTURESYSTEM) diff -Naur OpenShadingLanguage-1.12.6.2/src/cmake/externalpackages.cmake external_osl/src/cmake/externalpackages.cmake --- OpenShadingLanguage-1.12.6.2/src/cmake/externalpackages.cmake 2022-09-30 17:43:53 -0600 +++ external_osl/src/cmake/externalpackages.cmake 2022-10-15 14:49:26 -0600 @@ -77,6 +77,7 @@ checked_find_package (ZLIB REQUIRED) # Needed by several packages +checked_find_package (PNG REQUIRED) # Needed since OIIO needs it # IlmBase & OpenEXR checked_find_package (OpenEXR REQUIRED diff -Naur OpenShadingLanguage-1.12.6.2/src/include/OSL/llvm_util.h external_osl/src/include/OSL/llvm_util.h --- OpenShadingLanguage-1.12.6.2/src/include/OSL/llvm_util.h 2022-09-30 17:43:53 -0600 +++ external_osl/src/include/OSL/llvm_util.h 2022-10-15 15:37:24 -0600 @@ -9,6 +9,8 @@ #include #include +#define OSL_HAS_BLENDER_CLEANUP_FIX + #ifdef LLVM_NAMESPACE namespace llvm = LLVM_NAMESPACE; #endif @@ -101,6 +103,6 @@ ScopedJitMemoryUser(); ~ScopedJitMemoryUser(); }; - + static void Cleanup (); /// Set debug level void debug(int d) { m_debug = d; } diff -Naur OpenShadingLanguage-1.12.6.2/src/liboslcomp/oslcomp.cpp external_osl/src/liboslcomp/oslcomp.cpp --- OpenShadingLanguage-1.12.6.2/src/liboslcomp/oslcomp.cpp 2022-09-30 17:43:53 -0600 +++ external_osl/src/liboslcomp/oslcomp.cpp 2022-10-15 14:49:26 -0600 @@ -21,6 +21,13 @@ #if !defined(__STDC_CONSTANT_MACROS) # define __STDC_CONSTANT_MACROS 1 #endif + +// clang uses CALLBACK in its templates which causes issues if it is already defined +#ifdef _WIN32 && defined(CALLBACK) +# undef CALLBACK +#endif + +// #include #include #include diff -Naur OpenShadingLanguage-1.12.6.2/src/liboslexec/llvm_util.cpp external_osl/src/liboslexec/llvm_util.cpp --- OpenShadingLanguage-1.12.6.2/src/liboslexec/llvm_util.cpp 2022-09-30 17:43:53 -0600 +++ external_osl/src/liboslexec/llvm_util.cpp 2022-10-15 15:53:11 -0600 @@ -182,6 +180,13 @@ ++jit_mem_hold_users; } +void +LLVM_Util::Cleanup() +{ + if (jitmm_hold) + jitmm_hold->clear(); +} + LLVM_Util::ScopedJitMemoryUser::~ScopedJitMemoryUser() {