freebsd-ports/graphics/darktable/Makefile
Matthias Andree a8791e3734 graphics/darktable: update to new release 3.0.0
Announcement:
<https://www.darktable.org/2019/12/darktable-300-released/>

<https://www.darktable.org/2019/12/darktable-30/>

Additional changes:
- ONLY_FOR_ARCHS* variables moved up to please portlint
- some CMAKE_ARGS hacks with CMAKE_*_COMPILER_LAUNCHER to get ccache back in
- switch from hardcoding LLVM_VER=60 to ${LLVM_DEFAULT}
- strip out -D_XOPEN_SOURCE=... (upstream CMakeLists.txt) because it is harmful
  in hiding, for instance, u_char typedefs, which causes compilation failure
  down the road for cups_print.

PR:		242943
Approved by:	dumbbell@ (maintainer)
2020-01-06 16:52:00 +00:00

130 lines
3.9 KiB
Makefile

# Created by: Alexey Dokuchaev <danfe@FreeBSD.org>
# $FreeBSD$
PORTNAME= darktable
PORTVERSION= 3.0.0
CATEGORIES= graphics
MASTER_SITES= https://github.com/darktable-org/${PORTNAME}/releases/download/release-${PORTVERSION:C/\.rc/rc/}/
MAINTAINER= dumbbell@FreeBSD.org
COMMENT= Virtual lighttable and darkroom for photographers
LICENSE= GPLv3
ONLY_FOR_ARCHS= amd64
ONLY_FOR_ARCHS_REASON= uses SSE instructions and 64-bit address space
BUILD_DEPENDS= ${LOCALBASE}/libdata/pkgconfig/iso-codes.pc:misc/iso-codes \
xsltproc:textproc/libxslt \
po4a-translate:textproc/po4a
LIB_DEPENDS= libcurl.so:ftp/curl \
libexiv2.so:graphics/exiv2 \
libjson-glib-1.0.so:devel/json-glib \
liblcms2.so:graphics/lcms2 \
liblensfun.so:graphics/lensfun \
libpng.so:graphics/png \
libpugixml.so:textproc/pugixml \
libsoup-2.4.so:devel/libsoup \
libtiff.so:graphics/tiff
USES= cmake compiler:c++11-lib desktop-file-utils \
gl gnome jpeg pkgconfig sqlite tar:xz xorg
USE_GL= glu
USE_GNOME= cairo gtk30 intltool librsvg2 libxml2
USE_XORG= ice sm x11 xext xrandr
USE_LDCONFIG= ${PREFIX}/lib/${PORTNAME}
INSTALLS_ICONS= yes
OPTIONS_DEFINE= COLORD DOCS FLICKR GEO GPHOTO GRAPHMAGICK \
LIBSECRET LUA NLS OPENEXR OPENJPEG PRINT WEBP
GEO_DESC= Support geotagging
LIBSECRET_DESC= Support libsecret as password backend
OPTIONS_DEFAULT=COLORD FLICKR GEO GPHOTO LUA OPENEXR OPENJPEG \
PRINT WEBP
OPTIONS_SUB= yes
WRKSRC= ${WRKDIR}/${PORTNAME}-${PORTVERSION:C/\.rc/~rc/}
CMAKE_ARGS+= -DBINARY_PACKAGE_BUILD=1
CMAKE_ARGS+= -DBUILD_CMSTEST:BOOL=ON
CMAKE_ARGS+= -DUSE_KWALLET:BOOL=ON
LDFLAGS+= -L${LOCALBASE}/lib
CFLAGS+= -fopenmp
COLORD_LIB_DEPENDS= libcolord.so:graphics/colord \
libcolord-gtk.so:graphics/colord-gtk
COLORD_CMAKE_OFF= -DUSE_COLORD:BOOL=OFF
FLICKR_LIB_DEPENDS= libflickcurl.so:www/flickcurl
FLICKR_CMAKE_OFF= -DUSE_FLICKR:BOOL=OFF
GEO_LIB_DEPENDS= libosmgpsmap-1.0.so:x11-toolkits/osm-gps-map
GEO_CMAKE_OFF= -DUSE_MAP:BOOL=OFF
GPHOTO_LIB_DEPENDS= libgphoto2.so:graphics/libgphoto2
GPHOTO_CMAKE_OFF= -DUSE_CAMERA_SUPPORT:BOOL=OFF
GRAPHMAGICK_LIB_DEPENDS=libGraphicsMagick.so:graphics/GraphicsMagick
GRAPHMAGICK_CMAKE_OFF= -DUSE_GRAPHICSMAGICK:BOOL=OFF
LIBSECRET_LIB_DEPENDS= libsecret-1.so:security/libsecret
LIBSECRET_CMAKE_OFF= -DUSE_LIBSECRET:BOOL=OFF
LUA_USES= lua:53
LUA_CMAKE_OFF= -DUSE_LUA:BOOL=OFF
# FIXME: Even with NLS turned off, darktable(1) is still linked to
# libintl.so.
NLS_USES= gettext
NLS_USES_OFF= gettext-runtime
NLS_CMAKE_OFF= -DUSE_NLS:BOOL=OFF
NLS_LDFLAGS= -L${LOCALBASE}/lib -lintl
OPENEXR_LIB_DEPENDS= libIlmImf.so:graphics/openexr \
libIlmThread.so:graphics/ilmbase
OPENEXR_CMAKE_OFF= -DUSE_OPENEXR:BOOL=OFF
OPENJPEG_LIB_DEPENDS= libopenjp2.so:graphics/openjpeg
OPENJPEG_CMAKE_OFF= -DUSE_OPENJPEG:BOOL=OFF
PRINT_LIB_DEPENDS= libcups.so:print/cups
PRINT_CMAKE_OFF= -DBUILD_PRINT:BOOL=OFF
WEBP_LIB_DEPENDS= libwebp.so:graphics/webp
WEBP_CMAKE_OFF= -DUSE_WEBP:BOOL=OFF
.include <bsd.port.pre.mk>
# work around CMAKE/CCACHE flaw (cmake stomps over ccache)
.if "${WITH_CCACHE_BUILD}" == "yes" && !defined(NO_CCACHE)
CMAKE_ARGS+= -DCMAKE_C_COMPILER_LAUNCHER=${CCACHE_BIN} \
-DCMAKE_CXX_COMPILER_LAUNCHER=${CCACHE_BIN}
.endif
# Base clang may not support OpenMP, use ports clang:
.if ${ARCH} == amd64 && ${CHOSEN_COMPILER_TYPE} == clang
LLVM_VER= ${LLVM_DEFAULT}
BUILD_DEPENDS+= clang${LLVM_VER}:devel/llvm${LLVM_VER}
CPP= clang-cpp${LLVM_VER}
CC= clang${LLVM_VER}
CXX= clang++${LLVM_VER}
LIB_DEPENDS+= libomp.so:devel/llvm${LLVM_VER}
.endif
.if defined(WITH_DEBUG)
CMAKE_BUILD_TYPE= RelWithDebInfo
STRIP=
.endif
# darktable defines the __XOPEN_SOURCE preprocessor macro, which
# restricts symbol visibility on FreeBSD and causes compilation failures
# on, for instance, the cups_print module, because u_char remains
# undefined. Remove _XOPEN_SOURCE maro definitions.
post-patch:
${REINPLACE_CMD} '/add_definitions."-D_XOPEN_SOURCE=.*"/d' ${WRKSRC}/CMakeLists.txt
.include <bsd.port.post.mk>