sci-biology/micro-manager: udpate'

This commit is contained in:
Florian Tham
2017-03-14 23:02:24 +01:00
parent 919c8cf8ce
commit 6a244673b1
16 changed files with 6045 additions and 0 deletions

View 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

File diff suppressed because it is too large Load Diff

View 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_

View 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"])

View 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()))

View 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;

View File

@@ -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}"/>

View File

@@ -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 -->

View 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

View File

@@ -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"]
)

View 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])

View 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
}

View 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
}

View 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
}

View 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
}

View 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
}