sci-biology/micro-manager: udpate'
This commit is contained in:
18
sci-biology/micro-manager/Manifest
Normal file
18
sci-biology/micro-manager/Manifest
Normal file
@@ -0,0 +1,18 @@
|
||||
AUX Andor.cpp 138039 SHA256 17f089ac3a5e1d10f753d1c0319b6649170ceac0ac6c05cec6a88f928c7a83d5 SHA512 e32c9cc6c9d237b691bf95653a511d322a26179675921a1a4e5631f24971edb7eb14d74ebbab7148a0261cb33a05596d37af8bf863da2f1208c0a3e1fcbb457b WHIRLPOOL 21db067ec74dee9a271b87be6ee62b8fd4b411609c8b4bbd176c0bd727817e5c26f020dfc4d0cd9bff9e8be1266938a5f8d2ad7043a6a689848154b518f8ff61
|
||||
AUX Andor.h 13661 SHA256 87852c9dc2a31b80958f98fea24226fcbc31398735b32a99e7a9e45bbcbdf75a SHA512 cd37dde7dcb13c4e97416605581f768bdd483c7c5f43a916bfe9fed643b20307c6a0458ea8f4c58ec7e8f787cfb7dd9102bc6b517fca6aa6cadf19da2baa7bdb WHIRLPOOL c6517249b59c75d5fe08bd74278f5f5514264eed2bc35368efb7898261c787704a51dc9e91703cf00d7db26301f9fd445852c5902c63fbc78ad491ef4625afbb
|
||||
AUX andor_camera_detection.patch 763 SHA256 eaf94996c94086cececeb359e0e056a09fcf6b6b3bdcfbc7657835d1c4039aa3 SHA512 17bdd0fdfbf8b1c9e004b2217fd6f81f25223b87a167de1d07b0e1266454bbe571b677850c316e0338bf7049adde8455f04365396f5daa912c1a0a5bad54de68 WHIRLPOOL e7518789d1a6b8878fe1082ed624b28e583ddd3dc2e3965d258ac089bc3dd3fc49e4b94cb6cd579ea530d0401311703136364909022021a51123a042c28f7794
|
||||
AUX arduino_detection.patch 634 SHA256 81f13ac088ddafa1c22a1e4bb3c616c2fcb437a38d32ca573f75dff5f1ca6a4d SHA512 3ccd769afba93f85d2962d0f31210e452f31b0647869b1bc504e958b71f96dfe67d4c312814a161a5b965abc434f3b6d413f157f7a5b0cfd99e52b2fd90ef768 WHIRLPOOL d01abf314a2ee9ab66fe7be01922be9de848d0b57fe983db3ae561c5cf6732ca2adc480096d4c50859d6914635561fbab41a5d0a8b5c6f9c7b6f4bb631b0d0e6
|
||||
AUX boost_ipc_detail.patch 858 SHA256 d56dfa262120dac6c54614d5f157bb412390ccadc22a151e736ce7372dfe154d SHA512 f1e5c6094e0b3961b3843d592f703246f119109e176e0d58a5ce92739331dd594d40f7d19b1c649f531b4c56f10c38c4bb5283e5fcd8276266c1f9e49b285ac2 WHIRLPOOL 1a8cc0be27965dedf55136dd60da65b5b5d7f39b799250fd504e5c9ea0c00c5425352e50c8b25f485aedc1e55a97207426423ef396378ca6d660f68458c184f0
|
||||
AUX disable_prefs_during_clojure_builds.patch 551 SHA256 1b5850d93bb52e971583986f3b7c936dcb6e53a085ee06cd10860543fc0c2528 SHA512 dc239137eecae4a39a38bedc5634e0ef3c4feb0bd9eb4738f5c06cbb106c07d8db5e1b2acb30b5963ab54dca0f6723e0c5772569fe95d61ae2152026990405f7 WHIRLPOOL 91984cba677ae48ce95160cfa8959de1f13c0fa4e77740cc991a3c86a8e88e2f3dcefe74cda72349b5edd2f91e37ad376fca376229e7c6c8ae23787821b6332c
|
||||
AUX drop_direct_junit_paths.patch 853 SHA256 046002a1d521838c9b6914954189808f75ce30864b47ff6e003384a9f292e8e6 SHA512 9a5e41ef55b4712a56adba5a701e64199b8af36dee0a2b1e88e9b7cb1f79688676af83083b62a4a8c76dc38973d9b3d15d55836a0a7dace94f3dddcd27c6e320 WHIRLPOOL 7323e5f8cceba313617331399fe0540a418bab6799de16528c5040d0d9e8a01ecb1fb20567dc73459ae704a6ede2f6bffbd2bfed025f9c60f5b6aecbbbdf7ce1
|
||||
AUX makefile.am-typo.patch 244 SHA256 cb02714dae92dbe577c1863d73e78d405c6fe9318056319a47aee44d47b92e84 SHA512 9a5f1d7f024b4acd2a200af0705416d5ece7529e0f1300426aa526dca6e8a1715a5206838f06d8fe89c01c509e4538a95776fcced8969925b50bd712735f1de5 WHIRLPOOL 71e1eb813cd72118cf9bb0202739e546e0964169c5f08712872ed0ec9be9f694853da3f0a690c187f11c0b3910a3b916f8f527b903c3d456978346c49a4dc3cc
|
||||
AUX mmcorepy_setup_add_zlib.patch 486 SHA256 ea9d7fa40410d5a6e26284d13781e23aa2d7855966661ecc6f1168dfa34d58c7 SHA512 6b0fb98f6a76bd4c13bfea169055b41165a723f1d6b55684300befb1b61b794f24ce8e6d14b0ad25eb84cc510b36b178c8d8b21c3309ab8305f79d764bef950b WHIRLPOOL 4c65bf04f7a7075311f6de1955757024c3e68d50e3bcebf5f731e700fe7a992e17dddf5f88740fdf74c292b7c40292466e7bc736f83b2aedd10e1f616f6682e3
|
||||
AUX secretdevice.patch 1074 SHA256 754561bc0f8491a765074bec7049da0184a5721614b5ade5d1fd91d73ccd6768 SHA512 63d06b8256e65a3b4d00e027e8b8e8932ce9e5d1d49603d7068757e84af6a6f706a999b24a845d3363bc466ebf6d55d8542a0be5dcc2fedba7e9e93ff8b8a25c WHIRLPOOL 2a6863edede587399c453d738c62c6ef8d3986a5da18d01cdcb852159063d4b61298bbcc2e960e47b1a2ca121c25dca28ce78ead546133c3f4349b4a8a44ae90
|
||||
DIST micro-manager-1.4.13.tar.gz 47277659 SHA256 08ce81263745e9cef928600257af6423728cc7d1840d1ccfc9f6be98e413e1bb SHA512 8473af6efbf871334512c7837baf9d6776d22bf1d061f932f97b20eb19d2e9aa01f0ab17cced422a10a5c9f4633e92141e8b8f94e8162336f812115874676ae0 WHIRLPOOL 03719f68fba876315831b25bfc60620d2b1ee70e3a47bff656ae0bdf864401d43961b0d9925b5bed7fcfa14acb70b415a85e149255bba69bcc58749d5be500c5
|
||||
DIST micro-manager-1.4.21.tar.gz 30896616 SHA256 bbb2c07455b6892f71b6e5911f9505f94c0116f0df4bb1da008a822b0dd20203 SHA512 7b82423a40c3aba24103fd5bc3dc48a6c4609e45556261c814393d68c67797ae3578a1787c1b9c2a1911b1d40ca859ea9065f56c3876f319d4483213cb675565 WHIRLPOOL 6bb75139af49ecd77a93874183e11f5d7e468eae666e65ad0ec42860d2f84dfb17cdb7054f142e1d4f966b1aa38eb9a8c9424a2a91200d78509c74f106b85d38
|
||||
DIST micro-manager-1.4.22.tar.gz 31106517 SHA256 69194632bea1f364c5f9afcd873cdc69ecf31a5c017bd2d7b2c80a78977a112d SHA512 79da65a4cf38b76eaadea72f9f2494b17726a6fbe4e790fa33802a862e1d381b0c1df0d0479a0a0fac746e90d5c32447ce34c3dcd433fc3f7dcb88e9300a1cd2 WHIRLPOOL 468c0e6d6be204da42814501e39fd1fd2c8c08c555cbfffcf100ed8fb8ea507a603d5f76f52bcb5a162818c965dcc529b27d67265585423ae0f827768adc57f6
|
||||
EBUILD micro-manager-1.4.10.ebuild 4908 SHA256 a28116c852fb2ad52d0da8989689472d530207eb8cf4ec224288097f9bad22f0 SHA512 4e327d139b1dc182356a37c553e57a9d1ad7af9ffbbd5ffdb51a08dda6b0bb8f349a8f928ffe709f35b6bf03359100962a42c65d9f5c07858fba87bf29c1271f WHIRLPOOL 136405ac0d690ce4c5d8924dad11caea8fbb516439cba3e3adebe527d2d3de1bf69dae400dd0ed9e86c795a217d5f17026798ff4c089f83f30ccf70e5d7dc040
|
||||
EBUILD micro-manager-1.4.13.ebuild 5905 SHA256 1d49668c156c9aba09c232b5fced56695904c46e7f4c913b20cd67ffeb1450e3 SHA512 2eee78a1017fe24b039ca8de4b5320ab9683294fb4ca3275416f47b034afc6162111682323163f41c61615a599528cb24e699cffd193322b7202bd27a3e50c69 WHIRLPOOL 2b793da0b8c2b3387b44cb49a23f7f94a4bd04214db218523f15703644b806cb04747c34cfb737d273e76ff9f5eeb0917ed8a63acb43a6104258e42e5d73d507
|
||||
EBUILD micro-manager-1.4.21-r1.ebuild 6151 SHA256 ef2307cc71434315c52b8f2961badc2e299546e0da90898f06b2914a7f8e1392 SHA512 547a61d0f63636ae098f3d9050993727c0318fa06ce6541ebf30153e00fd466299fdba22da909b6575d7ea79a91e28ae396504a5734565f7eaab728568d7617e WHIRLPOOL 6ea78ef3a928aa9b423f6f67a515a9773ef6f4beb148884aca8209dcbfdb18540a9b9cd093a8a8c35ab04d34853ee3d378640a61591188634f050978976998f2
|
||||
EBUILD micro-manager-1.4.22.ebuild 6192 SHA256 bb75f2e6f2aea81ca03335deb6cd4ee88012ea658c20118067caae851bd7f222 SHA512 7299b848c3f288b4fb3c6a3b9b5f70ba39c84aece37278e11362a51cad848b432b2381184efeaf46c6a23d317e69e8494134597ae0d309b603d48f081ecd48cc WHIRLPOOL 0e2a0de610cb005a1d83e99cfeca8aaad775860308cddea8c3d15b978a329ef6461135b9a6aa9a3f3738de46e41925eea17f941612dad939d476be1f7267d4ca
|
||||
EBUILD micro-manager-9999.ebuild 6192 SHA256 f88bc6bf2a6ee4910c07f9adfe6d93146739655db42743e81fd0cdf69f4ae529 SHA512 09ec7df0e5dfab650856d45822f6c825c23ef9e910843627cdb971ab7abd23bb91a3bcfed9f0265ef68b9c5b2fa86e6317ee1f66fe7f3d1e37e135afa1465510 WHIRLPOOL e4004186b49d5ab89e7f70f0ada84db66a8a67f32bf7a8ce2495ed36c594e57f43a623039d9358096120e68cd489409a46187c986c9efcc856c65dca05945d54
|
||||
4541
sci-biology/micro-manager/files/Andor.cpp
Normal file
4541
sci-biology/micro-manager/files/Andor.cpp
Normal file
File diff suppressed because it is too large
Load Diff
394
sci-biology/micro-manager/files/Andor.h
Normal file
394
sci-biology/micro-manager/files/Andor.h
Normal file
@@ -0,0 +1,394 @@
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// FILE: Andor.h
|
||||
// PROJECT: Micro-Manager
|
||||
// SUBSYSTEM: DeviceAdapters
|
||||
//-----------------------------------------------------------------------------
|
||||
// DESCRIPTION: Andor camera module
|
||||
//
|
||||
// AUTHOR: Nenad Amodaj, nenad@amodaj.com, 06/30/2006
|
||||
// COPYRIGHT: University of California, San Francisco, 2006
|
||||
// 100X Imaging Inc, 2008
|
||||
//
|
||||
// LICENSE: This file is distributed under the BSD license.
|
||||
// License text is included with the source distribution.
|
||||
//
|
||||
// This file is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty
|
||||
// of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
//
|
||||
// IN NO EVENT SHALL THE COPYRIGHT OWNER OR
|
||||
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES.
|
||||
//
|
||||
// REVISIONS: May 21, 2007, Jizhen Zhao, Andor Technologies
|
||||
// Temerature control and other additional related properties added,
|
||||
// gain bug fixed, refernce counting fixed for shutter adapter.
|
||||
//
|
||||
// May 23 & 24, 2007, Daigang Wen, Andor Technology plc added/modified:
|
||||
// Cooler is turned on at startup and turned off at shutdown
|
||||
// Cooler control is changed to cooler mode control
|
||||
// Pre-Amp-Gain property is added
|
||||
// Temperature Setpoint property is added
|
||||
// Temperature is resumed as readonly
|
||||
// EMGainRangeMax and EMGainRangeMin are added
|
||||
//
|
||||
// FUTURE DEVELOPMENT: From September 1 2007, the development of this adaptor is taken over by Andor Technology plc. Daigang Wen (d.wen@andor.com) is the main contact. Changes made by him will not be labeled.
|
||||
//
|
||||
// CVS: $Id: Andor.h 10061 2012-10-09 15:38:57Z normanglasgow $
|
||||
//
|
||||
#ifndef _ANDOR_H_
|
||||
#define _ANDOR_H_
|
||||
|
||||
#include "../../MMDevice/DeviceBase.h"
|
||||
#include "../../MMDevice/MMDevice.h"
|
||||
#include "../../MMDevice/ImgBuffer.h"
|
||||
#include "../../MMDevice/DeviceUtils.h"
|
||||
#include "../../MMDevice/DeviceThreads.h"
|
||||
#include <string>
|
||||
#include <sstream>
|
||||
#include <map>
|
||||
|
||||
// error codes
|
||||
#define ERR_BUFFER_ALLOCATION_FAILED 101
|
||||
#define ERR_INCOMPLETE_SNAP_IMAGE_CYCLE 102
|
||||
#define ERR_INVALID_ROI 103
|
||||
#define ERR_INVALID_READOUT_MODE_SETUP 104
|
||||
#define ERR_CAMERA_DOES_NOT_EXIST 105
|
||||
#define ERR_BUSY_ACQUIRING 106
|
||||
#define ERR_INVALID_PREAMPGAIN 107
|
||||
#define ERR_INVALID_VSPEED 108
|
||||
#define ERR_TRIGGER_NOT_SUPPORTED 109
|
||||
#define ERR_OPEN_OR_CLOSE_SHUTTER_IN_ACQUISITION_NOT_ALLOWEDD 110
|
||||
#define ERR_NO_AVAIL_AMPS 111
|
||||
#define ERR_SOFTWARE_TRIGGER_IN_USE 112
|
||||
|
||||
class AcqSequenceThread;
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
// Implementation of the MMDevice and MMCamera interfaces
|
||||
//
|
||||
class AndorCamera : public CCameraBase<AndorCamera>
|
||||
{
|
||||
public:
|
||||
friend class AcqSequenceThread;
|
||||
static AndorCamera* GetInstance();
|
||||
|
||||
~AndorCamera();
|
||||
|
||||
// MMDevice API
|
||||
int Initialize();
|
||||
int Shutdown();
|
||||
|
||||
void GetName(char* pszName) const;
|
||||
bool Busy() {return false;}
|
||||
|
||||
// MMCamera API
|
||||
int SnapImage();
|
||||
const unsigned char* GetImageBuffer();
|
||||
unsigned GetImageWidth() const {return img_.Width();}
|
||||
unsigned GetImageHeight() const {return img_.Height();}
|
||||
unsigned GetImageBytesPerPixel() const {return img_.Depth();}
|
||||
long GetImageBufferSize() const {return img_.Width() * img_.Height() * GetImageBytesPerPixel();}
|
||||
unsigned GetBitDepth() const;
|
||||
int GetBinning() const;
|
||||
int SetBinning(int binSize);
|
||||
double GetExposure() const;
|
||||
void SetExposure(double dExp);
|
||||
int SetROI(unsigned uX, unsigned uY, unsigned uXSize, unsigned uYSize);
|
||||
int GetROI(unsigned& uX, unsigned& uY, unsigned& uXSize, unsigned& uYSize);
|
||||
int ClearROI();
|
||||
int IsExposureSequenceable(bool& isSequenceable) const {isSequenceable = false; return DEVICE_OK;}
|
||||
|
||||
// high-speed interface
|
||||
int PrepareSequenceAcqusition()
|
||||
{
|
||||
return DEVICE_OK;
|
||||
}
|
||||
int StartSequenceAcquisition(long numImages, double interval_ms, bool stopOnOverflow);
|
||||
/**
|
||||
* Continuous sequence acquisition.
|
||||
* Default to sequence acquisition with a high number of images
|
||||
*/
|
||||
int StartSequenceAcquisition(double interval)
|
||||
{
|
||||
return StartSequenceAcquisition(LONG_MAX, interval, false);
|
||||
}
|
||||
|
||||
int StopSequenceAcquisition(); // temporary=true
|
||||
int StopSequenceAcquisition(bool temporary);
|
||||
|
||||
bool IsCapturing(){return sequenceRunning_;};
|
||||
|
||||
// action interface for the camera
|
||||
int OnBinning(MM::PropertyBase* pProp, MM::ActionType eAct);
|
||||
int OnExposure(MM::PropertyBase* pProp, MM::ActionType eAct);
|
||||
int OnPixelType(MM::PropertyBase* pProp, MM::ActionType eAct);
|
||||
int OnGain(MM::PropertyBase* pProp, MM::ActionType eAct);
|
||||
int OnEMSwitch(MM::PropertyBase* pProp, MM::ActionType eAct);
|
||||
int OnReadoutMode(MM::PropertyBase* pProp, MM::ActionType eAct);
|
||||
int OnReadoutTime(MM::PropertyBase* pProp, MM::ActionType eAct);
|
||||
int OnOffset(MM::PropertyBase* pProp, MM::ActionType eAct);
|
||||
int OnTemperature(MM::PropertyBase* pProp, MM::ActionType eAct);
|
||||
int OnDriverDir(MM::PropertyBase* pProp, MM::ActionType eAct);
|
||||
//int OnShutterMode(MM::PropertyBase* pProp, MM::ActionType eAct);
|
||||
int OnCooler(MM::PropertyBase* pProp, MM::ActionType eAct);// jizhen 05.11.2007
|
||||
int OnFanMode(MM::PropertyBase* pProp, MM::ActionType eAct);// jizhen 05.16.2007
|
||||
int OnTemperatureSetPoint(MM::PropertyBase* pProp, MM::ActionType eAct);// Daigang 23-May-2007
|
||||
int OnEMGainRangeMax(MM::PropertyBase* pProp, MM::ActionType eAct);// Daigang 24-May-2007
|
||||
int OnEMGainRangeMin(MM::PropertyBase* pProp, MM::ActionType eAct);// Daigang 24-May-2007
|
||||
int OnPreAmpGain(MM::PropertyBase* pProp, MM::ActionType eAct);// Daigang 24-May-2007
|
||||
int OnFrameTransfer(MM::PropertyBase* pProp, MM::ActionType eAct);
|
||||
int OnVSpeed(MM::PropertyBase* pProp, MM::ActionType eAct);
|
||||
int OnInternalShutter(MM::PropertyBase* pProp, MM::ActionType eAct);
|
||||
int OnOutputAmplifier(MM::PropertyBase* pProp, MM::ActionType eAct);
|
||||
int OnADChannel(MM::PropertyBase* pProp, MM::ActionType eAct);
|
||||
int OnCamera(MM::PropertyBase* pProp, MM::ActionType eAct);//for multiple camera support
|
||||
int OnCameraName(MM::PropertyBase* pProp, MM::ActionType eAct);
|
||||
int OniCamFeatures(MM::PropertyBase* pProp, MM::ActionType eAct);
|
||||
int OnTemperatureRangeMin(MM::PropertyBase* pProp, MM::ActionType eAct);
|
||||
int OnTemperatureRangeMax(MM::PropertyBase* pProp, MM::ActionType eAct);
|
||||
int OnVCVoltage(MM::PropertyBase* pProp, MM::ActionType eAct);
|
||||
int OnBaselineClamp(MM::PropertyBase* pProp, MM::ActionType eAct);
|
||||
int OnCropModeSwitch(MM::PropertyBase* pProp, MM::ActionType eAct);
|
||||
int OnCropModeWidth(MM::PropertyBase* pProp, MM::ActionType eAct);
|
||||
int OnCropModeHeight(MM::PropertyBase* pProp, MM::ActionType eAct);
|
||||
int OnActualIntervalMS(MM::PropertyBase* pProp, MM::ActionType eAct);
|
||||
int OnSelectTrigger(MM::PropertyBase* pProp, MM::ActionType eAct);
|
||||
int OnTimeOut(MM::PropertyBase* pProp, MM::ActionType eAct); // kdb July-30-2009
|
||||
int OnCountConvert(MM::PropertyBase* pProp, MM::ActionType eAct);
|
||||
int OnCountConvertWavelength(MM::PropertyBase* pProp, MM::ActionType eAct);
|
||||
int OnSpuriousNoiseFilter(MM::PropertyBase* pProp, MM::ActionType eAct);
|
||||
int OnSpuriousNoiseFilterThreshold(MM::PropertyBase* pProp, MM::ActionType eAct);
|
||||
int OnSpuriousNoiseFilterDescription(MM::PropertyBase* pProp, MM::ActionType eAct);
|
||||
int OnOptAcquireMode(MM::PropertyBase* pProp, MM::ActionType eAct);
|
||||
void UpdateOAParams(const char* OAModeName);
|
||||
int OnOADescription(MM::PropertyBase* pProp, MM::ActionType eAct);
|
||||
|
||||
|
||||
// custom interface for the thread
|
||||
int PushImage();
|
||||
|
||||
//static void ReleaseInstance(AndorCamera * AndorCamera);
|
||||
|
||||
int GetNumberOfWorkableCameras() const { return NumberOfWorkableCameras_; }
|
||||
int GetMyCameraID() const { return myCameraID_; }
|
||||
|
||||
private:
|
||||
AndorCamera();
|
||||
int ResizeImageBuffer();
|
||||
int StopCameraAcquisition();
|
||||
void UpdateEMGainRange();
|
||||
void CheckError(unsigned int errorVal);
|
||||
bool IsThermoSteady();
|
||||
void SetToIdle();
|
||||
bool IsAcquiring();
|
||||
|
||||
void LogStatus();
|
||||
int PrepareSnap();
|
||||
unsigned int UpdateSnapTriggerMode();
|
||||
|
||||
|
||||
bool EMSwitch_;
|
||||
|
||||
unsigned int ui_swVersion;
|
||||
|
||||
static AndorCamera* instance_;
|
||||
static unsigned refCount_;
|
||||
static bool softwareTriggerUsed_;
|
||||
ImgBuffer img_;
|
||||
bool initialized_;
|
||||
bool snapInProgress_;
|
||||
bool sequenceRunning_;
|
||||
long imageCounter_;
|
||||
MM::MMTime startTime_;
|
||||
long imageTimeOut_ms_;
|
||||
long sequenceLength_;
|
||||
bool stopOnOverflow_;
|
||||
double intervalMs_;
|
||||
std::string countConvertMode_;
|
||||
double countConvertWavelength_;
|
||||
std::string spuriousNoiseFilter_;
|
||||
double spuriousNoiseFilterThreshold_;
|
||||
std::string spuriousNoiseFilterDescriptionStr_;
|
||||
std::string optAcquireModeStr_;
|
||||
std::string optAcquireDescriptionStr_;
|
||||
|
||||
long lSnapImageCnt_;
|
||||
std::vector<std::string> PreAmpGains_;
|
||||
long currentGain_;
|
||||
|
||||
bool cropModeSwitch_;
|
||||
long currentCropWidth_;
|
||||
long currentCropHeight_;
|
||||
std::vector<std::string> VSpeeds_;
|
||||
|
||||
|
||||
double currentExpMS_;
|
||||
|
||||
long ReadoutTime_, KeepCleanTime_;
|
||||
|
||||
long GetReadoutTime();
|
||||
|
||||
// kdb 2/27/2009
|
||||
#ifdef WIN32
|
||||
HMODULE hAndorDll;
|
||||
typedef unsigned int (CALLBACK *FPGetReadOutTime)(float *_fReadoutTime);
|
||||
typedef unsigned int (CALLBACK *FPGetKeepCleanTime)(float *_ftime);
|
||||
#else
|
||||
HDEVMODULE hAndorDll;
|
||||
typedef unsigned int (*FPGetReadOutTime)(float *_fReadoutTime);
|
||||
typedef unsigned int (*FPGetKeepCleanTime)(float *_ftime);
|
||||
#endif
|
||||
// end of kdb
|
||||
FPGetReadOutTime fpGetReadOutTime;
|
||||
//typedef unsigned int (CALLBACK *FPGetKeepCleanTime)(float *_ftime);
|
||||
FPGetKeepCleanTime fpGetKeepCleanTime;
|
||||
//typedef unsigned int (CALLBACK *FPSendSoftwareTrigger)();
|
||||
//FPSendSoftwareTrigger fpSendSoftwareTrigger;
|
||||
|
||||
bool busy_;
|
||||
|
||||
struct ROI {
|
||||
int x;
|
||||
int y;
|
||||
int xSize;
|
||||
int ySize;
|
||||
|
||||
ROI() : x(0), y(0), xSize(0), ySize(0) {}
|
||||
~ROI() {}
|
||||
|
||||
bool isEmpty() {return x==0 && y==0 && xSize==0 && ySize == 0;}
|
||||
};
|
||||
|
||||
ROI roi_;
|
||||
int binSize_;
|
||||
double expMs_; //value used by camera
|
||||
std::string driverDir_;
|
||||
int fullFrameX_;
|
||||
int fullFrameY_;
|
||||
int tempFrameX_;
|
||||
int tempFrameY_;
|
||||
short* fullFrameBuffer_;
|
||||
std::vector<std::string> readoutModes_;
|
||||
|
||||
int EmCCDGainLow_, EmCCDGainHigh_;
|
||||
int minTemp_, maxTemp_;
|
||||
//Daigang 24-may-2007
|
||||
bool ThermoSteady_;
|
||||
|
||||
AcqSequenceThread* seqThread_;
|
||||
|
||||
bool bShutterIntegrated_;
|
||||
int ADChannelIndex_, OutputAmplifierIndex_;
|
||||
void UpdateHSSpeeds();
|
||||
int UpdatePreampGains();
|
||||
|
||||
int HSSpeedIdx_;
|
||||
|
||||
bool bSoftwareTriggerSupported_;
|
||||
int iCurrentTriggerMode_;
|
||||
|
||||
enum {
|
||||
INTERNAL,
|
||||
EXTERNAL,
|
||||
SOFTWARE
|
||||
};
|
||||
|
||||
at_32 myCameraID_;
|
||||
at_32 NumberOfAvailableCameras_;
|
||||
at_32 NumberOfWorkableCameras_;
|
||||
std::vector<std::string> cameraName_;
|
||||
std::vector<std::string> cameraSN_;
|
||||
std::vector<int> cameraID_;
|
||||
int GetListOfAvailableCameras();
|
||||
std::string CameraName_;
|
||||
std::string iCamFeatures_;
|
||||
std::string TemperatureRangeMin_;
|
||||
std::string TemperatureRangeMax_;
|
||||
std::string PreAmpGain_;
|
||||
std::string VSpeed_;
|
||||
std::string TemperatureSetPoint_;
|
||||
std::vector<std::string> VCVoltages_;
|
||||
std::string VCVoltage_;
|
||||
std::vector<std::string> BaselineClampValues_;
|
||||
std::string BaselineClampValue_;
|
||||
float ActualInterval_ms_;
|
||||
|
||||
std::string strCurrentTriggerMode_;
|
||||
std::vector<std::string> vTriggerModes;
|
||||
|
||||
std::string strCurrentAmp;
|
||||
std::vector<std::string> vAvailAmps;
|
||||
std::map<std::string, int> mapAmps;
|
||||
|
||||
std::string strCurrentChannel;
|
||||
std::vector<std::string> vChannels;
|
||||
|
||||
bool bFrameTransfer_;
|
||||
|
||||
std::string m_str_frameTransferProp;
|
||||
std::string m_str_camType;
|
||||
std::vector<std::string> vCameraType;
|
||||
|
||||
unsigned char* pImgBuffer_;
|
||||
unsigned char* GetAcquiredImage();
|
||||
std::string getCameraType();
|
||||
unsigned int createGainProperty(AndorCapabilities * caps);
|
||||
unsigned int createTriggerProperty(AndorCapabilities * caps);
|
||||
unsigned int createIsolatedCropModeProperty(AndorCapabilities * caps);
|
||||
|
||||
bool mb_canUseFan;
|
||||
bool mb_canSetTemp;
|
||||
bool bEMGainSupported;
|
||||
|
||||
bool sequencePaused_;
|
||||
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* Acquisition thread
|
||||
*/
|
||||
class AcqSequenceThread : public MMDeviceThreadBase
|
||||
{
|
||||
public:
|
||||
AcqSequenceThread(AndorCamera* pCam) :
|
||||
intervalMs_(100.0),
|
||||
numImages_(1),
|
||||
waitTime_(10),
|
||||
busy_(false),
|
||||
stop_(false)
|
||||
{
|
||||
camera_ = pCam;
|
||||
};
|
||||
~AcqSequenceThread() {}
|
||||
|
||||
int svc(void);
|
||||
|
||||
void SetInterval(double intervalMs) {intervalMs_ = intervalMs;}
|
||||
void SetWaitTime (long waitTime) { waitTime_ = waitTime;}
|
||||
void SetTimeOut (long imageTimeOut) { imageTimeOut_ = imageTimeOut;}
|
||||
void SetLength(long images) {numImages_ = images;}
|
||||
void Stop() {stop_ = true;}
|
||||
void Start() {stop_ = false; activate();}
|
||||
|
||||
private:
|
||||
AndorCamera* camera_;
|
||||
double intervalMs_;
|
||||
long numImages_;
|
||||
long waitTime_;
|
||||
long imageTimeOut_;
|
||||
bool busy_;
|
||||
bool stop_;
|
||||
};
|
||||
|
||||
|
||||
class DriverGuard
|
||||
{
|
||||
public:
|
||||
DriverGuard(const AndorCamera * cam);
|
||||
~DriverGuard();
|
||||
|
||||
};
|
||||
|
||||
#endif //_ANDOR_H_
|
||||
20
sci-biology/micro-manager/files/andor_camera_detection.patch
Normal file
20
sci-biology/micro-manager/files/andor_camera_detection.patch
Normal file
@@ -0,0 +1,20 @@
|
||||
--- DeviceAdapters/configure.in.orig 2012-10-12 18:35:21.972213090 -0400
|
||||
+++ DeviceAdapters/configure.in 2012-10-12 18:38:07.693141288 -0400
|
||||
@@ -131,13 +131,13 @@
|
||||
|
||||
# Andor cameras on linux
|
||||
AC_MSG_CHECKING(for Andor cameras)
|
||||
-AM_CONDITIONAL([BUILD_ANDOR],[test -f "/usr/local/include/atmcdLXd.h"])
|
||||
-if test -f "/usr/local/include/atmcdLXd.h" ; then
|
||||
+AC_SEARCH_LIBS([SaveAsSif], [andor], ANDORFOUND=yes, AC_MSG_RESULT([not found]))
|
||||
+AM_CONDITIONAL([BUILD_ANDOR], [test x$ANDORFOUND = xyes])
|
||||
+if test x$ANDORFOUND = xyes ; then
|
||||
AC_MSG_RESULT([found])
|
||||
-else
|
||||
- AC_MSG_RESULT([not found])
|
||||
fi
|
||||
|
||||
+
|
||||
# Andor laser combiner on linux
|
||||
AC_MSG_CHECKING(for Andor laser combiner)
|
||||
AM_CONDITIONAL([BUILD_ANDORLASERCOMBINER],[test -f "/usr/local/include/ALC_REV.h"])
|
||||
11
sci-biology/micro-manager/files/arduino_detection.patch
Normal file
11
sci-biology/micro-manager/files/arduino_detection.patch
Normal file
@@ -0,0 +1,11 @@
|
||||
--- DeviceAdapters/SerialManager/SerialManager.cpp.orig 2012-12-10 17:58:08.166318377 -0500
|
||||
+++ DeviceAdapters/SerialManager/SerialManager.cpp 2012-12-10 18:00:00.672911852 -0500
|
||||
@@ -195,7 +195,7 @@
|
||||
struct dirent *pent;
|
||||
if (pdir) {
|
||||
while (pent = readdir(pdir)) {
|
||||
- if ( (strstr(pent->d_name, "ttyS") != 0) || (strstr(pent->d_name, "ttyUSB") != 0) ) {
|
||||
+ if ( (strstr(pent->d_name, "ttyS") != 0) || (strstr(pent->d_name, "ttyUSB") != 0) || (strstr(pent->d_name, "ttyACM") != 0) ) {
|
||||
std::string p = ("/dev/");
|
||||
p.append(pent->d_name);
|
||||
if (portAccessible(p.c_str()))
|
||||
24
sci-biology/micro-manager/files/boost_ipc_detail.patch
Normal file
24
sci-biology/micro-manager/files/boost_ipc_detail.patch
Normal file
@@ -0,0 +1,24 @@
|
||||
--- MMCore/FastLogger.cpp.orig 2012-09-28 21:38:41.510071984 -0400
|
||||
+++ MMCore/FastLogger.cpp 2012-09-28 21:41:08.738231368 -0400
|
||||
@@ -39,6 +39,12 @@
|
||||
#else
|
||||
#endif
|
||||
#include "boost/interprocess/detail/os_thread_functions.hpp"
|
||||
+#include "boost/version.hpp"
|
||||
+#if BOOST_VERSION >= 104800
|
||||
+# define BOOST_IPC_DETAIL boost::interprocess::ipcdetail
|
||||
+#else
|
||||
+# define BOOST_IPC_DETAIL boost::interprocess::detail
|
||||
+#endif
|
||||
|
||||
using namespace std;
|
||||
const char* g_textLogIniFiled = "Logging initialization failed\n";
|
||||
@@ -469,7 +475,7 @@
|
||||
}
|
||||
|
||||
// display the process id
|
||||
- boost::interprocess::detail::OS_process_id_t pidd = boost::interprocess::detail::get_current_process_id();
|
||||
+ BOOST_IPC_DETAIL::OS_process_id_t pidd = BOOST_IPC_DETAIL::get_current_process_id();
|
||||
|
||||
std::ostringstream percentPReplacement;
|
||||
percentPReplacement << pidd;
|
||||
@@ -0,0 +1,10 @@
|
||||
--- a/buildscripts/buildprops.xml 2015-04-29 15:18:04.808204789 -0400
|
||||
+++ b/buildscripts/buildprops.xml 2015-04-29 15:17:38.118204302 -0400
|
||||
@@ -133,6 +133,7 @@
|
||||
<sysproperty key="clojure.compile.path" value="@{destdir}"/>
|
||||
<sysproperty key="java.library.path" value="${mm.build.java.library.path}"/>
|
||||
<sysproperty key="java.awt.headless" value="true"/>
|
||||
+ <sysproperty key="java.util.prefs.userRoot" value="@{destdir}"/>
|
||||
<classpath>
|
||||
<pathelement location="@{destdir}"/>
|
||||
<pathelement location="@{srcdir}"/>
|
||||
@@ -0,0 +1,17 @@
|
||||
--- buildscripts/buildprops.xml 2015-01-30 14:24:07.000000000 -0500
|
||||
+++ buildscripts/buildprops.xml.new 2015-04-28 17:56:34.096801301 -0400
|
||||
@@ -17,10 +17,12 @@
|
||||
</classpath>
|
||||
</taskdef>
|
||||
|
||||
+ <property name="mm.build.java.lib.junit" location="${mm.basedir}/dependencies/builddeps/junit-4.11.jar"/>
|
||||
+ <property name="mm.build.java.lib.hamcrest-core" location="${mm.basedir}/dependencies/builddeps/hamcrest-core-1.3.jar"/>
|
||||
<path id="mm.junit.classpath">
|
||||
<!-- TODO Get this list from Ivy -->
|
||||
- <pathelement location="${mm.basedir}/dependencies/builddeps/junit-4.11.jar"/>
|
||||
- <pathelement location="${mm.basedir}/dependencies/builddeps/hamcrest-core-1.3.jar"/>
|
||||
+ <pathelement location="${mm.build.java.lib.junit}"/>
|
||||
+ <pathelement location="${mm.build.java.lib.hamcrest-core}"/>
|
||||
</path>
|
||||
|
||||
<!-- Global definitions for building Micro-Manager -->
|
||||
11
sci-biology/micro-manager/files/makefile.am-typo.patch
Normal file
11
sci-biology/micro-manager/files/makefile.am-typo.patch
Normal file
@@ -0,0 +1,11 @@
|
||||
--- Makefile.am 2015-04-29 16:49:53.848305346 -0400
|
||||
+++ Makefile.am.new 2015-04-29 18:29:52.548414841 -0400
|
||||
@@ -123,7 +123,7 @@
|
||||
$(MMCOREPY_DIR) \
|
||||
$(JAVA_APP_DIRS) \
|
||||
DeviceAdapters \
|
||||
- $(SYSTEMTEST_DIR)
|
||||
+ $(SYSTEMTEST_DIR) \
|
||||
bindist
|
||||
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
--- MMCorePy_wrap/setup.py.orig 2013-07-06 09:51:46.956669810 -0400
|
||||
+++ MMCorePy_wrap/setup.py 2013-07-06 09:54:03.096967822 -0400
|
||||
@@ -26,6 +26,7 @@
|
||||
'../MMCore/MMCore.cpp',
|
||||
'../MMCore/PluginManager.cpp'],
|
||||
language = "c++",
|
||||
+ libraries = ['z'],
|
||||
extra_objects = [],
|
||||
include_dirs = ["/Developer/SDKs/MacOSX10.5.sdk/System/Library/Frameworks/Python.framework/Versions/2.5/Extras/lib/python/numpy/core/include/numpy"]
|
||||
)
|
||||
40
sci-biology/micro-manager/files/secretdevice.patch
Normal file
40
sci-biology/micro-manager/files/secretdevice.patch
Normal file
@@ -0,0 +1,40 @@
|
||||
--- a/Makefile.am 2015-01-30 14:24:07.000000000 -0500
|
||||
+++ b/Makefile.am 2015-03-27 12:30:07.113123642 -0400
|
||||
@@ -22,9 +22,6 @@
|
||||
MMCOREPY_DIR = MMCorePy_wrap
|
||||
endif
|
||||
|
||||
-if BUILD_SECRETDEVICEADAPTERS
|
||||
-SECRETDEVICEADAPTERS = SecretDeviceAdapters
|
||||
-endif
|
||||
|
||||
|
||||
if BUILD_JAVA_APP
|
||||
@@ -126,7 +123,6 @@
|
||||
$(MMCOREPY_DIR) \
|
||||
$(JAVA_APP_DIRS) \
|
||||
DeviceAdapters \
|
||||
- $(SECRETDEVICEADAPTERS) \
|
||||
$(SYSTEMTEST_DIR)
|
||||
bindist
|
||||
|
||||
--- a/configure.ac 2015-01-30 14:24:07.000000000 -0500
|
||||
+++ b/configure.ac 2015-03-27 12:30:19.193123863 -0400
|
||||
@@ -370,16 +370,8 @@
|
||||
## Subdirectory configuration
|
||||
##
|
||||
|
||||
-AC_MSG_CHECKING([for proprietary device adapter source])
|
||||
-AS_IF([test -f "$srcdir/SecretDeviceAdapters/configure"],
|
||||
- [build_secretdeviceadapters=yes], [build_secretdeviceadapters=no])
|
||||
-AM_CONDITIONAL([BUILD_SECRETDEVICEADAPTERS],
|
||||
- [test "x$build_secretdeviceadapters" = xyes])
|
||||
-
|
||||
+build_secretdeviceadapters=no
|
||||
AC_CONFIG_SUBDIRS([DeviceAdapters])
|
||||
-AS_IF([test "x$build_secretdeviceadapters" = xyes], [
|
||||
- AC_CONFIG_SUBDIRS([SecretDeviceAdapters])
|
||||
-])
|
||||
AC_CONFIG_SUBDIRS([DeviceKit])
|
||||
|
||||
|
||||
177
sci-biology/micro-manager/micro-manager-1.4.10.ebuild
Executable file
177
sci-biology/micro-manager/micro-manager-1.4.10.ebuild
Executable file
@@ -0,0 +1,177 @@
|
||||
# Copyright 1999-2012 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: $
|
||||
|
||||
EAPI=4
|
||||
|
||||
inherit eutils subversion autotools java-pkg-opt-2 flag-o-matic java-utils-2
|
||||
|
||||
DESCRIPTION="The Open Source Microscopy Software"
|
||||
HOMEPAGE="http://valelab.ucsf.edu/~MM/MMwiki/"
|
||||
ESVN_REPO_URI="https://valelab.ucsf.edu/svn/micromanager2/trunk"
|
||||
ESVN_BOOTSTRAP="mmUnixBuild.sh"
|
||||
ESVN_REVISION=9309
|
||||
|
||||
SLOT="0"
|
||||
LICENSE="BSD"
|
||||
KEYWORDS="~amd64 ~x86"
|
||||
IUSE="+java clojure_editor ieee1394 andor"
|
||||
|
||||
RDEPEND="java? (
|
||||
>=virtual/jre-1.5
|
||||
)
|
||||
ieee1394? ( media-libs/libdc1394 )"
|
||||
|
||||
DEPEND="dev-lang/swig
|
||||
dev-libs/boost
|
||||
java? (
|
||||
>=virtual/jdk-1.5
|
||||
>=sci-biology/imagej-1.46e[plugins]
|
||||
dev-java/bsh
|
||||
dev-java/commons-math:2
|
||||
dev-java/swingx:1.6
|
||||
dev-java/swing-layout:1
|
||||
dev-java/absolutelayout
|
||||
dev-java/jfreechart:1.0
|
||||
dev-lang/clojure
|
||||
clojure_editor? ( dev-util/clooj )
|
||||
sci-libs/TSFProto
|
||||
)
|
||||
andor? ( sci-libs/andor-camera-driver:2 )"
|
||||
|
||||
src_unpack() {
|
||||
subversion_src_unpack
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
# fix zlib detection
|
||||
for file in configure.in DeviceKit/configure.in; do
|
||||
sed -i -e "s/libz.a/libz.so/g" $file
|
||||
done
|
||||
|
||||
epatch ${FILESDIR}/andor_camera_detection.patch
|
||||
|
||||
subversion_bootstrap
|
||||
|
||||
# ESVN_PATCHES won't apply after bootstrap, so must use epatches
|
||||
epatch ${FILESDIR}/boost_ipc_detail.patch
|
||||
|
||||
einfo "Patching to prevent imagej removal"
|
||||
sed -i -e '/rm -rf/d' scripts/Makefile.am
|
||||
einfo "Patching to prevent imagej collision"
|
||||
sed -i -e '/cp $(IJJARPATH)/d' mmstudio/Makefile.am
|
||||
|
||||
einfo "Patching Andor camera driver for return code debugging"
|
||||
sed -i -e '/end of kdb/a \
|
||||
\
|
||||
// macro for finding the source of unsuccessful return error code\
|
||||
#define CATCH(err) if (err != DRV_SUCCESS) { \\\
|
||||
LogMessage("Return code %u instead of DRV_SUCCESS at %s/%s:%d\\n", \\\
|
||||
err, __FILE__, __FUNCTION__, __LINE__); \\\
|
||||
return (int)ret; \\\
|
||||
}' DeviceAdapters/Andor/Andor.cpp
|
||||
sed -i -e
|
||||
|
||||
if use java; then
|
||||
# making and clearing a single `build' directory prevents
|
||||
# multiple plugins from being built simultaneously
|
||||
sed -i -e 's/build/build_$@/g' plugins/Makefile.am
|
||||
|
||||
# TODO Make ebuilds for lwm, gaussian
|
||||
# Removing plugins requiring these deps until ebuilds made
|
||||
REMOVE_MM_PLUGINS="DataBrowser Gaussian"
|
||||
if ! use clojure_editor ; then
|
||||
REMOVE_MM_PLUGINS="${REMOVE_MM_PLUGINS} ClojureEditor"
|
||||
fi
|
||||
for PLUGIN in ${REMOVE_MM_PLUGINS}; do
|
||||
einfo "Removing ${PLUGIN} plugin"
|
||||
sed -i -e "/^all:/s/$PLUGIN\.jar//g" \
|
||||
-e "/^\tcp $PLUGIN\.jar/d" \
|
||||
plugins/Makefile.am
|
||||
done
|
||||
|
||||
eautoconf
|
||||
# FIXME eautoreconf should replace eautoconf and
|
||||
# subversion_bootstrap lines, but dies because
|
||||
# ./Makefile.am searches for the non-existent
|
||||
# SecretDeviceAdapters directory
|
||||
#eautoreconf
|
||||
fi
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
if use java; then
|
||||
append-cppflags $(java-pkg_get-jni-cflags)
|
||||
|
||||
IMAGEJ_DIR=$(dirname `java-pkg_getjar imagej ij.jar`) \
|
||||
|
||||
ebegin 'Creating symlinks to .jar dependencies...'
|
||||
mkdir -p ../3rdpartypublic/classext/
|
||||
pushd ../3rdpartypublic/classext/
|
||||
java-pkg_jar-from bsh bsh.jar bsh-2.0b4.jar
|
||||
java-pkg_jar-from swingx-1.6 swingx.jar swingx-0.9.5.jar
|
||||
java-pkg_jar-from commons-math-2 commons-math.jar commons-math-2.0.jar
|
||||
java-pkg_jar-from swing-layout-1 swing-layout.jar swing-layout-1.0.4.jar
|
||||
java-pkg_jar-from absolutelayout absolutelayout.jar AbsoluteLayout.jar
|
||||
java-pkg_jar-from jfreechart-1.0 jfreechart.jar jfreechart-1.0.13.jar
|
||||
java-pkg_jar-from jcommon-1.0 jcommon.jar jcommon-1.0.16.jar
|
||||
java-pkg_jar-from imagej
|
||||
java-pkg_jar-from clojure-1.4
|
||||
if use clojure_editor; then
|
||||
java-pkg_jar-from clooj clooj-0.3.4-standalone.jar clooj.jar
|
||||
fi
|
||||
java-pkg_jar-from protobuf protobuf.jar gproto.jar
|
||||
java-pkg_jar-from TSFProto
|
||||
|
||||
# TODO: Make these dep ebuilds and symlinks for plugins:
|
||||
# lwm, gaussian
|
||||
popd
|
||||
eend
|
||||
else
|
||||
IMAGEJ_DIR='no'
|
||||
fi
|
||||
|
||||
econf --with-imagej=${IMAGEJ_DIR}
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
emake
|
||||
}
|
||||
|
||||
src_install() {
|
||||
emake DESTDIR="${D}" install
|
||||
|
||||
if use java; then
|
||||
# FIXME java-pkg_dolauncher should replace this bash script.
|
||||
# Problems encountered when attempting this were:
|
||||
# 1. dolauncher uses the same name for the launcher and
|
||||
# the package (gjl_package). What we want for this
|
||||
# package is:
|
||||
# /usr/bin/micro-manager
|
||||
# to contain:
|
||||
# gjl_package=imagej
|
||||
# 2. Fixing issue #1 above by editing the output file
|
||||
# creates unusual behavior with Micro-Manager, always
|
||||
# asking to select a dataset to open on startup.
|
||||
cat <<-EOF > "${T}"/${PN}
|
||||
#!/bin/bash
|
||||
|
||||
(
|
||||
# MM plugins won't load without changing to this path
|
||||
cd /usr/share/imagej/lib
|
||||
|
||||
$(java-config --java) \\
|
||||
-mx1024m \\
|
||||
-cp \$(java-config -p imagej,libreadline-java) \\
|
||||
ij.ImageJ -run "Micro-Manager Studio"
|
||||
) 2>&1 | tee >(logger -t micro-manager) -
|
||||
|
||||
exit 0
|
||||
EOF
|
||||
|
||||
make_desktop_entry "${PN}" "Micro-Manager Studio" imagej \
|
||||
"Graphics;Science;Biology"
|
||||
|
||||
dobin "${T}"/${PN}
|
||||
fi
|
||||
}
|
||||
203
sci-biology/micro-manager/micro-manager-1.4.13.ebuild
Normal file
203
sci-biology/micro-manager/micro-manager-1.4.13.ebuild
Normal file
@@ -0,0 +1,203 @@
|
||||
# Copyright 1999-2014 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} )
|
||||
PYTHON_SINGLE_TARGET="python2_7"
|
||||
|
||||
inherit eutils autotools python-single-r1 java-pkg-opt-2 flag-o-matic java-utils-2 linux-info vcs-snapshot
|
||||
|
||||
MY_PN="micromanager-upstream"
|
||||
MY_P="${MY_PN}-${PV}"
|
||||
|
||||
DESCRIPTION="The Open Source Microscopy Software"
|
||||
HOMEPAGE="http://www.micro-manager.org/"
|
||||
SRC_URI="http://github.com/mdcurtis/${MY_PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
|
||||
|
||||
SLOT="0"
|
||||
LICENSE="LGPL-2.1 BSD GPL-1 GPL-3"
|
||||
KEYWORDS="~x86 ~amd64"
|
||||
IUSE="+java python clojure_editor ieee1394 andor"
|
||||
RESTRICT="mirror"
|
||||
|
||||
RDEPEND="java? (
|
||||
>=virtual/jre-1.5
|
||||
)
|
||||
ieee1394? ( media-libs/libdc1394 )"
|
||||
|
||||
DEPEND="dev-lang/swig
|
||||
dev-libs/boost
|
||||
java? (
|
||||
>=virtual/jdk-1.5
|
||||
>=sci-biology/imagej-1.46e
|
||||
dev-java/bsh
|
||||
dev-java/commons-math:2
|
||||
dev-java/swingx:1.6
|
||||
dev-java/swing-layout:1
|
||||
dev-java/absolutelayout
|
||||
dev-java/jfreechart:1.0
|
||||
dev-lang/clojure
|
||||
clojure_editor? ( dev-util/clooj )
|
||||
sci-libs/TSFProto
|
||||
sci-libs/bioformats
|
||||
)
|
||||
python? (
|
||||
${PYTHON_DEPS}
|
||||
dev-python/numpy
|
||||
)
|
||||
andor? ( sci-libs/andor-camera-driver:2 )"
|
||||
|
||||
pkg_setup() {
|
||||
if linux_config_exists; then
|
||||
linux_chkconfig_string VIDEO_V4L2
|
||||
if ! linux_chkconfig_present VIDEO_V4L2; then
|
||||
einfo "Enable MEDIA_CAMERA_SUPPORT in kernel to install v4l DeviceAdapter."
|
||||
fi
|
||||
else
|
||||
ewarn "Could not confirm that v4l is compiled in kernel, so video4linux"
|
||||
ewarn "DeviceAdapter may silently fail to compile."
|
||||
fi
|
||||
|
||||
use java && java-pkg-opt-2_pkg_setup
|
||||
use python && python-single-r1_pkg_setup
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
einfo "Patching zlib detection"
|
||||
for file in configure.in DeviceKit/configure.in; do
|
||||
sed -i -e "s/libz.a/libz.so/g" $file
|
||||
done
|
||||
epatch ${FILESDIR}/mmcorepy_setup_add_zlib.patch
|
||||
einfo "Patching v4l detection"
|
||||
sed -i -e "s/libv4l2.h/linux\/videodev2.h/g" DeviceAdapters/configure.in
|
||||
epatch ${FILESDIR}/andor_camera_detection.patch
|
||||
epatch ${FILESDIR}/arduino_detection.patch
|
||||
|
||||
ebegin "Bootstrap started. This can take several minutes"
|
||||
sh mmUnixBuild.sh
|
||||
eend
|
||||
|
||||
einfo "Patching to prevent imagej collision"
|
||||
sed -i -e '/cp $(IJJARPATH)/d' mmstudio/Makefile.am
|
||||
einfo "Patching to prevent scripts removal"
|
||||
sed -i -e '/rm -rf $(IJPATH)\/scripts.*$/d' scripts/Makefile.am
|
||||
|
||||
if use python; then
|
||||
einfo "Patching numpy include directory"
|
||||
local numpy_sitedir
|
||||
numpy_includedir=$(python_get_sitedir)/numpy/core/include/numpy
|
||||
sed -i -e "/include_dirs/s~=.*~= \[\"${numpy_includedir}\"\]~" MMCorePy_wrap/setup.py
|
||||
|
||||
einfo "Patching Python bindings to respect DESTDIR"
|
||||
sed -i -e 's: $(DEVICEADAPTERPATH): $(DESTDIR)\/$(DEVICEADAPTERPATH):' MMCorePy_wrap/Makefile.am
|
||||
fi
|
||||
|
||||
if use java; then
|
||||
einfo "Patching to allow parallel compilations of plugins"
|
||||
# making and clearing a single `build' directory prevents
|
||||
# multiple plugins from being built simultaneously
|
||||
sed -i -e 's/build/build_$@/g' plugins/Makefile.am
|
||||
|
||||
# TODO Make ebuilds for lwm, gaussian
|
||||
# Removing plugins requiring these deps until ebuilds made
|
||||
REMOVE_MM_PLUGINS="DataBrowser Gaussian"
|
||||
if ! use clojure_editor ; then
|
||||
REMOVE_MM_PLUGINS="${REMOVE_MM_PLUGINS} ClojureEditor"
|
||||
fi
|
||||
einfo "Removing unsupported Clojure plugins: ${REMOVE_MM_PLUGINS}"
|
||||
for PLUGIN in ${REMOVE_MM_PLUGINS}; do
|
||||
einfo "Removing ${PLUGIN} plugin"
|
||||
sed -i -e "/^all:/s/$PLUGIN\.jar//g" \
|
||||
-e "/^\tcp $PLUGIN\.jar/d" \
|
||||
plugins/Makefile.am
|
||||
done
|
||||
|
||||
eautoconf
|
||||
# FIXME eautoreconf should replace eautoconf and
|
||||
# subversion_bootstrap lines, but dies because
|
||||
# ./Makefile.am searches for the non-existent
|
||||
# SecretDeviceAdapters directory
|
||||
#eautoreconf
|
||||
fi
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
if use java; then
|
||||
append-cppflags $(java-pkg_get-jni-cflags)
|
||||
|
||||
IMAGEJ_DIR=$(dirname `java-pkg_getjar imagej ij.jar`) \
|
||||
|
||||
ebegin 'Creating symlinks to .jar dependencies...'
|
||||
mkdir -p ../3rdpartypublic/classext/
|
||||
pushd ../3rdpartypublic/classext/
|
||||
java-pkg_jar-from bsh bsh.jar bsh-2.0b4.jar
|
||||
java-pkg_jar-from swingx-1.6 swingx.jar swingx-0.9.5.jar
|
||||
java-pkg_jar-from commons-math-2 commons-math.jar commons-math-2.0.jar
|
||||
java-pkg_jar-from swing-layout-1 swing-layout.jar swing-layout-1.0.4.jar
|
||||
java-pkg_jar-from absolutelayout absolutelayout.jar AbsoluteLayout.jar
|
||||
java-pkg_jar-from jfreechart-1.0 jfreechart.jar jfreechart-1.0.13.jar
|
||||
java-pkg_jar-from jcommon-1.0 jcommon.jar jcommon-1.0.16.jar
|
||||
java-pkg_jar-from imagej
|
||||
java-pkg_jar-from clojure-1.4
|
||||
if use clojure_editor; then
|
||||
java-pkg_jar-from clooj clooj-0.3.4-standalone.jar clooj.jar
|
||||
fi
|
||||
java-pkg_jar-from protobuf protobuf.jar gproto.jar
|
||||
java-pkg_jar-from TSFProto
|
||||
java-pkg_jar-from bioformats
|
||||
|
||||
# TODO: Make these dep ebuilds and symlinks for plugins:
|
||||
# lwm, gaussian
|
||||
popd
|
||||
eend
|
||||
else
|
||||
IMAGEJ_DIR='no'
|
||||
fi
|
||||
|
||||
econf \
|
||||
--with-imagej=${IMAGEJ_DIR} \
|
||||
$(use_enable python)
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
emake
|
||||
}
|
||||
|
||||
src_install() {
|
||||
emake DESTDIR="${D}" install
|
||||
|
||||
if use java; then
|
||||
# FIXME java-pkg_dolauncher should replace this bash script.
|
||||
# Problems encountered when attempting this were:
|
||||
# 1. dolauncher uses the same name for the launcher and
|
||||
# the package (gjl_package). What we want for this
|
||||
# package is:
|
||||
# /usr/bin/micro-manager
|
||||
# to contain:
|
||||
# gjl_package=imagej
|
||||
# 2. Fixing issue #1 above by editing the output file
|
||||
# creates unusual behavior with Micro-Manager, always
|
||||
# asking to select a dataset to open on startup.
|
||||
cat <<-EOF > "${T}"/${PN}
|
||||
#!/bin/bash
|
||||
|
||||
(
|
||||
# MM plugins won't load without changing to this path
|
||||
cd /usr/share/imagej/lib
|
||||
|
||||
\$(java-config --java) \\
|
||||
-mx1024m \\
|
||||
-cp \$(java-config -p imagej,libreadline-java) \\
|
||||
ij.ImageJ -run "Micro-Manager Studio"
|
||||
) 2>&1 | tee >(logger -t micro-manager) -
|
||||
|
||||
exit 0
|
||||
EOF
|
||||
|
||||
make_desktop_entry "${PN}" "Micro-Manager Studio" imagej \
|
||||
"Graphics;Science;Biology"
|
||||
|
||||
dobin "${T}"/${PN}
|
||||
fi
|
||||
}
|
||||
189
sci-biology/micro-manager/micro-manager-1.4.21-r1.ebuild
Normal file
189
sci-biology/micro-manager/micro-manager-1.4.21-r1.ebuild
Normal file
@@ -0,0 +1,189 @@
|
||||
# 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
|
||||
sci-libs/TSFProto:0
|
||||
sci-libs/bioformats:0
|
||||
dev-java/absolutelayout
|
||||
dev-java/bsh:0
|
||||
dev-java/gson:2.2.2
|
||||
dev-java/guava:18
|
||||
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,gson-2.2.2,guava-18,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
|
||||
}
|
||||
190
sci-biology/micro-manager/micro-manager-1.4.22.ebuild
Normal file
190
sci-biology/micro-manager/micro-manager-1.4.22.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:18
|
||||
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
|
||||
}
|
||||
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