aboutsummaryrefslogtreecommitdiff
path: root/science/orthanc/Makefile
blob: eae453aa5e4d347a6d180bdd05385d2fad5f08b9 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
# Created by: mp39590@gmail.com
# $FreeBSD$

PORTNAME=	orthanc
PORTVERSION=	0.9.1
CATEGORIES=	science graphics net www
MASTER_SITES=	http://orthanc-server.com/downloads/get.php?path=/orthanc/:main \
		http://www.montefiore.ulg.ac.be/~jodogne/Orthanc/ThirdPartyDownloads/:mongoose
DISTFILES=	Orthanc-${PORTVERSION}.tar.gz:main \
		mongoose-3.8.tgz:mongoose
DIST_SUBDIR=	${PORTNAME}

MAINTAINER=	mp39590@gmail.com
COMMENT=	RESTful DICOM server for healthcare and medical research

# GPLv3 license, with the OpenSSL exception.
LICENSE=	GPLv3
LICENSE_FILE=	${WRKSRC}/COPYING

BUILD_DEPENDS=	gtest-config:${PORTSDIR}/devel/googletest
LIB_DEPENDS=	libcurl.so:${PORTSDIR}/ftp/curl \
		libjsoncpp.so:${PORTSDIR}/devel/jsoncpp \
		libuuid.so:${PORTSDIR}/misc/e2fsprogs-libuuid \
		libglog.so:${PORTSDIR}/devel/glog \
		libboost_filesystem.so:${PORTSDIR}/devel/boost-libs \
		libboost_thread.so:${PORTSDIR}/devel/boost-libs \
		libboost_system.so:${PORTSDIR}/devel/boost-libs \
		libboost_date_time.so:${PORTSDIR}/devel/boost-libs \
		libboost_regex.so:${PORTSDIR}/devel/boost-libs \
		libboost_locale.so:${PORTSDIR}/devel/boost-libs \
		libdcmdsig.so:${PORTSDIR}/devel/dcmtk \
		libcharls.so:${PORTSDIR}/devel/dcmtk \
		libdcmjpls.so:${PORTSDIR}/devel/dcmtk \
		libsqlite3.so:${PORTSDIR}/databases/sqlite3 \
		libpugixml.so:${PORTSDIR}/textproc/pugixml

CMAKE_ARGS=	-DDCMTK_LIBRARIES="dcmdsig;charls;dcmjpls" \
		-DDCMTK_DICTIONARY_DIR="${LOCALBASE}/share/dcmtk" \
		-DUSE_SYSTEM_MONGOOSE=OFF \
		-DUNIT_TESTS_WITH_HTTP_CONNEXIONS=OFF

USES=		cmake:outsource python:build lua:51 dos2unix
DOS2UNIX_FILES=	CMakeLists.txt
USE_LDCONFIG=	yes
USE_OPENSSL=	yes
USE_RC_SUBR=	orthanc
WRKSRC=		${WRKDIR}/Orthanc-${PORTVERSION}
USERS=		orthanc
GROUPS=		orthanc

# This is mongoose sources, downloaded from Orthanc author homepage.  Orthanc
# requires mongoose webserver, but after version 3.8, mongoose developers has
# changed the license from MIT to GPLv2 only. This action made illegal to
# combine new mongoose versions with GPLv3 only Orthanc.
# We download sources manually and pass USE_SYSTEM_MONGOOSE=OFF to Orthanc
# cmake variables to tell that mongoose is not presented on the host OS and
# should be build together with the software instead.
# https://www.mail-archive.com/mongoose-users@googlegroups.com/msg00625.html
post-extract:
	${MKDIR} ${WRKSRC}/ThirdPartyDownloads
	${CP} ${DISTDIR}/${DIST_SUBDIR}/mongoose-3.8.tgz ${WRKSRC}/ThirdPartyDownloads
	# Orthanc hardcodes /usr/local paths for libs and includes.
	${REINPLACE_CMD} -e 's|/usr/local|${LOCALBASE}|g' ${WRKSRC}/Resources/CMake/Compiler.cmake
	${REINPLACE_CMD} -e 's|/usr/local|${LOCALBASE}|g' ${WRKSRC}/Resources/CMake/JsonCppConfiguration.cmake
	${REINPLACE_CMD} -e 's|/usr/local|${LOCALBASE}|g' ${WRKSRC}/Resources/CMake/SQLiteConfiguration.cmake

# There is no way to disable building of test units without a patch, on other
# hand it brings only one build dependency (devel/googletest) and running it was
# helpful in early bug detection in Debian.
# Some tests require connections to be made to the outside world, this is
# definitely unsupported behaviour and therefor those tests are disabled with
# cmake variable above (-DUNIT_TESTS_WITH_HTTP_CONNEXIONS=OFF).
post-build:
	@cd ${BUILD_WRKSRC} && ./UnitTests

post-install:
	${MKDIR} ${STAGEDIR}/var/db/orthanc/db/db-v5
	${MKDIR} ${STAGEDIR}${DATADIR}/plugins
	${MKDIR} ${STAGEDIR}${ETCDIR}
	${REINPLACE_CMD} -e 's|%%PREFIX%%|${PREFIX}|g' ${WRKSRC}/Resources/Configuration.json
	${CP} ${WRKSRC}/Resources/Configuration.json ${STAGEDIR}${ETCDIR}/orthanc.json.sample
	${STRIP_CMD} ${STAGEDIR}${DATADIR}/plugins/libServeFolders.so.${PORTVERSION}

.include <bsd.port.pre.mk>

.if ${OSVERSION} < 1001000
IGNORE=	supported only on 10.1 by upstream, not all unit tests are passed
.endif

.if ${OSVERSION} > 1100000
BROKEN=	unit tests are crashing, bug 200544
.endif

.include <bsd.port.post.mk>