diff options
author | Bernd Waibel <waebbl@gmail.com> | 2017-11-14 21:43:10 +0100 |
---|---|---|
committer | Patrice Clement <monsieurp@gentoo.org> | 2017-12-16 13:59:34 +0100 |
commit | 146cec1dd3c1b1aaa56d945f049d4fc935010ed9 (patch) | |
tree | 34da7994a5d5032560be42d1a4b30f117c623e92 /media-gfx | |
parent | dev-python/pyilmbase: new package. (diff) | |
download | gentoo-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')
-rw-r--r-- | media-gfx/alembic/Manifest | 1 | ||||
-rw-r--r-- | media-gfx/alembic/alembic-1.7.4.ebuild | 100 | ||||
-rw-r--r-- | media-gfx/alembic/files/alembic-CMakeLists-fix_lib.patch | 132 | ||||
-rw-r--r-- | media-gfx/alembic/files/alembic-FindIlmBase-pkgconfig.patch | 28 | ||||
-rw-r--r-- | media-gfx/alembic/files/alembic-fix-importerror.patch | 17 | ||||
-rw-r--r-- | media-gfx/alembic/metadata.xml | 27 |
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> |