diff options
author | Marcus von Appen <mva@FreeBSD.org> | 2013-11-15 16:58:02 +0000 |
---|---|---|
committer | Marcus von Appen <mva@FreeBSD.org> | 2013-11-15 16:58:02 +0000 |
commit | e08dba80e28b011475bf45c9184312624e8d44b7 (patch) | |
tree | 54a76effec535f159dfca4b891fa2c42b767792d /graphics/blender | |
parent | 1673678af9f6339aaa87d207b1a3e142a0ce197f (diff) | |
download | ports-e08dba80e28b011475bf45c9184312624e8d44b7.tar.gz ports-e08dba80e28b011475bf45c9184312624e8d44b7.zip |
Notes
Diffstat (limited to 'graphics/blender')
10 files changed, 387 insertions, 231 deletions
diff --git a/graphics/blender/Makefile b/graphics/blender/Makefile index 7675ed4f46fd..7b1bab9dfa7d 100644 --- a/graphics/blender/Makefile +++ b/graphics/blender/Makefile @@ -2,8 +2,7 @@ # $FreeBSD$ PORTNAME= blender -PORTVERSION= 2.68a -PORTREVISION= 1 +PORTVERSION= 2.69 CATEGORIES= graphics games MASTER_SITES= http://download.blender.org/source/ \ http://mirror.cs.umn.edu/blender.org/source/ \ @@ -12,53 +11,117 @@ MASTER_SITES= http://download.blender.org/source/ \ MAINTAINER= mva@FreeBSD.org COMMENT= 3D modeling/rendering/animation/gaming package -LIB_DEPENDS= jpeg:${PORTSDIR}/graphics/jpeg \ - png15:${PORTSDIR}/graphics/png \ - freetype:${PORTSDIR}/print/freetype2 +LICENSE= GPLv2 + +LIB_DEPENDS= libjpeg.so:${PORTSDIR}/graphics/jpeg \ + libpng15.so:${PORTSDIR}/graphics/png \ + libfreetype.so:${PORTSDIR}/print/freetype2 USE_XORG= x11 xext xmu USE_GL= glew -USES= cmake:outsource +USES= cmake:outsource shebangfix USE_PYTHON= 3.3 - +CMAKE_VERBOSE= yes CMAKE_ARGS+= -DWITH_PYTHON_INSTALL:BOOL=OFF \ -DWITH_PYTHON_INSTALL_NUMPY:BOOL=OFF +python_CMD= ${PYTHON_CMD} +SHEBANG_FILES= release/bin/blender-thumbnailer.py \ + release/scripts/modules/bl_i18n_utils/merge_po.py \ + release/scripts/modules/bl_i18n_utils/utils_rtl.py \ + release/scripts/modules/blend_render_info.py + SUB_FILES= blender blenderplayer -MAN1= blender.1 -OUTDIR= ${INSTALL_WRKSRC}/bin/2.68 +OUTDIR= ${INSTALL_WRKSRC}/bin/2.69 -NO_STAGE= yes .include "${.CURDIR}/Makefile.options" -.include <bsd.port.options.mk> - -. if ${PORT_OPTIONS:MMOD_BOOLEAN} -CMAKE_ARGS+= -DWITH_MOD_BOOLEAN:BOOL=ON -LIB_DEPENDS+= boost_thread:${PORTSDIR}/devel/boost-libs -.else -CMAKE_ARGS+= -DWITH_MOD_BOOLEAN:BOOL=OFF -.endif - -.if ${PORT_OPTIONS:MMOD_FLUID} -CMAKE_ARGS+= -DWITH_MOD_FLUID:BOOL=ON -.else -CMAKE_ARGS+= -DWITH_MOD_FLUID:BOOL=OFF -.endif - -.if ${PORT_OPTIONS:MMOD_REMESH} -CMAKE_ARGS+= -DWITH_MOD_REMESH:BOOL=ON -.else -CMAKE_ARGS+= -DWITH_MOD_REMESH:BOOL=OFF -.endif +# TODO: WITH_CYCLES_STANDALONE WITH_CYCLES_STANDALONE_GUI + +MOD_BOOLEAN_CMAKE_ON= -DWITH_MOD_BOOLEAN:BOOL=ON +MOD_BOOLEAN_CMAKE_OFF= -DWITH_MOD_BOOLEAN:BOOL=OFF +MOD_BOOLEAN_LIB_DEPENDS= libboost_thread.so:${PORTSDIR}/devel/boost-libs +MOD_FLUID_CMAKE_ON= -DWITH_MOD_FLUID:BOOL=ON +MOD_FLUID_CMAKE_OFF= -DWITH_MOD_FLUID:BOOL=OFF +MOD_REMESH_CMAKE_ON= -DWITH_MOD_REMESH:BOOL=ON +MOD_REMESH_CMAKE_OFF= -DWITH_MOD_REMESH:BOOL=OFF +MOD_SMOKE_CMAKE_ON= -DWITH_MOD_SMOKE:BOOL=ON +MOD_SMOKE_CMAKE_OFF= -DWITH_MOD_SMOKE:BOOL=OFF +AVI_CMAKE_ON= -DWITH_CODEC_AVI:BOOL=ON +AVI_CMAKE_OFF= -DWITH_CODEC_AVI:BOOL=OFF +BULLET_CMAKE_ON= -DWITH_BULLET:BOOL=ON +BULLET_CMAKE_OFF= -DWITH_BULLET:BOOL=OFF +CINEON_CMAKE_ON= -DWITH_IMAGE_CINEON:BOOL=ON +CINEON_CMAKE_OFF= -DWITH_IMAGE_CINEON:BOOL=OFF +CAMERATRACK_CMAKE_ON= -DWITH_LIBMV:BOOL=ON +CAMERATRACK_CMAKE_OFF= -DWITH_LIBMV:BOOL=OFF +CAMERATRACK_LIB_DEPENDS= libunwind.so:${PORTSDIR}/devel/libunwind +COMPOSITOR_CMAKE_ON= -DWITH_COMPOSITOR:BOOL=ON +COMPOSITOR_CMAKE_OFF= -DWITH_COMPOSITOR:BOOL=OFF +DDS_CMAKE_ON= -DWITH_IMAGE_DDS:BOOL=ON +DDS_CMAKE_OFF= -DWITH_IMAGE_DDS:BOOL=OFF +FFMPEG_CMAKE_ON= -DWITH_CODEC_FFMPEG:BOOL=ON +FFMPEG_CMAKE_OFF= -DWITH_CODEC_FFMPEG:BOOL=OFF +FFMPEG_LIB_DEPENDS= libavutil.so:${PORTSDIR}/multimedia/ffmpeg +FFTW3_CMAKE_ON= -DWITH_FFTW3:BOOL=ON +FFTW3_CMAKE_OFF= -DWITH_FFTW3:BOOL=OFF +FFTW3_LIB_DEPENDS= libfftw3.so:${PORTSDIR}/math/fftw3 +FRAMESERVER_CMAKE_ON= -DWITH_IMAGE_FRAMESERVER:BOOL=ON +FRAMESERVER_CMAKE_OFF= -DWITH_IMAGE_FRAMESERVER:BOOL=OFF +FREESTYLE_CMAKE_ON= -DWITH_FREESTYLE:BOOL=ON +FREESTYLE_CMAKE_OFF= -DWITH_FREESTYLE:BOOL=OFF +GAMEENGINE_CMAKE_ON= -DWITH_GAMEENGINE:BOOL=ON +GAMEENGINE_CMAKE_OFF= -DWITH_GAMEENGINE:BOOL=OFF +HDR_CMAKE_ON= -DWITH_IMAGE_HDR:BOOL=ON +HDR_CMAKE_OFF= -DWITH_IMAGE_HDR:BOOL=OFF +INPUT_NDOF_CMAKE_ON= -DWITH_INPUT_NDOF:BOOL=ON +INPUT_NDOF_CMAKE_OFF= -DWITH_INPUT_NDOF:BOOL=OFF +JACK_CMAKE_ON= -DWITH_JACK:BOOL=ON +JACK_CMAKE_OFF= -DWITH_JACK:BOOL=OFF +JACK_LIB_DEPENDS= libjack.so:${PORTSDIR}/audio/jack +LZO_CMAKE_ON= -DWITH_LZO:BOOL=ON +LZO_CMAKE_OFF= -DWITH_LZO:BOOL=OFF +LZMA_CMAKE_ON= -DWITH_LZMA:BOOL=ON +LZMA_CMAKE_OFF= -DWITH_LZMA:BOOL=OFF +LIBMV_CMAKE_ON= -DWITH_LIBMV:BOOL=ON +LIBMV_CMAKE_OFF= -DWITH_LIBMV:BOOL=OFF +MENU_USES= desktop-file-utils +NLS_CMAKE_ON= -DWITH_INTERNATIONAL:BOOL=ON +NLS_CMAKE_OFF= -DWITH_INTERNATIONAL:BOOL=OFF +NLS_USES= gettext iconv +OPENCOLORIO_CMAKE_ON= -DWITH_OPENCOLORIO:BOOL=ON +OPENCOLORIO_CMAKE_OFF= -DWITH_OPENCOLORIO:BOOL=OFF +OPENCOLORIO_LIB_DEPENDS= libOpenColorIO.so:${PORTSDIR}/graphics/opencolorio +OPENEXR_CMAKE_ON= -DWITH_IMAGE_OPENEXR:BOOL=ON +OPENEXR_CMAKE_OFF= -DWITH_IMAGE_OPENEXR:BOOL=OFF +OPENEXR_LIB_DEPENDS= libIlmImf.so:${PORTSDIR}/graphics/OpenEXR +OPENJPEG_CMAKE_ON= -DWITH_SYSTEM_OPENJPEG:BOOL=ON \ + -DWITH_IMAGE_OPENJPEG:BOOL=ON +OPENJPEG_CMAKE_OFF= -DWITH_IMAGE_OPENJPEG:BOOL=OFF +OPENJPEG_LIB_DEPENDS= libopenjpeg.so:${PORTSDIR}/graphics/openjpeg +OPENMP_CMAKE_ON= -DWITH_OPENMP:BOOL=ON +OPENMP_CMAKE_OFF= -DWITH_OPENMP:BOOL=OFF +RAYOPTIMIZATION_CMAKE_ON= -DWITH_RAYOPTIMIZATION:BOOL=ON +RAYOPTIMIZATION_CMAKE_OFF= -DWITH_RAYOPTIMIZATION:BOOL=OFF +SAMPLERATE_CMAKE_ON= -DWITH_SAMPLERATE:BOOL=ON +SAMPLERATE_CMAKE_OFF= -DWITH_SAMPLERATE:BOOL=OFF +SAMPLERATE_LIB_DEPENDS= libsamplerate.so:${PORTSDIR}/audio/libsamplerate +SNDFILE_CMAKE_ON= -DWITH_CODEC_SNDFILE:BOOL=ON +SNDFILE_CMAKE_OFF= -DWITH_CODEC_SNDFILE:BOOL=OFF +SNDFILE_LIB_DEPENDS= libsndfile.so:${PORTSDIR}/audio/libsndfile +TIFF_CMAKE_ON= -DWITH_IMAGE_TIFF:BOOL=ON +TIFF_CMAKE_OFF= -DWITH_IMAGE_TIFF:BOOL=OFF +TIFF_LIB_DEPENDS= libtiff.so:${PORTSDIR}/graphics/tiff +XINPUT_CMAKE_ON= -DWITH_X11_XINPUT:BOOL=ON +XINPUT_CMAKE_OFF= -DWITH_X11_XINPUT:BOOL=OFF +XINPUT_USE= XORG=xi +XF86VMODE_CMAKE_ON= -DWITH_X11_XF86VMODE:BOOL=ON +XF86VMODE_CMAKE_OFF= -DWITH_X11_XF86VMODE:BOOL=OFF +XF86VMODE_USE= XORG=xi xxf86vm -.if ${PORT_OPTIONS:MMOD_SMOKE} -CMAKE_ARGS+= -DWITH_MOD_SMOKE:BOOL=ON -.else -CMAKE_ARGS+= -DWITH_MOD_SMOKE:BOOL=OFF -.endif +.include <bsd.port.options.mk> .if ${PORT_OPTIONS:MMOD_OCEANSIM} .if ${PORT_OPTIONS:MFFTW3} @@ -70,37 +133,12 @@ BROKEN= MOD_OCEANSIM requires FFTW3 CMAKE_ARGS+= -DWITH_MOD_OCEANSIM:BOOL=OFF .endif -.if ${PORT_OPTIONS:MBULLET} -CMAKE_ARGS+= -DWITH_BULLET:BOOL=ON -.else -CMAKE_ARGS+= -DWITH_BULLET:BOOL=OFF -.endif - -.if ${PORT_OPTIONS:MCINEON} -CMAKE_ARGS+= -DWITH_IMAGE_CINEON:BOOL=ON -.else -CMAKE_ARGS+= -DWITH_IMAGE_CINEON:BOOL=OFF -.endif - -.if ${PORT_OPTIONS:MCAMERATRACK} -CMAKE_ARGS+= -DWITH_LIBMV:BOOL=ON -LIB_DEPENDS+= unwind:${PORTSDIR}/devel/libunwind -.else -CMAKE_ARGS+= -DWITH_LIBMV:BOOL=OFF -.endif - -.if ${PORT_OPTIONS:MCOMPOSITOR} -CMAKE_ARGS+= -DWITH_COMPOSITOR:BOOL=ON -.else -CMAKE_ARGS+= -DWITH_COMPOSITOR:BOOL=OFF -.endif - .if ${PORT_OPTIONS:MCYCLES} CMAKE_ARGS+= -DWITH_CYCLES:BOOL=ON .if !${PORT_OPTIONS:MOPENEXR} || !${PORT_OPTIONS:MTIFF} BROKEN= CYCLES requires OPENEXR and TIFF .endif -LIB_DEPENDS+= OpenImageIO:${PORTSDIR}/graphics/openimageio +LIB_DEPENDS+= libOpenImageIO.so:${PORTSDIR}/graphics/openimageio .else CMAKE_ARGS+= -DWITH_CYCLES:BOOL=OFF .endif @@ -109,50 +147,17 @@ CMAKE_ARGS+= -DWITH_CYCLES:BOOL=OFF .if !${PORT_OPTIONS:MCYCLES} IGNORE= support for the OpenShadingLanguage in cycles obviously requires CYCLES .endif -CMAKE_ARGS+= -DWITH_CYCLES_OSL:BOOL=ON -LIB_DEPENDS+= oslexec:${PORTSDIR}/graphics/openshadinglanguage +CMAKE_ARGS+= -DWITH_CYCLES_OSL:BOOL=ON \ + -DLLVM_STATIC:BOOL=OFF \ + -DWITH_LLVM:BOOL=ON \ + -DLLVM_VERSION:STRING="3.3" \ + -DLLVM_CONFIG:STRING="${LOCALBASE}/bin/llvm-config33" +LIB_DEPENDS+= liboslexec.so:${PORTSDIR}/graphics/openshadinglanguage +BUILD_DEPENDS+= llvm-config33:${PORTSDIR}/devel/llvm33 .else CMAKE_ARGS+= -DWITH_CYCLES_OSL:BOOL=OFF .endif -.if ${PORT_OPTIONS:MDDS} -CMAKE_ARGS+= -DWITH_IMAGE_DDS:BOOL=ON -.else -CMAKE_ARGS+= -DWITH_IMAGE_DDS:BOOL=OFF -.endif - -.if ${PORT_OPTIONS:MFFMPEG} -CMAKE_ARGS+= -DWITH_CODEC_FFMPEG:BOOL=ON -LIB_DEPENDS+= avutil:${PORTSDIR}/multimedia/ffmpeg -.else -CMAKE_ARGS+= -DWITH_CODEC_FFMPEG:BOOL=OFF -.endif - -.if ${PORT_OPTIONS:MFFTW3} -LIB_DEPENDS+= fftw3:${PORTSDIR}/math/fftw3 -CMAKE_ARGS+= -DWITH_FFTW3:BOOL=ON -.else -CMAKE_ARGS+= -DWITH_FFTW3:BOOL=OFF -.endif - -.if ${PORT_OPTIONS:MFRAMESERVER} -CMAKE_ARGS+= -DWITH_IMAGE_FRAMESERVER:BOOL=ON -.else -CMAKE_ARGS+= -DWITH_IMAGE_FRAMESERVER:BOOL=OFF -.endif - -.if ${PORT_OPTIONS:MGAMEENGINE} -CMAKE_ARGS+= -DWITH_GAMEENGINE:BOOL=ON -.else -CMAKE_ARGS+= -DWITH_GAMEENGINE:BOOL=OFF -.endif - -.if ${PORT_OPTIONS:MHDR} -CMAKE_ARGS+= -DWITH_IMAGE_HDR:BOOL=ON -.else -CMAKE_ARGS+= -DWITH_IMAGE_HDR:BOOL=OFF -.endif - .if ${PORT_OPTIONS:MHEADLESS} .if ${PORT_OPTIONS:MXINPUT} || ${PORT_OPTIONS:MXF86VMODE} BROKEN= HEADLESS does not require any X11 dependency @@ -162,48 +167,6 @@ CMAKE_ARGS+= -DWITH_HEADLESS:BOOL=ON CMAKE_ARGS+= -DWITH_HEADLESS:BOOL=OFF .endif -.if ${PORT_OPTIONS:MINPUT_NDOF} -CMAKE_ARGS+= -DWITH_INPUT_NDOF:BOOL=ON -.else -CMAKE_ARGS+= -DWITH_INPUT_NDOF:BOOL=OFF -.endif - -.if ${PORT_OPTIONS:MJACK} -LIB_DEPENDS+= jack:${PORTSDIR}/audio/jack -CMAKE_ARGS+= -DWITH_JACK:BOOL=ON -.else -CMAKE_ARGS+= -DWITH_JACK:BOOL=OFF -.endif - -.if ${PORT_OPTIONS:MLZO} -CMAKE_ARGS+= -DWITH_LZO:BOOL=ON -.else -CMAKE_ARGS+= -DWITH_LZO:BOOL=OFF -.endif - -.if ${PORT_OPTIONS:MLZMA} -CMAKE_ARGS+= -DWITH_LZMA:BOOL=ON -.else -CMAKE_ARGS+= -DWITH_LZMA:BOOL=OFF -.endif - -.if ${PORT_OPTIONS:MLIBMV} -CMAKE_ARGS+= -DWITH_LIBMV:BOOL=ON -.else -CMAKE_ARGS+= -DWITH_LIBMV:BOOL=OFF -.endif - -.if ${PORT_OPTIONS:MMENU} -USE_GNOME= desktopfileutils -.endif - -.if ${PORT_OPTIONS:MNLS} -USES+= gettext iconv -CMAKE_ARGS+= -DWITH_INTERNATIONAL:BOOL=ON -.else -CMAKE_ARGS+= -DWITH_INTERNATIONAL:BOOL=OFF -.endif - .if ${PORT_OPTIONS:MOPENAL} .if ${PORT_OPTIONS:MSAMPLERATE} USE_OPENAL= al alut @@ -215,33 +178,6 @@ BROKEN= OPENAL requires SAMPLERATE CMAKE_ARGS+= -DWITH_OPENAL:BOOL=OFF .endif -.if ${PORT_OPTIONS:MOPENCOLORIO} -LIB_DEPENDS+= OpenColorIO:${PORTSDIR}/graphics/opencolorio -CMAKGE_ARGS+= -DWITH_OPENCOLORIO:BOOL=ON -.else -CMAKGE_ARGS+= -DWITH_OPENCOLORIO:BOOL=OFF -.endif - -.if ${PORT_OPTIONS:MOPENEXR} -LIB_DEPENDS+= IlmImf:${PORTSDIR}/graphics/OpenEXR -CMAKGE_ARGS+= -DWITH_IMAGE_OPENEXR:BOOL=ON -.else -CMAKGE_ARGS+= -DWITH_IMAGE_OPENEXR:BOOL=OFF -.endif - -.if ${PORT_OPTIONS:MOPENJPEG} -LIB_DEPENDS+= openjpeg:${PORTSDIR}/graphics/openjpeg -CMAKE_ARGS+= -DWITH_SYSTEM_OPENJPEG:BOOL=ON -DWITH_IMAGE_OPENJPEG:BOOL=ON -.else -CMAKE_ARGS+= -DWITH_IMAGE_OPENJPEG:BOOL=OFF -.endif - -.if ${PORT_OPTIONS:MOPENMP} -CMAKE_ARGS+= -DWITH_OPENMP:BOOL=ON -.else -CMAKE_ARGS+= -DWITH_OPENMP:BOOL=OFF -.endif - .if ${PORT_OPTIONS:MPLAYER} .if ${PORT_OPTIONS:MGAMEENGINE} CMAKE_ARGS+= -DWITH_PLAYER:BOOL=ON @@ -252,12 +188,6 @@ BROKEN= PLAYER requires GAMEENGINE CMAKE_ARGS+= -DWITH_PLAYER:BOOL=OFF .endif -.if ${PORT_OPTIONS:MRAYOPTIMIZATION} -CMAKE_ARGS+= -DWITH_RAYOPTIMIZATION:BOOL=ON -.else -CMAKE_ARGS+= -DWITH_RAYOPTIMIZATION:BOOL=OFF -.endif - .if ${PORT_OPTIONS:MREDCODE} .if ${PORT_OPTIONS:MOPENJPEG} && ${PORT_OPTIONS:MFFMPEG} CMAKE_ARGS+= -DWITH_IMAGE_REDCODE:BOOL=ON @@ -268,13 +198,6 @@ BROKEN= REDCODE requires OPENJPEG and FFMPEG CMAKE_ARGS+= -DWITH_IMAGE_REDCODE:BOOL=OFF .endif -.if ${PORT_OPTIONS:MSAMPLERATE} -LIB_DEPENDS+= samplerate:${PORTSDIR}/audio/libsamplerate -CMAKE_ARGS+= -DWITH_SAMPLERATE:BOOL=ON -.else -CMAKE_ARGS+= -DWITH_SAMPLERATE:BOOL=OFF -.endif - .if ${PORT_OPTIONS:MSDL} .if ${PORT_OPTIONS:MSAMPLERATE} USE_SDL= sdl @@ -286,79 +209,68 @@ BROKEN= SDL requires SAMPLERATE CMAKE_ARGS+= -DWITH_SDL:BOOL=OFF .endif -.if ${PORT_OPTIONS:MSNDFILE} -LIB_DEPENDS+= sndfile:${PORTSDIR}/audio/libsndfile -CMAKE_ARGS+= -DWITH_CODEC_SNDFILE:BOOL=ON -.else -CMAKE_ARGS+= -DWITH_CODEC_SNDFILE:BOOL=OFF -.endif - -.if ${PORT_OPTIONS:MTIFF} -LIB_DEPENDS+= tiff:${PORTSDIR}/graphics/tiff -CMAKE_ARGS+= -DWITH_IMAGE_TIFF:BOOL=ON -.else -CMAKE_ARGS+= -DWITH_IMAGE_TIFF:BOOL=OFF -.endif - -.if ${PORT_OPTIONS:MXINPUT} -USE_XORG+= xi -CMAKE_ARGS+= -DWITH_X11_XINPUT:BOOL=ON -.else -CMAKE_ARGS+= -DWITH_X11_XINPUT:BOOL=OFF -.endif +post-patch: + @cd ${WRKSRC}/intern/cycles && ${REINPLACE_CMD} \ + -e 's/__align/cycles_align/' \ + -e 's/__global/cycles_global/g' \ + util/util_types.h kernel/kernel_compat_cuda.h \ + kernel/kernel_displace.h kernel/kernel_film.h \ + kernel/kernel_passes.h kernel/kernel_path.h \ + kernel/kernel_random.h -.if ${PORT_OPTIONS:MXF86VMODE} -USE_XORG+= xi xxf86vm -CMAKE_ARGS+= -DWITH_X11_XF86VMODE:BOOL=ON -.else -CMAKE_ARGS+= -DWITH_X11_XF86VMODE:BOOL=OFF -.endif +# We ignore MAKE_ARGS, since those would set DESTDIR for make stage, +# which in turn would cause make install to install everything in a +# wrong location +do-install: + @(cd ${INSTALL_WRKSRC} && ${SETENV} ${MAKE_ENV} ${MAKE_CMD} \ + ${MAKE_FLAGS} ${MAKEFILE} ${INSTALL_TARGET}) post-install: - @${INSTALL_SCRIPT} ${WRKDIR}/blender ${PREFIX}/bin/blender - @${INSTALL_PROGRAM} ${INSTALL_WRKSRC}/bin/blender \ - ${PREFIX}/bin/blender-bin - @${INSTALL_SCRIPT} ${INSTALL_WRKSRC}/bin/blender-thumbnailer.py \ - ${PREFIX}/bin/blender-thumbnailer.py + ${INSTALL_SCRIPT} ${WRKDIR}/blender ${STAGEDIR}${PREFIX}/bin/blender + ${INSTALL_PROGRAM} ${INSTALL_WRKSRC}/bin/blender \ + ${STAGEDIR}${PREFIX}/bin/blender-bin + ${INSTALL_SCRIPT} ${INSTALL_WRKSRC}/bin/blender-thumbnailer.py \ + ${STAGEDIR}${PREFIX}/bin/blender-thumbnailer.py @${ECHO} bin/blender >> ${TMPPLIST} @${ECHO} bin/blender-bin >> ${TMPPLIST} @${ECHO} bin/blender-thumbnailer.py >> ${TMPPLIST} .if ${PORT_OPTIONS:MPLAYER} - @${INSTALL_SCRIPT} ${WRKDIR}/blenderplayer ${PREFIX}/bin/blenderplayer - @${INSTALL_PROGRAM} ${INSTALL_WRKSRC}/bin/blenderplayer \ - ${PREFIX}/bin/blenderplayer-bin + ${INSTALL_SCRIPT} ${WRKDIR}/blenderplayer \ + ${STAGEDIR}${PREFIX}/bin/blenderplayer + ${INSTALL_PROGRAM} ${INSTALL_WRKSRC}/bin/blenderplayer \ + ${STAGEDIR}${PREFIX}/bin/blenderplayer-bin @${ECHO} bin/blenderplayer >> ${TMPPLIST} @${ECHO} bin/blenderplayer-bin >> ${TMPPLIST} .endif .if ${PORT_OPTIONS:MMENU} - @${MKDIR} ${DESKTOPDIR} - @${INSTALL_DATA} ${INSTALL_WRKSRC}/bin/${PORTNAME}.desktop \ - ${DESKTOPDIR} + ${MKDIR} ${STAGEDIR}${DESKTOPDIR} + ${INSTALL_DATA} ${INSTALL_WRKSRC}/bin/${PORTNAME}.desktop \ + ${STAGEDIR}${DESKTOPDIR} @-update-desktop-database -q @${ECHO} share/applications/${PORTNAME}.desktop >> ${TMPPLIST} .endif - @${MKDIR} ${DATADIR} - @(cd ${OUTDIR} && ${COPYTREE_SHARE} scripts ${DATADIR}) - @${INSTALL_DATA} ${INSTALL_WRKSRC}/bin/${PORTNAME}.svg \ - ${PREFIX}/share/pixmaps/${PORTNAME}.svg + ${MKDIR} ${STAGEDIR}${DATADIR} + (cd ${OUTDIR} && ${COPYTREE_SHARE} scripts ${STAGEDIR}${DATADIR}) + ${INSTALL_DATA} ${INSTALL_WRKSRC}/bin/${PORTNAME}.svg \ + ${STAGEDIR}${PREFIX}/share/pixmaps/${PORTNAME}.svg @(cd ${OUTDIR}; ${FIND} scripts -type f) | ${SORT} | ${SED} "s|^|${DATADIR_REL}/|" >> ${TMPPLIST} @(cd ${OUTDIR}; ${FIND} scripts -type d) | ${SORT} -r | ${SED} "s|^|@dirrm ${DATADIR_REL}/|" >> ${TMPPLIST} @${ECHO} share/pixmaps/${PORTNAME}.svg >> ${TMPPLIST} .if ${PORT_OPTIONS:MOPENCOLORIO} - @cd ${OUTDIR} && ${COPYTREE_SHARE} datafiles/colormanagement ${DATADIR} + cd ${OUTDIR} && ${COPYTREE_SHARE} datafiles/colormanagement ${STAGEDIR}${DATADIR} @(cd ${OUTDIR}; ${FIND} datafiles/colormanagement -type f) | ${SORT} | ${SED} "s|^|${DATADIR_REL}/|" >> ${TMPPLIST} @(cd ${OUTDIR}; ${FIND} datafiles/colormanagement -type d) | ${SORT} -r | ${SED} "s|^|@dirrm ${DATADIR_REL}/|" >> ${TMPPLIST} .endif .if ${PORT_OPTIONS:MNLS} - @cd ${OUTDIR} && ${COPYTREE_SHARE} datafiles/locale ${DATADIR} + cd ${OUTDIR} && ${COPYTREE_SHARE} datafiles/locale ${STAGEDIR}${DATADIR} @(cd ${OUTDIR}; ${FIND} datafiles/locale -type f -name languages) | ${SORT} | ${SED} "s|^|${DATADIR_REL}/|" >> ${TMPPLIST} @(cd ${OUTDIR}; ${FIND} datafiles/locale -type f -name ${PORTNAME}.mo) | ${SORT} | ${SED} "s|^|${DATADIR_REL}/|" >> ${TMPPLIST} - @cd ${OUTDIR} && ${COPYTREE_SHARE} datafiles/fonts ${DATADIR} + cd ${OUTDIR} && ${COPYTREE_SHARE} datafiles/fonts ${STAGEDIR}${DATADIR} @(cd ${OUTDIR}; ${FIND} datafiles/fonts -type f) | ${SORT} | ${SED} "s|^|${DATADIR_REL}/|" >> ${TMPPLIST} @(cd ${OUTDIR}; ${FIND} datafiles/fonts -type d) | ${SORT} -r | ${SED} "s|^|@dirrm ${DATADIR_REL}/|" >> ${TMPPLIST} @(cd ${OUTDIR}; ${FIND} datafiles/locale -type d) | ${SORT} -r | ${SED} "s|^|@dirrm ${DATADIR_REL}/|" >> ${TMPPLIST} @@ -367,8 +279,9 @@ post-install: @${ECHO} @dirrm ${DATADIR_REL} >> ${TMPPLIST} .if !defined(NO_INSTALL_MANPAGES) - @${INSTALL_MAN} ${INSTALL_WRKSRC}/bin/${PORTNAME}.1 \ - ${MAN1PREFIX}/man/man1 + ${INSTALL_MAN} ${INSTALL_WRKSRC}/bin/${PORTNAME}.1 \ + ${STAGEDIR}${MAN1PREFIX}/man/man1 + @${ECHO} man/man1/${PORTNAME}.1.gz >> ${TMPPLIST} .endif .include <bsd.port.mk> diff --git a/graphics/blender/Makefile.options b/graphics/blender/Makefile.options index b0c534b54418..00abe2773850 100644 --- a/graphics/blender/Makefile.options +++ b/graphics/blender/Makefile.options @@ -1,6 +1,7 @@ # $FreeBSD$ OPTIONS_DEFINE= \ + AVI \ BULLET \ CINEON \ CAMERATRACK \ @@ -43,6 +44,7 @@ OPTIONS_DEFINE= \ XF86VMODE OPTIONS_DEFAULT= \ + AVI \ BULLET \ CINEON \ COMPOSITOR \ @@ -74,6 +76,7 @@ OPTIONS_DEFAULT= \ XINPUT \ XF86VMODE +AVI_DESC= Enable Blender's own AVI file support BULLET_DESC= Bullet physics engine CINEON_DESC= CINEON and DPX graphics format support CAMERATRACK_DESC= Camera tracking support diff --git a/graphics/blender/distinfo b/graphics/blender/distinfo index 06ff30914af7..c7aa1c7f939c 100644 --- a/graphics/blender/distinfo +++ b/graphics/blender/distinfo @@ -1,2 +1,2 @@ -SHA256 (blender-2.68a.tar.gz) = 13ed290b0db381523dd26689d29fd00b08bae01a9123533d75f0243733dd7b3a -SIZE (blender-2.68a.tar.gz) = 40042207 +SHA256 (blender-2.69.tar.gz) = c94a7f5dec0d42683b96b2591c240ebcc2743d10b84fc53ca13374b5e654ce09 +SIZE (blender-2.69.tar.gz) = 41274518 diff --git a/graphics/blender/files/patch-CMakelists.txt b/graphics/blender/files/patch-CMakelists.txt new file mode 100644 index 000000000000..e4d5dbccf704 --- /dev/null +++ b/graphics/blender/files/patch-CMakelists.txt @@ -0,0 +1,11 @@ +--- CMakeLists.txt.orig 2013-10-07 18:51:15.000000000 +0200 ++++ CMakeLists.txt 2013-11-10 14:35:45.000000000 +0100 +@@ -876,7 +876,7 @@ + endif() + + # OpenSuse needs lutil, ArchLinux not, for now keep, can avoid by using --as-needed +- set(PLATFORM_LINKLIBS "-lutil -lc -lm -lpthread -lstdc++") ++ set(PLATFORM_LINKLIBS "-lutil -lc -lm -lpthread") + + if((NOT WITH_HEADLESS) AND (NOT WITH_GHOST_SDL)) + find_package(X11 REQUIRED) diff --git a/graphics/blender/files/patch-extern_carve_lib_triangulator.cpp b/graphics/blender/files/patch-extern_carve_lib_triangulator.cpp new file mode 100644 index 000000000000..378d1e0e2480 --- /dev/null +++ b/graphics/blender/files/patch-extern_carve_lib_triangulator.cpp @@ -0,0 +1,14 @@ +--- extern/carve/lib/triangulator.cpp.orig 2012-01-30 09:45:12.000000000 +0100 ++++ extern/carve/lib/triangulator.cpp 2013-11-13 21:17:16.000000000 +0100 +@@ -122,8 +122,10 @@ + std::vector<vertex_info *> queue; + + void checkheap() { +-#ifdef __GNUC__ ++#if defined(__GNUC__) && !defined(__clang__) + CARVE_ASSERT(std::__is_heap(queue.begin(), queue.end(), vertex_info_ordering())); ++#elif defined(__clang__) && defined(_LIBCPP_VERSION) ++ CARVE_ASSERT(std::is_heap(queue.begin(), queue.end(), vertex_info_ordering())); + #endif + } + diff --git a/graphics/blender/files/patch-extern_libmv_third_party_ceres_internal_ceres_collections_port.h b/graphics/blender/files/patch-extern_libmv_third_party_ceres_internal_ceres_collections_port.h new file mode 100644 index 000000000000..f7069f2765b8 --- /dev/null +++ b/graphics/blender/files/patch-extern_libmv_third_party_ceres_internal_ceres_collections_port.h @@ -0,0 +1,68 @@ +--- extern/libmv/third_party/ceres/internal/ceres/collections_port.h.orig 2013-02-25 09:59:26.000000000 +0100 ++++ extern/libmv/third_party/ceres/internal/ceres/collections_port.h 2013-11-13 17:12:57.000000000 +0100 +@@ -33,11 +33,12 @@ + #ifndef CERES_INTERNAL_COLLECTIONS_PORT_H_ + #define CERES_INTERNAL_COLLECTIONS_PORT_H_ + ++#include <utility> + #if defined(CERES_NO_TR1) + # include <map> + # include <set> + #else +-# if defined(_MSC_VER) ++# if defined(_MSC_VER) || defined(_LIBCPP_VERSION) + # include <unordered_map> + # include <unordered_set> + # else +@@ -45,7 +46,6 @@ + # include <tr1/unordered_set> + # endif + #endif +-#include <utility> + #include "ceres/integral_types.h" + #include "ceres/internal/port.h" + +@@ -71,11 +71,19 @@ + namespace ceres { + namespace internal { + ++#if defined(_LIBCPP_VERSION) ++template<typename K, typename V> ++struct HashMap : std::unordered_map<K, V> {}; ++ ++template<typename K> ++struct HashSet : std::unordered_set<K> {}; ++#else + template<typename K, typename V> + struct HashMap : std::tr1::unordered_map<K, V> {}; + + template<typename K> + struct HashSet : std::tr1::unordered_set<K> {}; ++#endif + + #if defined(_WIN32) && !defined(__MINGW64__) && !defined(__MINGW32__) + #define GG_LONGLONG(x) x##I64 +@@ -135,7 +143,11 @@ + + // Since on some platforms this is a doubly-nested namespace (std::tr1) and + // others it is not, the entire namespace line must be in a macro. ++#if defined(_LIBCPP_VERSION) ++namespace std { ++#else + CERES_HASH_NAMESPACE_START ++#endif + + // The outrageously annoying specializations below are for portability reasons. + // In short, it's not possible to have two overloads of hash<pair<T1, T2> +@@ -160,7 +172,11 @@ + static const size_t min_buckets = 8; // 4 and 8 are defaults. + }; + ++#if defined(_LIBCPP_VERSION) ++} ++#else + CERES_HASH_NAMESPACE_END ++#endif + + #endif // CERES_NO_TR1 + diff --git a/graphics/blender/files/patch-extern_rangetree_range_tree.hh b/graphics/blender/files/patch-extern_rangetree_range_tree.hh new file mode 100644 index 000000000000..685022205a29 --- /dev/null +++ b/graphics/blender/files/patch-extern_rangetree_range_tree.hh @@ -0,0 +1,15 @@ +--- extern/rangetree/range_tree.hh.orig 2013-11-12 09:41:41.000000000 +0100 ++++ extern/rangetree/range_tree.hh 2013-11-12 21:47:07.000000000 +0100 +@@ -35,6 +35,12 @@ + : min(t), max(t), single(true) + {} + ++ Range& operator=(const Range& v) { ++ *this = v; ++ return *this; ++ } ++ ++ + bool operator<(const Range& v) const { + return max < v.min; + } diff --git a/graphics/blender/files/patch-intern_itasc_kdl_tree.hpp b/graphics/blender/files/patch-intern_itasc_kdl_tree.hpp new file mode 100644 index 000000000000..0124a7c49018 --- /dev/null +++ b/graphics/blender/files/patch-intern_itasc_kdl_tree.hpp @@ -0,0 +1,89 @@ +--- intern/itasc/kdl/tree.hpp.orig 2012-12-15 12:15:05.000000000 +0100 ++++ intern/itasc/kdl/tree.hpp 2013-11-13 12:06:00.000000000 +0100 +@@ -60,13 +60,13 @@ + public: + Segment segment; + unsigned int q_nr; +- SegmentMap::const_iterator parent; ++ std::pair<const std::string, TreeElement> const *parent; + std::vector<SegmentMap::const_iterator > children; + TreeElement(const Segment& segment_in,const SegmentMap::const_iterator& parent_in,unsigned int q_nr_in) + { + q_nr=q_nr_in; + segment=segment_in; +- parent=parent_in; ++ parent=&*parent_in; + }; + static TreeElement Root() + { +--- intern/itasc/kdl/treefksolverpos_recursive.cpp.orig 2011-10-23 20:38:16.000000000 +0200 ++++ intern/itasc/kdl/treefksolverpos_recursive.cpp 2013-11-13 14:43:21.000000000 +0100 +@@ -45,12 +45,12 @@ + else if(baseit == tree.getSegments().end()) //if the base segment name is not found + return -3; + else{ +- p_out = recursiveFk(q_in, it, baseit); ++ p_out = recursiveFk(q_in, &*it, &*baseit); + return 0; + } + } + +- Frame TreeFkSolverPos_recursive::recursiveFk(const JntArray& q_in, const SegmentMap::const_iterator& it, const SegmentMap::const_iterator& baseit) ++ Frame TreeFkSolverPos_recursive::recursiveFk(const JntArray& q_in, std::pair<const std::string, KDL::TreeElement> const *it, std::pair<const std::string, KDL::TreeElement> const *baseit) + { + //gets the frame for the current element (segment) + const TreeElement& currentElement = it->second; +@@ -60,8 +60,7 @@ + } + else{ + Frame currentFrame = currentElement.segment.pose(((JntArray&)q_in)(currentElement.q_nr)); +- SegmentMap::const_iterator parentIt = currentElement.parent; +- return recursiveFk(q_in, parentIt, baseit) * currentFrame; ++ return recursiveFk(q_in, currentElement.parent, baseit) * currentFrame; + } + } + +--- intern/itasc/kdl/treefksolverpos_recursive.hpp.orig 2009-07-14 17:36:21.000000000 +0200 ++++ intern/itasc/kdl/treefksolverpos_recursive.hpp 2013-11-13 14:48:02.000000000 +0100 +@@ -45,7 +45,7 @@ + private: + const Tree tree; + +- Frame recursiveFk(const JntArray& q_in, const SegmentMap::const_iterator& it, const SegmentMap::const_iterator& baseit); ++ Frame recursiveFk(const JntArray& q_in, std::pair<const std::string, KDL::TreeElement> const *it, std::pair<const std::string, KDL::TreeElement> const *baseit); + }; + + } +--- intern/itasc/kdl/treejnttojacsolver.cpp.orig 2011-10-23 20:38:16.000000000 +0200 ++++ intern/itasc/kdl/treejnttojacsolver.cpp 2013-11-13 15:04:38.000000000 +0100 +@@ -28,16 +28,16 @@ + return -1; + + //Lets search the tree-element +- SegmentMap::const_iterator it = tree.getSegments().find(segmentname); ++ std::pair<const std::string, KDL::TreeElement> const *it = &*tree.getSegments().find(segmentname); + + //If segmentname is not inside the tree, back out: +- if (it == tree.getSegments().end()) ++ if (it == &*tree.getSegments().end()) + return -2; + + //Let's make the jacobian zero: + SetToZero(jac); + +- SegmentMap::const_iterator root = tree.getSegments().find("root"); ++ std::pair<const std::string, KDL::TreeElement> const *root = &*tree.getSegments().find("root"); + + Frame T_total = Frame::Identity(); + Frame T_local, T_joint; +--- intern/itasc/Armature.cpp.orig 2013-03-18 12:44:56.000000000 +0100 ++++ intern/itasc/Armature.cpp 2013-11-13 14:21:32.000000000 +0100 +@@ -402,7 +402,7 @@ + m_armlength = 0.0; + for (i=0; i<m_neffector; i++) { + length = 0.0; +- KDL::SegmentMap::const_iterator sit = m_tree.getSegment(m_effectors[i].name); ++ std::pair<const std::string, KDL::TreeElement> const *sit = &*m_tree.getSegment(m_effectors[i].name); + while (sit->first != "root") { + Frame tip = sit->second.segment.pose(m_qKdl(sit->second.q_nr)); + length += tip.p.Norm(); diff --git a/graphics/blender/files/patch-source_blender_imbuf_intern_cineon_cineonlib.c b/graphics/blender/files/patch-source_blender_imbuf_intern_cineon_cineonlib.c new file mode 100644 index 000000000000..93bf5d392fc7 --- /dev/null +++ b/graphics/blender/files/patch-source_blender_imbuf_intern_cineon_cineonlib.c @@ -0,0 +1,15 @@ +--- source/blender/imbuf/intern/cineon/cineonlib.c.orig 2013-11-10 13:41:51.000000000 +0100 ++++ source/blender/imbuf/intern/cineon/cineonlib.c 2013-11-10 13:42:22.000000000 +0100 +@@ -277,10 +277,10 @@ + return NULL; + } + +- if (cineon->element[i].refLowData == CINEON_UNDEFINED_U32 || isnan(cineon->element[i].refLowData)) ++ if (cineon->element[i].refLowData == CINEON_UNDEFINED_U32) + cineon->element[i].refLowData = 0; + +- if (cineon->element[i].refHighData == CINEON_UNDEFINED_U32 || isnan(cineon->element[i].refHighData)) ++ if (cineon->element[i].refHighData == CINEON_UNDEFINED_U32) + cineon->element[i].refHighData = (unsigned int)cineon->element[i].maxValue; + + if (cineon->element[i].refLowQuantity == CINEON_UNDEFINED_R32 || isnan(cineon->element[i].refLowQuantity)) diff --git a/graphics/blender/files/patch-source_blender_imbuf_intern_cineon_dpxlib.c b/graphics/blender/files/patch-source_blender_imbuf_intern_cineon_dpxlib.c new file mode 100644 index 000000000000..b15fbe39b48c --- /dev/null +++ b/graphics/blender/files/patch-source_blender_imbuf_intern_cineon_dpxlib.c @@ -0,0 +1,28 @@ +--- source/blender/imbuf/intern/cineon/dpxlib.c.orig 2013-11-10 13:35:42.000000000 +0100 ++++ source/blender/imbuf/intern/cineon/dpxlib.c 2013-11-10 13:37:58.000000000 +0100 +@@ -300,10 +300,10 @@ + case descriptor_RGB: + case descriptor_RGBA: + case descriptor_ABGR: +- if (dpx->element[i].refLowData == DPX_UNDEFINED_U32 || isnan(dpx->element[i].refLowData)) ++ if (dpx->element[i].refLowData == DPX_UNDEFINED_U32) + dpx->element[i].refLowData = 0; + +- if (dpx->element[i].refHighData == DPX_UNDEFINED_U32 || isnan(dpx->element[i].refHighData)) ++ if (dpx->element[i].refHighData == DPX_UNDEFINED_U32) + dpx->element[i].refHighData = (unsigned int)dpx->element[i].maxValue; + + if (dpx->element[i].refLowQuantity == DPX_UNDEFINED_R32 || isnan(dpx->element[i].refLowQuantity)) +@@ -324,10 +324,10 @@ + case descriptor_CbYCr: + case descriptor_CbYACrYA: + case descriptor_CbYCrA: +- if (dpx->element[i].refLowData == DPX_UNDEFINED_U32 || isnan(dpx->element[i].refLowData)) ++ if (dpx->element[i].refLowData == DPX_UNDEFINED_U32) + dpx->element[i].refLowData = 16.0f / 255.0f * dpx->element[i].maxValue; + +- if (dpx->element[i].refHighData == DPX_UNDEFINED_U32 || isnan(dpx->element[i].refHighData)) ++ if (dpx->element[i].refHighData == DPX_UNDEFINED_U32) + dpx->element[i].refHighData = 235.0f / 255.0f * dpx->element[i].maxValue; + + if (dpx->element[i].refLowQuantity == DPX_UNDEFINED_R32 || isnan(dpx->element[i].refLowQuantity)) |