summaryrefslogtreecommitdiff
path: root/community/openshadinglanguage
diff options
context:
space:
mode:
authorroot <root@rshg054.dnsready.net>2013-01-29 00:06:25 -0800
committerroot <root@rshg054.dnsready.net>2013-01-29 00:06:25 -0800
commit2cb7f65fb24926493d457f6931e421e27aa629da (patch)
treedfd419375945457b6b6dd74c280812f8e5533743 /community/openshadinglanguage
parent1b9f6dc846379470b620b5dbb9d4d7acd1de148c (diff)
Tue Jan 29 00:06:25 PST 2013
Diffstat (limited to 'community/openshadinglanguage')
-rw-r--r--community/openshadinglanguage/PKGBUILD43
-rw-r--r--community/openshadinglanguage/llvm32.patch71
2 files changed, 114 insertions, 0 deletions
diff --git a/community/openshadinglanguage/PKGBUILD b/community/openshadinglanguage/PKGBUILD
new file mode 100644
index 000000000..92df51c92
--- /dev/null
+++ b/community/openshadinglanguage/PKGBUILD
@@ -0,0 +1,43 @@
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+pkgname=openshadinglanguage
+pkgver=1.2.1
+pkgrel=1
+pkgdesc="Advanced shading language for production GI renderers"
+arch=(i686 x86_64)
+url="http://code.google.com/p/openshadinglanguage/"
+license=('custom')
+depends=('boost-libs' 'openimageio' 'openexr' 'llvm' 'intel-tbb' 'freetype2' 'libpng' 'libtiff')
+makedepends=('boost' 'cmake' 'clang')
+source=(https://github.com/imageworks/OpenShadingLanguage/archive/Release-${pkgver}.tar.gz
+ llvm32.patch)
+md5sums=('5635d0c3005d839b9590b49c20e8b821'
+ '3147f26453b28a971688ab6e54933449')
+
+build() {
+ cd OpenShadingLanguage-Release-$pkgver/src
+
+ patch -Np2 < $srcdir/llvm32.patch
+
+ [[ -d build ]] && rm -r build
+ mkdir build && cd build
+
+ cmake -DCMAKE_INSTALL_PREFIX=/usr ..
+ make
+}
+
+package() {
+ cd OpenShadingLanguage-Release-$pkgver/src/build
+
+ make DESTDIR="$pkgdir/" install
+
+ mkdir -p $pkgdir/usr/share/OSL/
+ mkdir -p $pkgdir/usr/share/licenses/$pkgname
+ ls $pkgdir/usr/LICENSE
+ ls $pkgdir/usr/share/licenses/$pkgname
+ mv $pkgdir/usr/LICENSE $pkgdir/usr/share/licenses/$pkgname
+ mv $pkgdir/usr/{CHANGES,README,INSTALL} $pkgdir/usr/share/OSL/
+ mv $pkgdir/usr/doc $pkgdir/usr/share/OSL/doc
+ mv $pkgdir/usr/shaders $pkgdir/usr/share/OSL/shaders
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/openshadinglanguage/llvm32.patch b/community/openshadinglanguage/llvm32.patch
new file mode 100644
index 000000000..5eb63bcf3
--- /dev/null
+++ b/community/openshadinglanguage/llvm32.patch
@@ -0,0 +1,71 @@
+commit c391ceb1936459b70147d6f8ac389ded26a7e028
+Author: Sven-Hendrik Haase <sh@lutzhaase.com>
+Date: Fri Dec 28 09:00:33 2012 +0100
+
+ Fix for LLVM 3.2
+
+diff --git a/src/liboslexec/llvm_headers.h b/src/liboslexec/llvm_headers.h
+index 41a7a11..5ff4384 100644
+--- a/src/liboslexec/llvm_headers.h
++++ b/src/liboslexec/llvm_headers.h
+@@ -45,10 +45,18 @@ namespace llvm = LLVM_NAMESPACE;
+ #include <llvm/LLVMContext.h>
+ #include <llvm/Module.h>
+ #include <llvm/PassManager.h>
++#if OSL_LLVM_VERSION >= 32
++#include <llvm/IRBuilder.h>
++#else
+ #include <llvm/Support/IRBuilder.h>
++#endif
+ #include <llvm/Support/ManagedStatic.h>
+ #include <llvm/Support/MemoryBuffer.h>
+ #include <llvm/Support/raw_ostream.h>
++#if OSL_LLVM_VERSION >= 32
++#include <llvm/DataLayout.h>
++#else
+ #include <llvm/Target/TargetData.h>
++#endif
+
+ #endif /* OSL_LLVM_HEADERS_H */
+diff --git a/src/liboslexec/llvm_instance.cpp b/src/liboslexec/llvm_instance.cpp
+index 8709c8b..3e42557 100644
+--- a/src/liboslexec/llvm_instance.cpp
++++ b/src/liboslexec/llvm_instance.cpp
+@@ -1273,13 +1273,21 @@ RuntimeOptimizer::llvm_setup_optimization_passes ()
+ //
+ m_llvm_func_passes = new llvm::FunctionPassManager(llvm_module());
+ llvm::FunctionPassManager &fpm (*m_llvm_func_passes);
++#if OSL_LLVM_VERSION >= 32
++ fpm.add (new llvm::DataLayout(llvm_module()));
++#else
+ fpm.add (new llvm::TargetData(llvm_module()));
++#endif
+
+ // Specify module-wide (interprocedural optimization) passes
+ //
+ m_llvm_passes = new llvm::PassManager;
+ llvm::PassManager &passes (*m_llvm_passes);
++#if OSL_LLVM_VERSION >= 32
++ passes.add (new llvm::DataLayout(llvm_module()));
++#else
+ passes.add (new llvm::TargetData(llvm_module()));
++#endif
+
+ if (shadingsys().llvm_optimize() >= 1 && shadingsys().llvm_optimize() <= 3) {
+ // For LLVM 3.0 and higher, llvm_optimize 1-3 means to use the
+diff --git a/src/liboslexec/llvm_util.cpp b/src/liboslexec/llvm_util.cpp
+index 135da2e..4e0eefe 100644
+--- a/src/liboslexec/llvm_util.cpp
++++ b/src/liboslexec/llvm_util.cpp
+@@ -42,7 +42,11 @@ namespace pvt {
+ llvm::Type *
+ RuntimeOptimizer::llvm_type_union(const std::vector<llvm::Type *> &types)
+ {
++#if OSL_LLVM_VERSION >= 32
++ llvm::DataLayout target(llvm_module());
++#else
+ llvm::TargetData target(llvm_module());
++#endif
+ size_t max_size = 0;
+ size_t max_align = 1;
+ for (size_t i = 0; i < types.size(); ++i) {