Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrecht Van Lommel <brechtvanlommel@pandora.be>2012-11-15 21:16:27 +0400
committerBrecht Van Lommel <brechtvanlommel@pandora.be>2012-11-15 21:16:27 +0400
commit2324c80f50f9cb95435b66ea370d38fd9617760b (patch)
treee9fe125c911541a232ba868c138f8f44531af97c
parent1c9b548d92e8a76ac0a3c730bff5634d4628e971 (diff)
Cycles OSL: windows build system changes to support static OSL/OIIO.
-rw-r--r--CMakeLists.txt11
-rw-r--r--SConstruct4
-rw-r--r--build_files/cmake/macros.cmake6
-rw-r--r--build_files/scons/config/win32-vc-config.py2
-rw-r--r--intern/cycles/blender/addon/osl.py7
-rw-r--r--intern/cycles/kernel/shaders/CMakeLists.txt2
-rw-r--r--source/creator/CMakeLists.txt20
7 files changed, 26 insertions, 26 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 70a75773d16..45bc7a6d2fe 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 AND NOT WIN32)
+if(WITH_CYCLES_OSL)
set(WITH_LLVM ON CACHE BOOL "ON" FORCE)
endif()
@@ -942,6 +942,13 @@ elseif(WIN32)
endif()
endif()
+ if(WITH_LLVM)
+ set(LLVM_DIRECTORY ${LIBDIR}/llvm CACHE PATH "Path to the LLVM installation")
+ file(GLOB LLVM_LIBRARY ${LLVM_DIRECTORY}/lib/*.lib)
+ set(LLVM_STATIC YES)
+ endif()
+
+
if(MSVC)
set(PLATFORM_LINKLIBS ws2_32 vfw32 winmm kernel32 user32 gdi32 comdlg32 advapi32 shfolder shell32 ole32 oleaut32 uuid)
@@ -1675,7 +1682,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 AND NOT WIN32)
+ if(WITH_CYCLES_OSL)
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/SConstruct b/SConstruct
index 5e31fce00a4..bda361a0a9d 100644
--- a/SConstruct
+++ b/SConstruct
@@ -887,7 +887,9 @@ if env['OURPLATFORM'] in ('win32-vc', 'win32-mingw', 'win64-vc', 'linuxcross'):
dllsources.append('${LCGDIR}/thumbhandler/lib/BlendThumb64.dll')
if env['WITH_BF_OIIO'] and env['OURPLATFORM'] != 'win32-mingw':
- dllsources.append('${LCGDIR}/openimageio/bin/OpenImageIO.dll')
+ dllpath = '${LCGDIR}/openimageio/bin/OpenImageIO.dll'
+ if os.path.exists(env.subst(dllpath)):
+ dllsources.append(dllpath)
if env['WITH_BF_OCIO']:
if not env['OURPLATFORM'] in ('win32-mingw', 'linuxcross'):
diff --git a/build_files/cmake/macros.cmake b/build_files/cmake/macros.cmake
index 2d9de5a5792..4f1d34f993c 100644
--- a/build_files/cmake/macros.cmake
+++ b/build_files/cmake/macros.cmake
@@ -700,7 +700,11 @@ macro(delayed_install
destination)
foreach(f ${files})
- set_property(GLOBAL APPEND PROPERTY DELAYED_INSTALL_FILES ${base}/${f})
+ if(IS_ABSOLUTE ${f})
+ set_property(GLOBAL APPEND PROPERTY DELAYED_INSTALL_FILES ${f})
+ else()
+ set_property(GLOBAL APPEND PROPERTY DELAYED_INSTALL_FILES ${base}/${f})
+ endif()
set_property(GLOBAL APPEND PROPERTY DELAYED_INSTALL_DESTINATIONS ${destination})
endforeach()
endmacro()
diff --git a/build_files/scons/config/win32-vc-config.py b/build_files/scons/config/win32-vc-config.py
index be30053c314..74ae186d54b 100644
--- a/build_files/scons/config/win32-vc-config.py
+++ b/build_files/scons/config/win32-vc-config.py
@@ -217,7 +217,7 @@ C_WARN = []
CC_WARN = []
CXX_WARN = []
-LLIBS = ['ws2_32', 'vfw32', 'winmm', 'kernel32', 'user32', 'gdi32', 'comdlg32', 'advapi32', 'shfolder', 'shell32', 'ole32', 'oleaut32', 'uuid']
+LLIBS = ['ws2_32', 'vfw32', 'winmm', 'kernel32', 'user32', 'gdi32', 'comdlg32', 'advapi32', 'shfolder', 'shell32', 'ole32', 'oleaut32', 'uuid', 'psapi']
PLATFORM_LINKFLAGS = ['/SUBSYSTEM:CONSOLE','/MACHINE:IX86','/STACK:2097152','/INCREMENTAL:NO', '/LARGEADDRESSAWARE', '/NODEFAULTLIB:msvcrt.lib', '/NODEFAULTLIB:msvcmrt.lib', '/NODEFAULTLIB:msvcurt.lib', '/NODEFAULTLIB:msvcrtd.lib']
diff --git a/intern/cycles/blender/addon/osl.py b/intern/cycles/blender/addon/osl.py
index aac1e2422b9..79ce3df20c3 100644
--- a/intern/cycles/blender/addon/osl.py
+++ b/intern/cycles/blender/addon/osl.py
@@ -79,12 +79,13 @@ def update_script_node(node, report):
if script.is_in_memory or script.is_dirty or script.is_modified or not os.path.exists(osl_path):
# write text datablock contents to temporary file
- osl_file = tempfile.NamedTemporaryFile(mode='w', suffix=".osl", delete=True)
+ osl_file = tempfile.NamedTemporaryFile(mode='w', suffix=".osl", delete=False)
osl_file.write(script.as_string())
- osl_file.flush()
+ osl_file.close()
+
ok, oso_path = osl_compile(osl_file.name, report)
oso_file_remove = False
- osl_file.close()
+ os.remove(osl_file.name)
else:
# compile text datablock from disk directly
ok, oso_path = osl_compile(osl_path, report)
diff --git a/intern/cycles/kernel/shaders/CMakeLists.txt b/intern/cycles/kernel/shaders/CMakeLists.txt
index 4f5a97c1bb6..f7fec62fd6d 100644
--- a/intern/cycles/kernel/shaders/CMakeLists.txt
+++ b/intern/cycles/kernel/shaders/CMakeLists.txt
@@ -89,7 +89,7 @@ foreach(_file ${SRC_OSL})
list(APPEND SRC_OSO
${_OSO_FILE}
)
-
+
unset(_OSL_FILE)
unset(_OSO_FILE)
endforeach()
diff --git a/source/creator/CMakeLists.txt b/source/creator/CMakeLists.txt
index b61466e8fe2..4d1620a8bb8 100644
--- a/source/creator/CMakeLists.txt
+++ b/source/creator/CMakeLists.txt
@@ -621,11 +621,11 @@ elseif(WIN32)
)
if(WITH_OPENIMAGEIO)
- if(NOT MINGW)
- set(OIIOBIN ${LIBDIR}/openimageio/bin)
+ set(OIIODLL ${LIBDIR}/openimageio/bin/OpenImageIO.dll)
+ if(NOT MINGW AND EXISTS ${OIIODLL})
install(
FILES
- ${OIIOBIN}/OpenImageIO.dll
+ ${OIIODLL}
DESTINATION ${TARGETDIR}
)
endif()
@@ -648,20 +648,6 @@ 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"