summaryrefslogtreecommitdiff
path: root/community/openshadinglanguage
diff options
context:
space:
mode:
authorroot <root@rshg054.dnsready.net>2013-07-19 01:10:32 -0700
committerroot <root@rshg054.dnsready.net>2013-07-19 01:10:32 -0700
commit8fbc0076a4827ddc6af92e0b9daa4c4c31450808 (patch)
tree03fd0e2921ebd53228d9a93e32ed3976b636cbea /community/openshadinglanguage
parente445a313723389ba9ee1fded025c567dae5b21ea (diff)
Fri Jul 19 01:09:18 PDT 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..fc56c8211
--- /dev/null
+++ b/community/openshadinglanguage/PKGBUILD
@@ -0,0 +1,43 @@
+# $Id: PKGBUILD 94175 2013-07-15 22:55:05Z svenstaro $
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+pkgname=openshadinglanguage
+pkgver=1.3.3
+pkgrel=3
+pkgdesc="Advanced shading language for production GI renderers"
+arch=(i686 x86_64)
+url="https://github.com/imageworks/OpenShadingLanguage"
+license=('custom')
+depends=('boost-libs' 'openimageio' 'openexr' 'intel-tbb' 'freetype2' 'libpng' 'libtiff' 'llvm')
+makedepends=('boost' 'cmake' 'clang')
+source=(https://github.com/imageworks/OpenShadingLanguage/archive/Release-${pkgver}.tar.gz)
+md5sums=('17aaa01987963220e164522c29281f14')
+
+build() {
+ cd OpenShadingLanguage-Release-$pkgver
+
+ cd src
+
+ [[ -d build ]] && rm -r build
+ mkdir build && cd build
+
+ cmake \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DLLVM_STATIC=1 \
+ ..
+ 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
+ mv "$pkgdir"/usr/LICENSE "$pkgdir"/usr/share/licenses/$pkgname # TODO: Tell upstream about this shit
+ mv "$pkgdir"/usr/{CHANGES,README.md,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) {