288 lines
11 KiB
Makefile
288 lines
11 KiB
Makefile
# Created by: Jimmy Olgeni <olgeni@uli.it>
|
|
# $FreeBSD$
|
|
|
|
PORTNAME= blender
|
|
PORTVERSION= 2.72b
|
|
PORTREVISION= 2
|
|
CATEGORIES= graphics games
|
|
MASTER_SITES= http://download.blender.org/source/ \
|
|
http://mirror.cs.umn.edu/blender.org/source/ \
|
|
http://public.planetmirror.com/pub/blender/source/
|
|
|
|
MAINTAINER= mva@FreeBSD.org
|
|
COMMENT= 3D modeling/rendering/animation/gaming package
|
|
|
|
LICENSE= GPLv2
|
|
|
|
LIB_DEPENDS= libjpeg.so:${PORTSDIR}/graphics/jpeg \
|
|
libpng.so:${PORTSDIR}/graphics/png \
|
|
libfreetype.so:${PORTSDIR}/print/freetype2
|
|
|
|
USE_XORG= x11 xext xmu
|
|
USE_GL= glew
|
|
USES= cmake:outsource compiler:features python:3.4 shebangfix
|
|
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
|
|
|
|
WRKSRC= ${WRKDIR}/${PORTNAME}-${PORTVERSION}
|
|
OUTDIR= ${INSTALL_WRKSRC}/bin/2.72
|
|
|
|
.include "${.CURDIR}/Makefile.options"
|
|
|
|
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
|
|
CYCLES_CMAKE_ON= -DWITH_CYCLES:BOOL=ON
|
|
CYCLES_CMAKE_OFF= -DWITH_CYCLES:BOOL=OFF
|
|
CAMERATRACK_CMAKE_ON= -DWITH_LIBMV:BOOL=ON
|
|
CAMERATRACK_CMAKE_OFF= -DWITH_LIBMV:BOOL=OFF
|
|
CAMERATRACK_LIB_DEPENDS= libunwind.so:${PORTSDIR}/devel/libunwind
|
|
COLLADA_CMAKE_ON= -DWITH_OPENCOLLADA:BOOL=ON
|
|
COLLADA_CMAKE_OFF= -DWITH_OPENCOLLADA:BOOL=OFF
|
|
COLLADA_LIB_DEPENDS= libOpenCOLLADABaseUtils.so:${PORTSDIR}/graphics/opencollada
|
|
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
|
|
HEADLESS_CMAKE_ON= -DWITH_HEADLESS:BOOL=ON
|
|
HEADLESS_CMAKE_OFF= -DWITH_HEADLESS: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
|
|
MOD_OCEANSIM_CMAKE_ON= -DWITH_MOD_OCEANSIM:BOOL=ON
|
|
MOD_OCEANSIM_CMAKE_OFF= -DWITH_MOD_OCEANSIM:BOOL=OFF
|
|
NLS_CMAKE_ON= -DWITH_INTERNATIONAL:BOOL=ON
|
|
NLS_CMAKE_OFF= -DWITH_INTERNATIONAL:BOOL=OFF
|
|
# Use iconv:wchar_t to force the usage of iconv from ports.
|
|
# libboost_locale.so uses libiconv_open, while we only provide
|
|
# iconv_open in 10.x+
|
|
NLS_USES= gettext iconv:lib,wchar_t
|
|
OPENAL_CMAKE_ON= -DWITH_OPENAL:BOOL=ON
|
|
OPENAL_CMAKE_OFF= -DWITH_OPENAL:BOOL=OFF
|
|
OPENAL_USES= openal:al,alut
|
|
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
|
|
OPENIMAGEIO_CMAKE_ON= -DWITH_OPENIMAGEIO:BOOL=ON
|
|
OPENIMAGEIO_CMAKE_OFF= -DWITH_OPENIMAGEIO:BOOL=OFF
|
|
OPENIMAGEIO_LIB_DEPENDS= libOpenImageIO.so:${PORTSDIR}/graphics/openimageio
|
|
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/openjpeg15
|
|
# Only works, if everything else is compiled with the same compiler
|
|
# OPENMP_CMAKE_ON= -DWITH_OPENMP:BOOL=ON
|
|
# OPENMP_CMAKE_OFF= -DWITH_OPENMP:BOOL=OFF
|
|
# OPENMP_USES= compiler:openmp
|
|
# OPENMP_USES_OFF= compiler:features
|
|
PLAYER_CMAKE_ON= -DWITH_PLAYER:BOOL=ON
|
|
PLAYER_CMAKE_OFF= -DWITH_PLAYER:BOOL=OFF
|
|
RAYOPTIMIZATION_CMAKE_ON= -DWITH_RAYOPTIMIZATION:BOOL=ON
|
|
RAYOPTIMIZATION_CMAKE_OFF= -DWITH_RAYOPTIMIZATION:BOOL=OFF
|
|
REDCODE_CMAKE_ON= -DWITH_IMAGE_REDCODE:BOOL=ON
|
|
REDCODE_CMAKE_OFF= -DWITH_IMAGE_REDCODE:BOOL=OFF
|
|
SDL_CMAKE_ON= -DWITH_SDL:BOOL=ON
|
|
SDL_CMAKE_OFF= -DWITH_SDL:BOOL=OFF
|
|
SDL_USE= SDL=sdl
|
|
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
|
|
|
|
.include <bsd.port.options.mk>
|
|
|
|
.if ${PORT_OPTIONS:MDEBUG}
|
|
CMAKE_BUILD_TYPE= Debug
|
|
CMAKE_ARGS+= -DWITH_GHOST_DEBUG:BOOL=ON
|
|
.endif
|
|
|
|
.if ${PORT_OPTIONS:MMOD_OCEANSIM} && !${PORT_OPTIONS:MFFTW3}
|
|
BROKEN= MOD_OCEANSIM requires FFTW3
|
|
.endif
|
|
|
|
.if ${PORT_OPTIONS:MCYCLES} && !${PORT_OPTIONS:MOPENIMAGEIO}
|
|
BROKEN= CYCLES requires OPENIMAGEIO
|
|
.endif
|
|
|
|
.if ${PORT_OPTIONS:MCYCLESOSL}
|
|
.if !${PORT_OPTIONS:MCYCLES}
|
|
IGNORE= support for the OpenShadingLanguage in cycles obviously requires CYCLES
|
|
.endif
|
|
CMAKE_ARGS+= -DWITH_CYCLES_OSL:BOOL=ON \
|
|
-DLLVM_STATIC:BOOL=OFF \
|
|
-DWITH_LLVM:BOOL=ON \
|
|
-DLLVM_VERSION:STRING="3.4" \
|
|
-DLLVM_CONFIG:STRING="${LOCALBASE}/bin/llvm-config34"
|
|
LIB_DEPENDS+= liboslexec.so:${PORTSDIR}/graphics/openshadinglanguage
|
|
BUILD_DEPENDS+= llvm-config34:${PORTSDIR}/devel/llvm34
|
|
.else
|
|
CMAKE_ARGS+= -DWITH_CYCLES_OSL:BOOL=OFF
|
|
.endif
|
|
|
|
.if ${PORT_OPTIONS:MHEADLESS}
|
|
.if ${PORT_OPTIONS:MXINPUT} || ${PORT_OPTIONS:MXF86VMODE}
|
|
BROKEN= HEADLESS does not require any X11 dependency
|
|
.endif
|
|
.endif
|
|
|
|
.if ${PORT_OPTIONS:MOPENIMAGEIO}
|
|
.if !${PORT_OPTIONS:MOPENEXR} || !${PORT_OPTIONS:MTIFF}
|
|
BROKEN= OPENIMAGEIO requires OPENEXR and TIFF
|
|
.endif
|
|
.endif
|
|
|
|
.if ${PORT_OPTIONS:MPLAYER} && !${PORT_OPTIONS:MGAMEENGINE}
|
|
BROKEN= PLAYER requires GAMEENGINE
|
|
.endif
|
|
|
|
.if ${PORT_OPTIONS:MREDCODE}
|
|
.if !${PORT_OPTIONS:MOPENJPEG} || !${PORT_OPTIONS:MFFMPEG}
|
|
BROKEN= REDCODE requires OPENJPEG and FFMPEG
|
|
.endif
|
|
.endif
|
|
|
|
|
|
.include <bsd.port.pre.mk>
|
|
|
|
.if ${COMPILER_TYPE} == gcc
|
|
# gcc 4.2 does not support -msse4.1, which is needed for blender 2.70+
|
|
USE_GCC= yes
|
|
.endif
|
|
|
|
.if defined(MACHINE_CPU) && (${MACHINE_CPU:Msse} == "sse" || ${MACHINE_CPU:Mamd64} == "amd64")
|
|
.if ${PORT_OPTIONS:MFFMPEG}
|
|
BROKEN= Blender crashes on rendering, if ffmpeg is built with SSE support
|
|
.endif
|
|
.endif
|
|
|
|
post-patch:
|
|
.if ${PORT_OPTIONS:MOPENCOLORIO}
|
|
@${REINPLACE_CMD} -e 's|yaml-cpp|&03|' \
|
|
${PATCH_WRKSRC}/build_files/cmake/Modules/FindOpenColorIO.cmake
|
|
.endif
|
|
|
|
post-build:
|
|
@(cd ${WRKSRC}/doc/manpage && \
|
|
${PYTHON_CMD} blender.1.py \
|
|
${INSTALL_WRKSRC}/bin/blender \
|
|
${INSTALL_WRKSRC}/bin/${PORTNAME}.1)
|
|
|
|
# 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 ${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 \
|
|
${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} ${STAGEDIR}${DESKTOPDIR}
|
|
${INSTALL_DATA} ${INSTALL_WRKSRC}/bin/${PORTNAME}.desktop \
|
|
${STAGEDIR}${DESKTOPDIR}
|
|
@-update-desktop-database -q
|
|
@${ECHO} share/applications/${PORTNAME}.desktop >> ${TMPPLIST}
|
|
.endif
|
|
|
|
${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 ${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 ${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 ${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}
|
|
.endif
|
|
@${ECHO} @dirrm ${DATADIR_REL}/datafiles >> ${TMPPLIST}
|
|
@${ECHO} @dirrm ${DATADIR_REL} >> ${TMPPLIST}
|
|
|
|
${INSTALL_MAN} ${INSTALL_WRKSRC}/bin/${PORTNAME}.1 \
|
|
${STAGEDIR}${MAN1PREFIX}/man/man1
|
|
@${ECHO} man/man1/${PORTNAME}.1.gz >> ${TMPPLIST}
|
|
|
|
.include <bsd.port.post.mk>
|