sci-biology/micro-manager: udpate'
This commit is contained in:
190
sci-biology/micro-manager/micro-manager-9999.ebuild
Normal file
190
sci-biology/micro-manager/micro-manager-9999.ebuild
Normal file
@@ -0,0 +1,190 @@
|
||||
# Copyright 1999-2015 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: $
|
||||
|
||||
EAPI=5
|
||||
|
||||
PYTHON_COMPAT=( python{2_6,2_7,3_1,3_2,3_3,3_4} )
|
||||
DISTUTILS_OPTIONAL=1
|
||||
CONFIG_CHECK="VIDEO_V4L2"
|
||||
JAVA_ANT_DISABLE_ANT_CORE_DEP=1
|
||||
inherit autotools java-pkg-opt-2 java-ant-2 distutils-r1 linux-info vcs-snapshot
|
||||
|
||||
MY_PN="micromanager-upstream"
|
||||
|
||||
DESCRIPTION="The Open Source Microscopy Software"
|
||||
HOMEPAGE="http://www.micro-manager.org/"
|
||||
if [[ ${PV} == 9999 ]]; then
|
||||
inherit git-r3
|
||||
EGIT_REPO_URI="https://github.com/mdcurtis/${MY_PN}.git"
|
||||
SRC_URI=""
|
||||
else
|
||||
SRC_URI="http://github.com/mdcurtis/${MY_PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
|
||||
fi
|
||||
|
||||
SLOT="0"
|
||||
LICENSE="GPL-3 BSD LGPL-2.1"
|
||||
KEYWORDS="~amd64 ~x86"
|
||||
IUSE_proprietary="andor andorsdk3"
|
||||
IUSE="+X +java python doc ${IUSE_proprietary}"
|
||||
REQUIRED_USE="X? ( java ) python? ( ${PYTHON_REQUIRED_USE} )"
|
||||
|
||||
CAMERA_DEPS="
|
||||
dev-libs/hidapi
|
||||
dev-libs/libusb-compat
|
||||
media-libs/freeimage
|
||||
media-libs/libdc1394
|
||||
media-libs/libgphoto2
|
||||
media-libs/opencv
|
||||
"
|
||||
PROPRIETARY_DEPS="
|
||||
andor? ( sci-libs/andor-camera-driver:2 )
|
||||
andorsdk3? ( sci-libs/andor-camera-driver:3 )
|
||||
"
|
||||
COMMON_DEPS="
|
||||
${CAMERA_DEPS}
|
||||
${PROPRIETARY_DEPS}
|
||||
X? (
|
||||
dev-java/commons-math:2
|
||||
dev-java/commons-math:3
|
||||
sci-libs/TSFProto:0
|
||||
sci-libs/bioformats:0
|
||||
dev-java/absolutelayout
|
||||
dev-java/bsh:0
|
||||
dev-java/gson:2.2.2
|
||||
dev-java/guava:17
|
||||
dev-java/jcommon:1.0
|
||||
dev-java/jfreechart:1.0
|
||||
dev-java/joda-time:0
|
||||
dev-java/miglayout:0
|
||||
dev-java/rsyntaxtextarea:0
|
||||
dev-java/swing-layout:1
|
||||
dev-java/swingx:1.6
|
||||
dev-lang/clojure:1.6
|
||||
dev-java/clojure-core-cache:0
|
||||
dev-java/clojure-core-memoize:0
|
||||
dev-java/clojure-data-json:0
|
||||
dev-libs/protobuf:0=[java]
|
||||
>=sci-biology/imagej-1.48:0=
|
||||
)
|
||||
python? ( dev-python/numpy[${PYTHON_USEDEP}] ${PYTHON_DEPS} )
|
||||
"
|
||||
RDEPEND="
|
||||
${COMMON_DEPS}
|
||||
java? ( >=virtual/jre-1.6 )
|
||||
"
|
||||
DEPEND="
|
||||
${COMMON_DEPS}
|
||||
dev-libs/boost
|
||||
doc? ( app-doc/doxygen )
|
||||
java? (
|
||||
>=virtual/jdk-1.6
|
||||
dev-lang/swig
|
||||
dev-java/ant-core
|
||||
>=dev-java/ant-contrib-1.0_beta3:0
|
||||
dev-java/hamcrest-core:1.3
|
||||
>=dev-java/junit-4.11:4
|
||||
)
|
||||
python? ( dev-lang/swig )
|
||||
"
|
||||
|
||||
JAVA_ANT_REWRITE_CLASSPATH=1
|
||||
JAVA_ANT_CLASSPATH_TAGS="mm-javac javac xjavac"
|
||||
EANT_GENTOO_CLASSPATH="bsh,imagej,clojure-1.6,joda-time,bioformats,commons-math-2,commons-math-3,gson-2.2.2,guava-17,jcommon-1.0,jfreechart-1.0,miglayout,rsyntaxtextarea,swingx-1.6,TSFProto,protobuf"
|
||||
ECLJ_GENTOO_CLASSPATH="clojure-core-cache,clojure-core-memoize,clojure-data-json"
|
||||
|
||||
pkg_setup() {
|
||||
java-pkg-opt-2_pkg_setup
|
||||
linux-info_pkg_setup
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
epatch "${FILESDIR}"/secretdevice.patch
|
||||
epatch "${FILESDIR}"/drop_direct_junit_paths.patch
|
||||
epatch "${FILESDIR}"/disable_prefs_during_clojure_builds.patch
|
||||
epatch "${FILESDIR}"/makefile.am-typo.patch
|
||||
|
||||
# Disable build of plugins that are impossible to satisfy the dependencies of
|
||||
local ech
|
||||
for ech in ClojureEditor ; do
|
||||
sed -i -e "/${ech}.jar/d" plugins/Makefile.am || die
|
||||
mv plugins/${ech}/build.xml{,.donotbuild} || die
|
||||
done
|
||||
|
||||
eautoreconf
|
||||
|
||||
java-pkg-opt-2_src_prepare
|
||||
use python && distutils-r1_src_prepare
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
local conf_opts my_ant_flags=()
|
||||
|
||||
if use X ; then
|
||||
local ij_jar=$(java-pkg_getjar imagej ij.jar)
|
||||
local ij_dir=$(dirname ${ij_jar})
|
||||
else
|
||||
conf_opts+=" --disable-java-app"
|
||||
fi
|
||||
|
||||
if use java ; then
|
||||
local jdk_home=$(java-config -O)
|
||||
# ./configure fails when it sees eselect-java's bash scripts.
|
||||
conf_opts+=" JAVA_HOME=${jdk_home}"
|
||||
conf_opts+=" JAVA=$(java-config -J)"
|
||||
conf_opts+=" JAVAC=$(java-config -c)"
|
||||
conf_opts+=" JAR=$(java-config -j)"
|
||||
my_ant_flags+=( -Dmm.build.java.lib.ant-contrib=$(java-pkg_getjar --build-only ant-contrib ant-contrib.jar) )
|
||||
my_ant_flags+=( -Dmm.build.java.lib.junit=$(java-pkg_getjar --build-only junit-4 junit.jar) )
|
||||
my_ant_flags+=( -Dmm.build.java.lib.hamcrest-core=$(java-pkg_getjar --build-only hamcrest-core-1.3 hamcrest-core.jar) )
|
||||
my_ant_flags+=( -Dgentoo.classpath=$(java-pkg_getjars ${EANT_GENTOO_CLASSPATH}):$(java-pkg_getjars --with-dependencies ${ECLJ_GENTOO_CLASSPATH}) )
|
||||
fi
|
||||
|
||||
if use python ; then
|
||||
python_setup
|
||||
local python_home=$(python_get_library_path)
|
||||
fi
|
||||
|
||||
ANTFLAGS="${my_ant_flags[@]}" \
|
||||
CC="$(tc-getCC)" CXX="$(tc-getCXX)" LD="$(tc-getLD)" AR="$(tc-getAR)" RANLIB="$(tc-getRANLIB)" \
|
||||
econf \
|
||||
$(use_enable X imagej-plugin ${ij_dir}) \
|
||||
--disable-install-dependency-jars \
|
||||
$(use_with java java ${jdk_home}) \
|
||||
$(use_with python python ${python_home}) \
|
||||
$(use_with X ij-jar ${ij_jar}) \
|
||||
${conf_opts}
|
||||
|
||||
java-ant-2_src_configure
|
||||
java-ant_rewrite-classpath buildscripts/javabuild.xml
|
||||
java-ant_rewrite-classpath autofocus/buildscripts/autofocusbuild.xml
|
||||
# manually hack gentoo.classpath into the clojure classpath
|
||||
sed -i -e 's#.*</clj-classpath>.*#<pathelement path="${gentoo.classpath}"/>\n&#' \
|
||||
buildscripts/clojurebuild.xml || die
|
||||
}
|
||||
|
||||
src_install() {
|
||||
emake DESTDIR="${D}" install
|
||||
|
||||
# TODO doc.
|
||||
# TODO source.
|
||||
# TODO examples.
|
||||
use java && java-pkg_regjar /usr/share/imagej/lib/plugins/Micro-Manager/{MMCoreJ,MMJ_,MMAcqEngine}.jar
|
||||
|
||||
if use X; then
|
||||
java-pkg_dolauncher ${PN}-standalone \
|
||||
--main org.micromanager.MMStudio \
|
||||
--pwd /usr/share/imagej/lib \
|
||||
--java_args '-Xmx1024M -XX:MaxDirectMemorySize=1000G' \
|
||||
--pkg_args '-Dmmcorej.library.loading.stderr.log=yes -Dmmcorej.library.path="/usr/share/imagej/lib" -Dorg.micromanager.plugin.path="/usr/share/imagej/lib/mmplugins" -Dorg.micromanager.autofocus.path="/usr/share/imagej/lib/mmautofocus" -Dorg.micromanager.default.config.file="/usr/share/imagej/lib/MMConfig_demo.cfg" -Dorg.micromanager.corelog.dir=/tmp' \
|
||||
|
||||
java-pkg_dolauncher ${PN} \
|
||||
--main ij.ImageJ \
|
||||
--pwd /usr/share/imagej/lib \
|
||||
--java_args '-Xmx1024M -XX:MaxDirectMemorySize=1000G' \
|
||||
--pkg_args '-Dmmcorej.library.loading.stderr.log=yes -Dmmcorej.library.path="/usr/share/imagej/lib" -Dorg.micromanager.plugin.path="/usr/share/imagej/lib/mmplugins" -Dorg.micromanager.autofocus.path="/usr/share/imagej/lib/mmautofocus" -Dorg.micromanager.default.config.file="/usr/share/imagej/lib/MMConfig_demo.cfg" -Dorg.micromanager.corelog.dir=/tmp' \
|
||||
|
||||
make_desktop_entry "${PN} -eval 'run(\"Micro-Manager Studio\");'" "Micro-Manager Studio" ImageJ \
|
||||
"Graphics;Science;Biology"
|
||||
fi
|
||||
}
|
||||
Reference in New Issue
Block a user