summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBernd Waibel <waebbl@gmail.com>2017-11-14 21:43:10 +0100
committerPatrice Clement <monsieurp@gentoo.org>2017-12-16 13:59:34 +0100
commit146cec1dd3c1b1aaa56d945f049d4fc935010ed9 (patch)
tree34da7994a5d5032560be42d1a4b30f117c623e92 /media-gfx/alembic
parentdev-python/pyilmbase: new package. (diff)
downloadgentoo-146cec1dd3c1b1aaa56d945f049d4fc935010ed9.tar.gz
gentoo-146cec1dd3c1b1aaa56d945f049d4fc935010ed9.tar.bz2
gentoo-146cec1dd3c1b1aaa56d945f049d4fc935010ed9.zip
media-gfx/alembic: new package.
Alembic is an open framework for storing and sharing scene data. Closes: https://bugs.gentoo.org/634966 Closes: https://github.com/gentoo/gentoo/pull/6083 Package-Manager: Portage-2.3.14, Repoman-2.3.5
Diffstat (limited to 'media-gfx/alembic')
-rw-r--r--media-gfx/alembic/Manifest1
-rw-r--r--media-gfx/alembic/alembic-1.7.4.ebuild100
-rw-r--r--media-gfx/alembic/files/alembic-CMakeLists-fix_lib.patch132
-rw-r--r--media-gfx/alembic/files/alembic-FindIlmBase-pkgconfig.patch28
-rw-r--r--media-gfx/alembic/files/alembic-fix-importerror.patch17
-rw-r--r--media-gfx/alembic/metadata.xml27
6 files changed, 305 insertions, 0 deletions
diff --git a/media-gfx/alembic/Manifest b/media-gfx/alembic/Manifest
new file mode 100644
index 000000000000..84e5a72ffb7e
--- /dev/null
+++ b/media-gfx/alembic/Manifest
@@ -0,0 +1 @@
+DIST alembic-1.7.4.tar.gz 805503 BLAKE2B b8a8b986d0323dbe3748e1dde5436d66e08620a28852c3331ee612d43a414e381a1cdbbb63200b8f146ce94ebb0e3d0ae6f70f33575bd9ff25e9121f2cd73d1a SHA512 8e752d6d85bea3b6a53582d35a589fc40824456098d950974effe0a6a0e359fec1e056af1ea1379f7e23b7ffed2c05c7f5269fa4b64757631b7d57fb60ee98b0
diff --git a/media-gfx/alembic/alembic-1.7.4.ebuild b/media-gfx/alembic/alembic-1.7.4.ebuild
new file mode 100644
index 000000000000..1c14f809024c
--- /dev/null
+++ b/media-gfx/alembic/alembic-1.7.4.ebuild
@@ -0,0 +1,100 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+PYTHON_COMPAT=( python2_7 )
+
+inherit eutils python-single-r1 cmake-utils
+
+DESCRIPTION="Alembic is an open framework for storing and sharing scene data"
+HOMEPAGE="http://alembic.io/"
+SRC_URI="https://github.com/${PN}/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="+boost doc hdf5 pyalembic test +zlib"
+
+REQUIRED_USE="
+ ${PYTHON_REQUIRED_USE}
+ hdf5? ( zlib )
+ pyalembic? ( boost )"
+
+DEPEND="
+ ${PYTHON_DEP}
+ >=dev-util/cmake-3.7.2
+ boost? ( >=dev-libs/boost-1.62.0-r1 )
+ doc? ( >=app-doc/doxygen-1.8.13-r1 )
+ pyalembic? ( >=dev-python/pyilmbase-2.2.0 )"
+
+RDEPEND="
+ ${PYTHON_DEP}
+ >=media-libs/openexr-2.2.0-r2
+ hdf5? ( >=sci-libs/hdf5-1.8.18[zlib(+)] )
+ zlib? ( >=sys-libs/zlib-1.2.11-r1 )"
+
+DOCS=( ACKNOWLEDGEMENTS.txt FEEDBACK.txt NEWS.txt README.txt )
+
+PATCHES=(
+ "${FILESDIR}/${PN}-FindIlmBase-pkgconfig.patch"
+ "${FILESDIR}/${PN}-CMakeLists-fix_lib.patch"
+)
+
+pkg_setup() {
+ python-single-r1_pkg_setup
+}
+
+src_prepare() {
+ cmake-utils_src_prepare
+}
+
+# Static linking, the use of tr1 and support for prman might be added
+# in the future.
+src_configure() {
+ # I don't have a license for arnold renderer or maya so I disable them
+ # as default.
+ # Also I'm currently not using renderman, so I disable the prman flag
+ # by default too.
+ local mycmakeargs=(
+ -DUSE_ARNOLD=OFF
+ -DUSE_BINARIES=ON
+ -DUSE_EXAMPLES=OFF
+ -DUSE_HDF5=$(usex hdf5)
+ -DUSE_MAYA=OFF
+ -DUSE_PRMAN=OFF
+ -DUSE_PYALEMBIC=$(usex pyalembic)
+ -DUSE_STATIC_BOOST=OFF # I won't use static libraries
+ -DUSE_STATIC_HDF5=OFF
+ -DUSE_TESTS=$(usex test)
+ -DALEMBIC_ILMBASE_LINK_STATIC=OFF # I don't want to link statically against ilmbase
+ -DALEMBIC_SHARED_LIBS=ON # For now let's ignore building static libraries
+ -DALEMBIC_LIB_USES_BOOST=$(usex boost)
+ -DALEMBIC_LIB_USES_TR1=$(usex !boost)
+ )
+ cmake-utils_src_configure
+}
+
+src_compile() {
+ cmake-utils_src_compile
+ if use doc; then
+ doxygen -u Doxyfile
+ doxygen Doxyfile
+ fi
+}
+
+src_test() {
+ if use test; then
+ cmake-utils_src_test
+ fi
+}
+
+src_install() {
+ DESTDIR="${D}" cmake-utils_src_install
+ if use doc; then
+ dodoc -r "doc/html"
+ fi
+
+ # move the cmake files from lib->lib64
+ mv "${D}/usr/lib/cmake" "${D}/usr/lib64/cmake" || die
+ rm -rv "${D}/usr/lib" || die
+}
diff --git a/media-gfx/alembic/files/alembic-CMakeLists-fix_lib.patch b/media-gfx/alembic/files/alembic-CMakeLists-fix_lib.patch
new file mode 100644
index 000000000000..c653927ecbe1
--- /dev/null
+++ b/media-gfx/alembic/files/alembic-CMakeLists-fix_lib.patch
@@ -0,0 +1,132 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index d84f002..a35b662 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -79,12 +79,12 @@ OPTION(ALEMBIC_LIB_USES_TR1
+
+ # Set static/dynamic build options
+ SET(LIB_TYPE STATIC)
+-SET(RUNTIME_INSTALL_DIR lib)
+-SET(LIBRARY_INSTALL_DIR lib)
+-SET(ARCHIVE_INSTALL_DIR lib)
++SET(RUNTIME_INSTALL_DIR lib64)
++SET(LIBRARY_INSTALL_DIR lib64)
++SET(ARCHIVE_INSTALL_DIR lib64)
+ IF (ALEMBIC_SHARED_LIBS)
+ SET(LIB_TYPE SHARED)
+- SET(ARCHIVE_INSTALL_DIR lib)
++ SET(ARCHIVE_INSTALL_DIR lib64)
+ IF (WIN32)
+ ADD_DEFINITIONS(-DALEMBIC_DLL)
+ ENDIF()
+diff --git a/bin/AbcConvert/CMakeLists.txt b/bin/AbcConvert/CMakeLists.txt
+index 3725ed7..edea767 100644
+--- a/bin/AbcConvert/CMakeLists.txt
++++ b/bin/AbcConvert/CMakeLists.txt
+@@ -38,6 +38,6 @@ TARGET_LINK_LIBRARIES(abcconvert Alembic)
+
+ set_target_properties(abcconvert PROPERTIES
+ INSTALL_RPATH_USE_LINK_PATH TRUE
+- INSTALL_RPATH ${CMAKE_INSTALL_PREFIX}/lib)
++ INSTALL_RPATH ${CMAKE_INSTALL_PREFIX}/lib64)
+
+ INSTALL(TARGETS abcconvert DESTINATION bin)
+diff --git a/bin/AbcDiff/CMakeLists.txt b/bin/AbcDiff/CMakeLists.txt
+index e2fd355..2234650 100644
+--- a/bin/AbcDiff/CMakeLists.txt
++++ b/bin/AbcDiff/CMakeLists.txt
+@@ -38,6 +38,6 @@ TARGET_LINK_LIBRARIES(abcdiff Alembic)
+
+ set_target_properties(abcdiff PROPERTIES
+ INSTALL_RPATH_USE_LINK_PATH TRUE
+- INSTALL_RPATH ${CMAKE_INSTALL_PREFIX}/lib)
++ INSTALL_RPATH ${CMAKE_INSTALL_PREFIX}/lib64)
+
+ INSTALL(TARGETS abcdiff DESTINATION bin)
+diff --git a/bin/AbcEcho/CMakeLists.txt b/bin/AbcEcho/CMakeLists.txt
+index 396226e..116c122 100644
+--- a/bin/AbcEcho/CMakeLists.txt
++++ b/bin/AbcEcho/CMakeLists.txt
+@@ -41,6 +41,6 @@ TARGET_LINK_LIBRARIES(abcechobounds Alembic)
+
+ set_target_properties(abcecho abcechobounds PROPERTIES
+ INSTALL_RPATH_USE_LINK_PATH TRUE
+- INSTALL_RPATH ${CMAKE_INSTALL_PREFIX}/lib)
++ INSTALL_RPATH ${CMAKE_INSTALL_PREFIX}/lib64)
+
+ INSTALL(TARGETS abcecho abcechobounds DESTINATION bin)
+diff --git a/bin/AbcLs/CMakeLists.txt b/bin/AbcLs/CMakeLists.txt
+index 1dbeb9d..7b721d0 100644
+--- a/bin/AbcLs/CMakeLists.txt
++++ b/bin/AbcLs/CMakeLists.txt
+@@ -39,6 +39,6 @@ TARGET_LINK_LIBRARIES(abcls Alembic)
+
+ set_target_properties(abcls PROPERTIES
+ INSTALL_RPATH_USE_LINK_PATH TRUE
+- INSTALL_RPATH ${CMAKE_INSTALL_PREFIX}/lib)
++ INSTALL_RPATH ${CMAKE_INSTALL_PREFIX}/lib64)
+
+ INSTALL(TARGETS abcls DESTINATION bin)
+diff --git a/bin/AbcStitcher/CMakeLists.txt b/bin/AbcStitcher/CMakeLists.txt
+index 3106bf2..0c8a205 100644
+--- a/bin/AbcStitcher/CMakeLists.txt
++++ b/bin/AbcStitcher/CMakeLists.txt
+@@ -38,6 +38,6 @@ TARGET_LINK_LIBRARIES(abcstitcher Alembic)
+
+ set_target_properties(abcstitcher PROPERTIES
+ INSTALL_RPATH_USE_LINK_PATH TRUE
+- INSTALL_RPATH ${CMAKE_INSTALL_PREFIX}/lib)
++ INSTALL_RPATH ${CMAKE_INSTALL_PREFIX}/lib64)
+
+ INSTALL(TARGETS abcstitcher DESTINATION bin)
+diff --git a/bin/AbcTree/CMakeLists.txt b/bin/AbcTree/CMakeLists.txt
+index 3c41004..de7c7fc 100644
+--- a/bin/AbcTree/CMakeLists.txt
++++ b/bin/AbcTree/CMakeLists.txt
+@@ -38,6 +38,6 @@ TARGET_LINK_LIBRARIES(abctree Alembic)
+
+ set_target_properties(abctree PROPERTIES
+ INSTALL_RPATH_USE_LINK_PATH TRUE
+- INSTALL_RPATH ${CMAKE_INSTALL_PREFIX}/lib)
++ INSTALL_RPATH ${CMAKE_INSTALL_PREFIX}/lib64)
+
+ INSTALL(TARGETS abctree DESTINATION bin)
+diff --git a/lib/Alembic/CMakeLists.txt b/lib/Alembic/CMakeLists.txt
+index 3e16518..b07cb7d 100644
+--- a/lib/Alembic/CMakeLists.txt
++++ b/lib/Alembic/CMakeLists.txt
+@@ -86,9 +86,9 @@ ENDIF()
+
+ INSTALL(TARGETS Alembic
+ EXPORT AlembicTargets
+- LIBRARY DESTINATION lib
+- ARCHIVE DESTINATION lib
+- RUNTIME DESTINATION lib)
++ LIBRARY DESTINATION lib64
++ ARCHIVE DESTINATION lib64
++ RUNTIME DESTINATION lib64)
+
+ #-******************************************************************************
+ # PACKAGE EXPORTS
+diff --git a/python/PyAlembic/CMakeLists.txt b/python/PyAlembic/CMakeLists.txt
+index 06daf30..254ca2b 100644
+--- a/python/PyAlembic/CMakeLists.txt
++++ b/python/PyAlembic/CMakeLists.txt
+@@ -128,7 +128,7 @@ IF (Boost_PYTHON_LIBRARY AND ALEMBIC_PYTHON_LIBRARY)
+ )
+
+ INSTALL (TARGETS alembic
+- DESTINATION lib/python${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}/site-packages
++ DESTINATION lib64/python${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}/site-packages
+ )
+
+ IF (USE_TESTS)
+@@ -137,7 +137,7 @@ IF (Boost_PYTHON_LIBRARY AND ALEMBIC_PYTHON_LIBRARY)
+
+ set_target_properties(alembic PROPERTIES
+ INSTALL_RPATH_USE_LINK_PATH TRUE
+- INSTALL_RPATH ${CMAKE_INSTALL_PREFIX}/lib)
++ INSTALL_RPATH ${CMAKE_INSTALL_PREFIX}/lib64)
+ ELSE()
+ MESSAGE(FATAL_ERROR "Unable to find Python libs")
+ ENDIF()
diff --git a/media-gfx/alembic/files/alembic-FindIlmBase-pkgconfig.patch b/media-gfx/alembic/files/alembic-FindIlmBase-pkgconfig.patch
new file mode 100644
index 000000000000..b291e839e8c9
--- /dev/null
+++ b/media-gfx/alembic/files/alembic-FindIlmBase-pkgconfig.patch
@@ -0,0 +1,28 @@
+diff --git a/cmake/Modules/FindIlmBase.cmake b/cmake/Modules/FindIlmBase.cmake
+index dac8659..e7beb59 100644
+--- a/cmake/Modules/FindIlmBase.cmake
++++ b/cmake/Modules/FindIlmBase.cmake
+@@ -52,7 +52,7 @@ IF(NOT DEFINED ILMBASE_ROOT)
+ SET( ALEMBIC_ILMBASE_ROOT NOTFOUND )
+ ELSE()
+ # TODO: set to default install path when shipping out
+- SET( ALEMBIC_ILMBASE_ROOT "/usr/local/ilmbase-1.0.1/" )
++ SET( ALEMBIC_ILMBASE_ROOT "/usr" )
+ ENDIF()
+ ELSE()
+ IF ( ${WINDOWS} )
+@@ -97,6 +97,14 @@ FIND_PATH(ILMBASE_INCLUDE_DIR
+ include/OpenEXR
+ )
+
++FIND_PACKAGE(PkgConfig)
++IF (PKG_CONFIG_FOUND)
++ PKG_CHECK_MODULES(PC_ILMBASE QUIET IlmBase)
++ IF (PC_ILMBASE_FOUND)
++ SET(_ilmbase_libs_ver_init ${PC_ILMBASE_VERSION})
++ ENDIF()
++ENDIF()
++
+ # If the headers were found, get the version from config file, if not already set.
+ IF(ILMBASE_INCLUDE_DIR)
+ SET(ALEMBIC_ILMBASE_INCLUDE_DIRECTORY ${ILMBASE_INCLUDE_DIR})
diff --git a/media-gfx/alembic/files/alembic-fix-importerror.patch b/media-gfx/alembic/files/alembic-fix-importerror.patch
new file mode 100644
index 000000000000..8a86f08c7334
--- /dev/null
+++ b/media-gfx/alembic/files/alembic-fix-importerror.patch
@@ -0,0 +1,17 @@
+diff --git a/python/PyAlembic/CMakeLists.txt b/python/PyAlembic/CMakeLists.txt
+index 254ca2b..c8c915a 100644
+--- a/python/PyAlembic/CMakeLists.txt
++++ b/python/PyAlembic/CMakeLists.txt
+@@ -45,6 +45,12 @@ IF (Boost_PYTHON_LIBRARY AND ALEMBIC_PYTHON_LIBRARY)
+ ADD_DEFINITIONS(-Wno-unused-local-typedefs)
+ ENDIF()
+
++ # fix for ImportError: dynamic module does not define init function (initalembic)
++ # see: https://github.com/alembic/alembic/issues/142
++ IF (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
++ SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=default")
++ ENDIF()
++
+ SET(CPP_FILES
+ PyAbcCoreLayer.cpp
+ PyAbcGeomTypes.cpp
diff --git a/media-gfx/alembic/metadata.xml b/media-gfx/alembic/metadata.xml
new file mode 100644
index 000000000000..3d75399517fe
--- /dev/null
+++ b/media-gfx/alembic/metadata.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer type="person">
+ <email>waebbl@gmail.com</email>
+ <name>Bernd Waibel</name>
+</maintainer>
+<maintainer type="project">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+</maintainer>
+<longdescription>
+ Alembic is an open computer graphics interchange framework,
+ developed by Sony Pictures Imageworks Inc. and Lucasfilm Ltd.
+</longdescription>
+<use>
+ <flag name="boost">Use <pkg>dev-libs/boost</pkg> library</flag>
+ <flag name="hdf5">Add support <pkg>sci-libs/hdf5</pkg></flag>
+ <flag name="pyalembic">Build pyalembic python bindings (needs <pkg>dev-python/pyilmbase</pkg>)</flag>
+ <flag name="test">Build and run the test-suite</flag>
+ <flag name="zlib">Use <pkg>sys-libs/zlib</pkg> for compressions</flag>
+</use>
+<upstream>
+ <bugs-to>https://github.com/alembic/alembic/issues</bugs-to>
+ <remote-id type="github">https://github.com/alembic/alembic</remote-id>
+</upstream>
+</pkgmetadata>