# Contributor: Mark Riedesel # Maintainer: Mark Riedesel global pkgname := 'blender' global pkgver := '2.78c' global _pkgver := $(pkgver/[a-z]) global pkgrel := '0' global pkgdesc := '"3D Creation/Animation/Publishing System'" global url := '"http://www.blender.org/'" global arch := ''"" global license := '"GPL2'" global depends := ""blender-shared=$pkgver-r$pkgrel"" global makedepends := '"cmake libx11-dev jpeg-dev zlib-dev libpng-dev freetype-dev python3-dev openimageio-dev opencolorio-dev glew-dev openal-soft-dev ffmpeg-dev fftw-dev tiff-dev mesa-dev libxi-dev libsndfile-dev libxmu-dev boost-dev openexr-dev py-numpy-dev opensubdiv-dev'" global install := ''"" global subpackages := ""$pkgname-doc $pkgname-shared::noarch $pkgname-headless $pkgname-player py3-$pkgname:python"" global source := ""http://download.blender.org/source/$(pkgname)-$(pkgver).tar.gz blender-2.78a-musl.patch"" global builddir := ""$srcdir"/$pkgname-$pkgver" proc build { # Headless cd $builddir mkdir "$builddir"/build-headless cd "$builddir"/build-headless _build -C../build_files/cmake/config/blender_headless.cmake # Full cd $builddir mkdir "$builddir"/build-full cd "$builddir"/build-full _build -C../build_files/cmake/config/blender_full.cmake # Python module cd $builddir mkdir "$builddir"/build-py cd "$builddir"/build-py _build -C../build_files/cmake/config/bpy_module.cmake } proc _build { var PY_VERSION = $[python3 -c 'import sys; print("%i.%i" % (sys.version_info.major, sys.version_info.minor))] cmake .. $ifsjoin(Argv) \ -DCMAKE_INSTALL_PREFIX=/usr \ -DCMAKE_BUILD_TYPE=Release \ -DWITH_PYTHON_INSTALL:BOOL=OFF \ -DWITH_INSTALL_PORTABLE:BOOL=OFF \ -DWITH_OPENCOLORIO:BOOL=ON \ -DPYTHON_VERSION=$PY_VERSION \ -DPYTHON_LIBPATH=/usr/lib \ -DPYTHON_LIBRARY=python$(PY_VERSION)m \ -DPYTHON_INCLUDE_DIRS=/usr/include/python$(PY_VERSION)m \ -DNO_EXECINFO:BOOL=ON \ || return 1 make || return 1 } proc package { # Install headless files cd "$builddir"/build-headless make DESTDIR="$pkgdir"/headless install || return 1 # Rename the headless blender to blender-headless mkdir -p "$pkgdir"/usr/bin mv "$pkgdir"/headless/usr/bin/blender "$pkgdir"/usr/bin/blender-headless || return 1 rm -rf "$pkgdir"/headless # Install python module cd "$builddir"/build-py make DESTDIR="$pkgdir" install || return 1 # Install the full package cd "$builddir"/build-full make DESTDIR="$pkgdir" install || return 1 } proc shared { global pkgdesc := '"Blender shared runtime data and add-on scripts'" mkdir -p "$subpkgdir"/usr/share/ mv "$pkgdir"/usr/share/blender "$subpkgdir"/usr/share/ } proc headless { global pkgdesc := ""$pkgdesc (headless build)"" global depends := ""blender-shared=$pkgver-r$pkgrel"" mkdir -p "$subpkgdir"/usr/bin mv "$pkgdir"/usr/bin/blender-headless "$subpkgdir"/usr/bin/ } proc player { global pkgdesc := '"Blender player runtime'" mkdir -p "$subpkgdir"/usr/bin mv "$pkgdir"/usr/bin/blenderplayer "$subpkgdir"/usr/bin/ } proc python { var PY_VERSION = $[python3 -c 'import sys; print("%i.%i" % (sys.version_info.major, sys.version_info.minor))] global pkgdesc := '"Blender modules for Python 3'" mkdir -p "$subpkgdir"/usr/lib/python$(PY_VERSION)/site-packages mv "$pkgdir"/usr/lib/python$(PY_VERSION)/site-packages/bpy.so "$subpkgdir"/usr/lib/python$(PY_VERSION)/site-packages/ rm -rf "$pkgdir"/usr/lib # Symlink to the blender-shared files ln -s /usr/share/blender/$(_pkgver) "$subpkgdir"/usr/lib/python$(PY_VERSION)/site-packages/$(_pkgver) } global sha512sums := '"dee09e6ac19c4eeab71d64ad9581df1bb043a3de97586206b07aeb9aa55e68ecfc3a96d39835bcec20c72fb73a5eb418b349af7abe66d906a1e660caa1e4d267 blender-2.78c.tar.gz 47e8a6a017cea8c004d7e4205f201f167dd81ba95a4aadf9e55d01e81cc4a23e4d7f1d6aa7a6d1300fe3a5f5c98c664f584e7551fcde7fb1137147e2438f7ed5 blender-2.78a-musl.patch'" (CommandList children: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:pkgname) op:Equal rhs:{(blender)} spids:[6])] spids: [6] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:pkgver) op:Equal rhs:{(2.78c)} spids:[9])] spids: [9] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:_pkgver) op: Equal rhs: { (BracedVarSub token: suffix_op: (PatSub pat:{("[a-z]")} do_all:False do_prefix:False do_suffix:False) spids: [13 17] ) } spids: [12] ) ] spids: [12] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:pkgrel) op:Equal rhs:{(0)} spids:[19])] spids: [19] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:pkgdesc) op: Equal rhs: {(DQ ("3D Creation/Animation/Publishing System"))} spids: [22] ) ] spids: [22] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:url) op: Equal rhs: {(DQ ("http://www.blender.org/"))} spids: [27] ) ] spids: [27] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:arch) op:Equal rhs:{(DQ )} spids:[32])] spids: [32] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:license) op:Equal rhs:{(DQ (GPL2))} spids:[36])] spids: [36] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:depends) op: Equal rhs: {(DQ ("blender-shared=") ($ VSub_Name "$pkgver") (-r) ($ VSub_Name "$pkgrel"))} spids: [41] ) ] spids: [41] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:makedepends) op: Equal rhs: { (DQ ("cmake libx11-dev jpeg-dev zlib-dev libpng-dev freetype-dev python3-dev\n") ("\topenimageio-dev opencolorio-dev glew-dev openal-soft-dev ffmpeg-dev\n") ("\tfftw-dev tiff-dev mesa-dev libxi-dev libsndfile-dev libxmu-dev boost-dev\n") ("\topenexr-dev py-numpy-dev opensubdiv-dev") ) } spids: [49] ) ] spids: [49] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:install) op:Equal rhs:{(DQ )} spids:[57])] spids: [57] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:subpackages) op: Equal rhs: { (DQ ($ VSub_Name "$pkgname") ("-doc ") ($ VSub_Name "$pkgname") ("-shared::noarch ") ($ VSub_Name "$pkgname") ("-headless ") ($ VSub_Name "$pkgname") ("-player py3-") ($ VSub_Name "$pkgname") (":python") ) } spids: [61] ) ] spids: [61] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:source) op: Equal rhs: { (DQ ("http://download.blender.org/source/") (${ VSub_Name pkgname) (-) (${ VSub_Name pkgver) (".tar.gz\n") ("\tblender-2.78a-musl.patch") ) } spids: [75] ) ] spids: [75] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:builddir) op: Equal rhs: {(DQ ($ VSub_Name "$srcdir")) (/) ($ VSub_Name "$pkgname") (-) ($ VSub_Name "$pkgver")} spids: [90] ) ] spids: [90] ) (FuncDef name: build body: (BraceGroup children: [ (C {(cd)} {(DQ ($ VSub_Name "$builddir"))}) (C {(mkdir)} {(DQ ($ VSub_Name "$builddir")) (/build-headless)}) (C {(cd)} {(DQ ($ VSub_Name "$builddir")) (/build-headless)}) (C {(_build)} {(-C../build_files/cmake/config/blender_headless.cmake)}) (C {(cd)} {(DQ ($ VSub_Name "$builddir"))}) (C {(mkdir)} {(DQ ($ VSub_Name "$builddir")) (/build-full)}) (C {(cd)} {(DQ ($ VSub_Name "$builddir")) (/build-full)}) (C {(_build)} {(-C../build_files/cmake/config/blender_full.cmake)}) (C {(cd)} {(DQ ($ VSub_Name "$builddir"))}) (C {(mkdir)} {(DQ ($ VSub_Name "$builddir")) (/build-py)}) (C {(cd)} {(DQ ($ VSub_Name "$builddir")) (/build-py)}) (C {(_build)} {(-C../build_files/cmake/config/bpy_module.cmake)}) ] spids: [104] ) spids: [100 103] ) (FuncDef name: _build body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:PY_VERSION) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(python3)} {(-c)} { (SQ < "import sys; print(\"%i.%i\" % (sys.version_info.major, sys.version_info.minor))" > ) } ) ] ) left_token: spids: [218 226] ) } spids: [217] ) ] spids: [215] ) (AndOr children: [ (C {(cmake)} {(..)} {($ VSub_At "$@")} {(-DCMAKE_INSTALL_PREFIX) (Lit_Other "=") (/usr)} {(-DCMAKE_BUILD_TYPE) (Lit_Other "=") (Release)} {(-DWITH_PYTHON_INSTALL) (Lit_Other ":") (Lit_VarLike "BOOL=") (OFF)} {(-DWITH_INSTALL_PORTABLE) (Lit_Other ":") (Lit_VarLike "BOOL=") (OFF)} {(-DWITH_OPENCOLORIO) (Lit_Other ":") (Lit_VarLike "BOOL=") (ON)} {(-DPYTHON_VERSION) (Lit_Other "=") ($ VSub_Name "$PY_VERSION")} {(-DPYTHON_LIBPATH) (Lit_Other "=") (/usr/lib)} {(-DPYTHON_LIBRARY) (Lit_Other "=") (python) (${ VSub_Name PY_VERSION) (m)} {(-DPYTHON_INCLUDE_DIRS) (Lit_Other "=") (/usr/include/python) (${ VSub_Name PY_VERSION) (m)} {(-DNO_EXECINFO) (Lit_Other ":") (Lit_VarLike "BOOL=") (ON)} ) (ControlFlow token: arg_word:{(1)}) ] op_id: Op_DPipe ) (AndOr children: [(C {(make)}) (ControlFlow token: arg_word:{(1)})] op_id: Op_DPipe ) ] spids: [212] ) spids: [208 211] ) (FuncDef name: package body: (BraceGroup children: [ (C {(cd)} {(DQ ($ VSub_Name "$builddir")) (/build-headless)}) (AndOr children: [ (C {(make)} {(Lit_VarLike "DESTDIR=") (DQ ($ VSub_Name "$pkgdir")) (/headless)} {(install)} ) (ControlFlow token: arg_word:{(1)}) ] op_id: Op_DPipe ) (C {(mkdir)} {(-p)} {(DQ ($ VSub_Name "$pkgdir")) (/usr/bin)}) (AndOr children: [ (C {(mv)} {(DQ ($ VSub_Name "$pkgdir")) (/headless/usr/bin/blender)} {(DQ ($ VSub_Name "$pkgdir")) (/usr/bin/blender-headless)} ) (ControlFlow token: arg_word:{(1)}) ] op_id: Op_DPipe ) (C {(rm)} {(-rf)} {(DQ ($ VSub_Name "$pkgdir")) (/headless)}) (C {(cd)} {(DQ ($ VSub_Name "$builddir")) (/build-py)}) (AndOr children: [ (C {(make)} {(Lit_VarLike "DESTDIR=") (DQ ($ VSub_Name "$pkgdir"))} {(install)}) (ControlFlow token: arg_word:{(1)}) ] op_id: Op_DPipe ) (C {(cd)} {(DQ ($ VSub_Name "$builddir")) (/build-full)}) (AndOr children: [ (C {(make)} {(Lit_VarLike "DESTDIR=") (DQ ($ VSub_Name "$pkgdir"))} {(install)}) (ControlFlow token: arg_word:{(1)}) ] op_id: Op_DPipe ) ] spids: [333] ) spids: [329 332] ) (FuncDef name: shared body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:pkgdesc) op: Equal rhs: {(DQ ("Blender shared runtime data and add-on scripts"))} spids: [476] ) ] spids: [476] ) (C {(mkdir)} {(-p)} {(DQ ($ VSub_Name "$subpkgdir")) (/usr/share/)}) (C {(mv)} {(DQ ($ VSub_Name "$pkgdir")) (/usr/share/blender)} {(DQ ($ VSub_Name "$subpkgdir")) (/usr/share/)} ) ] spids: [473] ) spids: [469 472] ) (FuncDef name: headless body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:pkgdesc) op: Equal rhs: {(DQ ($ VSub_Name "$pkgdesc") (" (headless build)"))} spids: [514] ) ] spids: [514] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:depends) op: Equal rhs: {(DQ ("blender-shared=") ($ VSub_Name "$pkgver") (-r) ($ VSub_Name "$pkgrel"))} spids: [521] ) ] spids: [521] ) (C {(mkdir)} {(-p)} {(DQ ($ VSub_Name "$subpkgdir")) (/usr/bin)}) (C {(mv)} {(DQ ($ VSub_Name "$pkgdir")) (/usr/bin/blender-headless)} {(DQ ($ VSub_Name "$subpkgdir")) (/usr/bin/)} ) ] spids: [511] ) spids: [507 510] ) (FuncDef name: player body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:pkgdesc) op: Equal rhs: {(DQ ("Blender player runtime"))} spids: [562] ) ] spids: [562] ) (C {(mkdir)} {(-p)} {(DQ ($ VSub_Name "$subpkgdir")) (/usr/bin)}) (C {(mv)} {(DQ ($ VSub_Name "$pkgdir")) (/usr/bin/blenderplayer)} {(DQ ($ VSub_Name "$subpkgdir")) (/usr/bin/)} ) ] spids: [559] ) spids: [555 558] ) (FuncDef name: python body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:PY_VERSION) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(python3)} {(-c)} { (SQ < "import sys; print(\"%i.%i\" % (sys.version_info.major, sys.version_info.minor))" > ) } ) ] ) left_token: spids: [603 611] ) } spids: [602] ) ] spids: [600] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:pkgdesc) op: Equal rhs: {(DQ ("Blender modules for Python 3"))} spids: [615] ) ] spids: [615] ) (C {(mkdir)} {(-p)} {(DQ ($ VSub_Name "$subpkgdir")) (/usr/lib/python) (${ VSub_Name PY_VERSION) (/site-packages) } ) (C {(mv)} {(DQ ($ VSub_Name "$pkgdir")) (/usr/lib/python) (${ VSub_Name PY_VERSION) (/site-packages/bpy.so) } {(DQ ($ VSub_Name "$subpkgdir")) (/usr/lib/python) (${ VSub_Name PY_VERSION) (/site-packages/)} ) (C {(rm)} {(-rf)} {(DQ ($ VSub_Name "$pkgdir")) (/usr/lib)}) (C {(ln)} {(-s)} {(/usr/share/blender/) (${ VSub_Name _pkgver)} {(DQ ($ VSub_Name "$subpkgdir")) (/usr/lib/python) (${ VSub_Name PY_VERSION) (/site-packages/) (${ VSub_Name _pkgver) } ) ] spids: [597] ) spids: [593 596] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:sha512sums) op: Equal rhs: { (DQ ( "dee09e6ac19c4eeab71d64ad9581df1bb043a3de97586206b07aeb9aa55e68ecfc3a96d39835bcec20c72fb73a5eb418b349af7abe66d906a1e660caa1e4d267 blender-2.78c.tar.gz\n" ) ( "47e8a6a017cea8c004d7e4205f201f167dd81ba95a4aadf9e55d01e81cc4a23e4d7f1d6aa7a6d1300fe3a5f5c98c664f584e7551fcde7fb1137147e2438f7ed5 blender-2.78a-musl.patch" ) ) } spids: [695] ) ] spids: [695] ) ] )