mkdir gcc
cd gcc
mkdir bin ups
vi ups/gcc.table
envPrepend(PATH, ${PRODUCT_DIR}/bin)
envPrepend(LD_LIBRARY_PATH, ${PRODUCT_DIR}/lib)
envPrepend(DYLD_LIBRARY_PATH, ${PRODUCT_DIR}/lib)
ln -s /usr/bin/g++43 bin/g++
ln -s /usr/bin/gcc43 bin/gcc
# this one i am not so sure about
ln -s /usr/lib/gcc/x86_64-redhat-linux6E/4.3.2/ lib
eups declare -c -r $PWD gcc 4.3.2
setup gcc
$AFW_DIR/python/lsst/afw/detection/footprints.i :
%template(FootprintContainerT) std::vector<lsst::afw::detection::Footprint::Ptr>;
$IP_DIFFIM_DIR/include/lsst/ip/diffim/SpatialModelCell.h :
typedef std::vector<lsst::afw::detection::Footprint::Ptr> FpPtrList;
SpatialModelCell(FpPtrList fpPtrList);
--or even--
SpatialModelCell(std::vector<lsst::afw::detection::Footprint::Ptr> fpPtrList);
$IP_DIFFIM_DIR/python/lsst/ip/diffim/diffimLib.i :
%template(SpatialModelCellF) lsst::ip::diffim::SpatialModelCell<float>;
test code :
foo = detection.FootprintContainerT()
ipDiffim.SpatialModelCellF(foo)
*** NotImplementedError: Possible C/C++ prototypes include:
lsst::ip::diffim::SpatialModelCell< float >(std::vector< lsst::afw::detection::Footprint::Ptr,std::allocator< lsst::afw::detection::Footprint::Ptr > >)
The basic problem is that Swig does not know my 2 types, the one being sent and the one that SpatialModelCell? is expecting, are the same. The solution:
$IP_DIFFIM_DIR/python/lsst/ip/diffim/diffimLib.i : %import lsst/afw/detection/detectionLib.i
