From 71389d4d74fd1e632ff0e23416d33ca5e63c609d Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Wed, 14 Nov 2012 17:18:47 +0000 Subject: Cycles OSL: windows build fixes. --- CMakeLists.txt | 8 ++++---- intern/cycles/kernel/kernel_accumulate.h | 4 ---- intern/cycles/util/util_thread.h | 6 +----- source/creator/CMakeLists.txt | 18 ++++++++++++++++-- 4 files changed, 21 insertions(+), 15 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 1e5f62355af..70a75773d16 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -403,7 +403,7 @@ if(WITH_CYCLES OR WITH_MOD_BOOLEAN OR WITH_AUDASPACE OR WITH_INTERNATIONAL) endif() # auto enable llvm for cycles_osl -if(WITH_CYCLES_OSL) +if(WITH_CYCLES_OSL AND NOT WIN32) set(WITH_LLVM ON CACHE BOOL "ON" FORCE) endif() @@ -928,7 +928,6 @@ elseif(WIN32) find_library(OSL_LIB_EXEC NAMES oslexec PATHS ${CYCLES_OSL}/lib) find_library(OSL_LIB_COMP NAMES oslcomp PATHS ${CYCLES_OSL}/lib) find_library(OSL_LIB_QUERY NAMES oslquery PATHS ${CYCLES_OSL}/lib) - # WARNING! depends on correct order of OSL libs linking list(APPEND OSL_LIBRARIES ${OSL_LIB_COMP} ${OSL_LIB_EXEC} ${OSL_LIB_QUERY}) find_path(OSL_INCLUDES OSL/oslclosure.h PATHS ${CYCLES_OSL}/include) find_program(OSL_COMPILER NAMES oslc PATHS ${CYCLES_OSL}/bin) @@ -1139,7 +1138,7 @@ elseif(WIN32) set(OPENIMAGEIO_INCLUDE_DIRS ${OPENIMAGEIO}/include) set(OPENIMAGEIO_LIBRARIES OpenImageIO) set(OPENIMAGEIO_LIBPATH ${OPENIMAGEIO}/lib) - set(OPENIMAGEIO_DEFINITIONS) + set(OPENIMAGEIO_DEFINITIONS "-DUSE_TBB=0") endif() if(WITH_OPENCOLORIO) @@ -1150,6 +1149,7 @@ elseif(WIN32) set(OPENCOLORIO_DEFINITIONS) endif() + set(PLATFORM_LINKFLAGS "/SUBSYSTEM:CONSOLE /STACK:2097152 /INCREMENTAL:NO /NODEFAULTLIB:msvcrt.lib /NODEFAULTLIB:msvcmrt.lib /NODEFAULTLIB:msvcurt.lib /NODEFAULTLIB:msvcrtd.lib") # MSVC only, Mingw doesnt need @@ -1675,7 +1675,7 @@ if(WITH_CYCLES) message(FATAL_ERROR "Cycles reqires WITH_BOOST, the library may not have been found. Configure BOOST or disable WITH_CYCLES") endif() - if(WITH_CYCLES_OSL) + if(WITH_CYCLES_OSL AND NOT WIN32) if(NOT WITH_LLVM) message(FATAL_ERROR "Cycles OSL reqires WITH_LLVM, the library may not have been found. Configure LLVM or disable WITH_CYCLES_OSL") endif() diff --git a/intern/cycles/kernel/kernel_accumulate.h b/intern/cycles/kernel/kernel_accumulate.h index 2f2314c9a8b..d99beb8905a 100644 --- a/intern/cycles/kernel/kernel_accumulate.h +++ b/intern/cycles/kernel/kernel_accumulate.h @@ -301,10 +301,6 @@ __device_inline float3 path_radiance_sum(KernelGlobals *kg, PathRadiance *L) __device_inline void path_radiance_clamp(PathRadiance *L, float3 *L_sum, float clamp) { - #ifdef __OSL__ - using std::isfinite; - #endif - float sum = fabsf((*L_sum).x) + fabsf((*L_sum).y) + fabsf((*L_sum).z); if(!isfinite(sum)) { diff --git a/intern/cycles/util/util_thread.h b/intern/cycles/util/util_thread.h index 843764ca9d6..751d22b2f63 100644 --- a/intern/cycles/util/util_thread.h +++ b/intern/cycles/util/util_thread.h @@ -75,7 +75,7 @@ protected: * Boost implementation is a bit slow, and Mac OS X __thread is not supported * but the pthreads implementation is optimized, so we use these macros. */ -#ifdef __APPLE__ +#if defined(__APPLE__) || defined(_WIN32) #define tls_ptr(type, name) \ pthread_key_t name @@ -90,10 +90,6 @@ protected: #else -#ifdef __WIN32 -#define __thread __declspec(thread) -#endif - #define tls_ptr(type, name) \ __thread type *name #define tls_set(name, value) \ diff --git a/source/creator/CMakeLists.txt b/source/creator/CMakeLists.txt index 9087d106f96..b61466e8fe2 100644 --- a/source/creator/CMakeLists.txt +++ b/source/creator/CMakeLists.txt @@ -622,10 +622,10 @@ elseif(WIN32) if(WITH_OPENIMAGEIO) if(NOT MINGW) - set(OIIOBIN ${LIBDIR}/openimageio) + set(OIIOBIN ${LIBDIR}/openimageio/bin) install( FILES - ${OIIOBIN}/bin/OpenImageIO.dll + ${OIIOBIN}/OpenImageIO.dll DESTINATION ${TARGETDIR} ) endif() @@ -648,6 +648,20 @@ elseif(WIN32) endif() endif() + if(WITH_CYCLES AND WITH_CYCLES_OSL) + if(NOT MINGW) + set(OSLBIN ${LIBDIR}/osl/bin) + install( + FILES + ${OSLBIN}/oslexec.dll + ${OSLBIN}/oslquery.dll + ${OSLBIN}/oslcomp.dll + DESTINATION ${TARGETDIR} + ) + endif() + endif() + + elseif(APPLE) # handy install macro to exclude files, we use \$ escape for the "to" -- cgit v1.2.3