mirror of
https://github.com/archlinuxarm/PKGBUILDs.git
synced 2024-11-28 22:57:37 +00:00
added community/openshadinglanguage
This commit is contained in:
parent
004af38b32
commit
df4decaaf4
2 changed files with 119 additions and 0 deletions
48
community/openshadinglanguage/PKGBUILD
Normal file
48
community/openshadinglanguage/PKGBUILD
Normal file
|
@ -0,0 +1,48 @@
|
|||
# $Id: PKGBUILD 88615 2013-04-20 16:45:08Z heftig $
|
||||
# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
|
||||
|
||||
# ALARM: Kevin Mihelich <kevin@archlinuxarm.org>
|
||||
# - removed intel-tbb from deps, set -DUSE_TBB=0
|
||||
|
||||
pkgname=openshadinglanguage
|
||||
pkgver=1.3.0
|
||||
pkgrel=4
|
||||
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' 'freetype2' 'libpng' 'libtiff')
|
||||
makedepends=('boost' 'cmake' 'clang')
|
||||
source=(https://github.com/imageworks/OpenShadingLanguage/archive/Release-${pkgver}.tar.gz)
|
||||
md5sums=('1e8c47475cb092cec0aada843b2893ed')
|
||||
|
||||
build() {
|
||||
cd OpenShadingLanguage-Release-$pkgver/src
|
||||
|
||||
[[ -d build ]] && rm -r build
|
||||
mkdir build && cd build
|
||||
|
||||
# TODO: Remove LLVM_STATIC with llvm 3.3 when we'll have shared libs
|
||||
# Check blender for crash with llvm pipe (run LIBGL_ALWAYS_SOFTWARE=1 blender)
|
||||
cmake \
|
||||
-DCMAKE_INSTALL_PREFIX=/usr \
|
||||
-DLLVM_STATIC=ON \
|
||||
-DUSE_TBB=0 \
|
||||
..
|
||||
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:
|
71
community/openshadinglanguage/llvm32.patch
Normal file
71
community/openshadinglanguage/llvm32.patch
Normal file
|
@ -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) {
|
Loading…
Reference in a new issue