Dear All (most probably charles!)

I am trying to generate a swig wrapper for a c++ class using the following command line (I am doing this outside xplor currently)

swig -python -classptr -c++ -keyword -shadow -I/usr/include/python2.7 -I/home/garyt/programs/xplor-nih/2.31.0/CDSlib -I/home/garyt/programs/xplor-nih/2.31.0/common -I/home/garyt/programs/xplor-nih/2.31.0/intVar -I/home/garyt/programs/xplor-nih/2.31.0/nmrPot -I/home/garyt/programs/xplor-nih/2.31.0/vmd -I/home/garyt/programs/xplor-nih/2.31.0/surfD -I/home/garyt/programs/xplor-nih/2.31.0/cminpack -I/home/garyt/programs/xplor-nih/2.31.0/sparta -I/home/garyt/programs/xplor-nih/2.31.0/devel -I/home/garyt/programs/xplor-nih/2.31.0/fortlib -I. -I/home/garyt/programs/xplor-nih/2.31.0/python -o pyEnsemblePotProxy_wrap.cpp pyEnsemblePotProxy.i

where  pyEnsemblePotProxy.i contains an empty(ish) potential class

// -*- c++ -*-
#ifndef PY_ENSEMBLE_POT_PROXY_H
#define PY_ENSEMBLE_POT_PROXY_H 1

#include "ensemblePot.hh"

struct _object;
typedef _object PyObject;



class PyEnsemblePotProxy : public EnsemblePot {
public:
   PyObject *m_obj;

PyEnsemblePotProxy(const String&, const String&, Simulation*, PyObject *obj);
   virtual ~PyEnsemblePotProxy();
   void doRun();
   virtual void run();

   float_type rms();
   int violations();
   int numRestraints();
};

#endif // !PY_ENSEMBLE_POT_PROXY_H

however when I compile the resulting swig wrapper I get messages about missing declarations for ‘SWIGPY_POINTER_EXCEPTION’, ‘SWIGPY_ConvertPtr’ and ‘SWIGPY_fail'


gcc -pthread -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -DCPLUSPLUS=1 -DUSE_CDS_NAMESPACE=1 -I/home/garyt/programs/xplor-nih/2.31.0/common -I/home/garyt/programs/xplor-nih/2.31.0/CDSlib -I/home/garyt/programs/xplor-nih/2.31.0/arch/Linux_i686/include -I/usr/include/python2.7 -I/home/garyt/programs/xplor-nih/2.31.0/CDSlib -I/home/garyt/programs/xplor-nih/2.31.0/common -I/home/garyt/programs/xplor-nih/2.31.0/intVar -I/home/garyt/programs/xplor-nih/2.31.0/nmrPot -I/home/garyt/programs/xplor-nih/2.31.0/vmd -I/home/garyt/programs/xplor-nih/2.31.0/surfD -I/home/garyt/programs/xplor-nih/2.31.0/cminpack -I/home/garyt/programs/xplor-nih/2.31.0/sparta -I/home/garyt/programs/xplor-nih/2.31.0/devel -I/home/garyt/programs/xplor-nih/2.31.0/fortlib -I. -I/home/garyt/programs/xplor-nih/2.31.0/python -I/home/garyt/programs/xplor-nih/2.31.0/python/bin.Linux_i686/include/python2.6 -c pyEnsemblePotProxy_wrap.cpp -o build/temp.linux-i686-2.6/pyEnsemblePotProxy_wrap.o cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for Ada/C/ObjC but not for C++ [enabled by default]
pyEnsemblePotProxy_wrap.cpp: In function ‘PyObject* wrapPot(rc_Pot&)’:
pyEnsemblePotProxy_wrap.cpp:3269:45: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings] pyEnsemblePotProxy_wrap.cpp: In function ‘PyObject* _wrap_new_PyEnsemblePotProxy__SWIG_0(PyObject*, PyObject*)’: pyEnsemblePotProxy_wrap.cpp:4164:11: error: ‘SWIGPY_POINTER_EXCEPTION’ was not declared in this scope pyEnsemblePotProxy_wrap.cpp:4165:31: error: ‘SWIGPY_ConvertPtr’ was not declared in this scope pyEnsemblePotProxy_wrap.cpp:4166:7: error: ‘SWIGPY_fail’ was not declared in this scope pyEnsemblePotProxy_wrap.cpp: In function ‘PyObject* _wrap_PyEnsemblePotProxy_setEnsWeights(PyObject*, PyObject*, PyObject*)’: pyEnsemblePotProxy_wrap.cpp:5911:43: error: ‘SWIGPY_ConvertPtr’ was not declared in this scope pyEnsemblePotProxy_wrap.cpp: In function ‘PyObject* _wrap_PyEnsemblePotProxy_setUseSimEnsWeights(PyObject*, PyObject*, PyObject*)’: pyEnsemblePotProxy_wrap.cpp:6065:27: error: ‘SWIGPY_ConvertPtr’ was not declared in this scope pyEnsemblePotProxy_wrap.cpp: In function ‘PyObject* _wrap_PyEnsemblePotProxy_setScale(PyObject*, PyObject*, PyObject*)’: pyEnsemblePotProxy_wrap.cpp:6383:29: error: ‘SWIGPY_ConvertPtr’ was not declared in this scope pyEnsemblePotProxy_wrap.cpp: In function ‘PyObject* _wrap_PyEnsemblePotProxy_setThreshold(PyObject*, PyObject*, PyObject*)’: pyEnsemblePotProxy_wrap.cpp:6537:29: error: ‘SWIGPY_ConvertPtr’ was not declared in this scope pyEnsemblePotProxy_wrap.cpp: In function ‘PyObject* _wrap_new_PyEnsemblePotProxy_LetterClass(PyObject*, PyObject*, PyObject*)’: pyEnsemblePotProxy_wrap.cpp:7383:29: error: ‘SWIGPY_ConvertPtr’ was not declared in this scope pyEnsemblePotProxy_wrap.cpp:7427:29: error: ‘SWIGPY_ConvertPtr’ was not declared in this scope
/home/garyt/programs/xplor-nih/2.31.0/CDSlib/cdsString.hh: At global scope:
/home/garyt/programs/xplor-nih/2.31.0/CDSlib/cdsString.hh:222:12: warning: ‘int cdsMapConvertToInt(const String&)’ declared ‘static’ but never defined [-Wunused-function] /home/garyt/programs/xplor-nih/2.31.0/CDSlib/cdsMap.hh:134:12: warning: ‘int cdsMapConvertToInt(int)’ declared ‘static’ but never defined [-Wunused-function] /home/garyt/programs/xplor-nih/2.31.0/CDSlib/cdsMap.hh:135:12: warning: ‘int cdsMapConvertToInt(double)’ declared ‘static’ but never defined [-Wunused-function] pyEnsemblePotProxy_wrap.cpp:3283:15: warning: ‘String PyEnsemblePotProxy_help(PyEnsemblePotProxy*)’ declared ‘static’ but never defined [-Wunused-function]


I presume  the problem is that I need to do

1. sed 's/SWIG_/SWIGPY_/g' pyEnsemblePotProxy_wrap.cpp > pyEnsemblePotProxy_wrap_new.cpp 2. ~/programs/xplor-nih/2.31.0/bin/includeCC pyEnsemblePotProxy_wrap_new.cpp --template-dir /home/garyt/programs/xplor-nih/2.31.0_test_swig/CDSlib --cc 'c++' -DX_MMAP_FLAGS=0 -DFORTRAN_INIT -O3 -DLINUX -D_REENTRANT -DNDEBUG -I/home/garyt/programs/xplor-nih/2.31.0_test_swig/python/ -I/home/garyt/programs/xplor-nih/2.31.0_test_swig/arch/Linux_i686/include -DSWIG_VERSION=20004 -I/usr/share/swig2.0/python -DCPLUSPLUS -DUSE_CDS_NAMESPACE -I/home/garyt/programs/xplor-nih/2.31.0_test_swig/python/ -I/home/garyt/programs/xplor-nih/2.31.0_test_swig/arch/Linux_i686/include -DSWIGPY_GLOBAL -I. -I/usr/include/python2.7 -I/home/garyt/programs/xplor-nih/2.31.0_test_swig/CDSlib -I/home/garyt/programs/xplor-nih/2.31.0_test_swig/common -I/home/garyt/programs/xplor-nih/2.31.0_test_swig/intVar -I/home/garyt/programs/xplor-nih/2.31.0_test_swig/nmrPot -I/home/garyt/programs/xplor-nih/2.31.0_test_swig/vmd -I/home/garyt/programs/xplor-nih/2.31.0_test_swig/surfD -I/home/garyt/programs/xplor-nih/2.31.0_test_swig/cminpack -I/home/garyt/programs/xplor-nih/2.31.0_test_swig/sparta -I/home/garyt/programs/xplor-nih/2.31.0_test_swig/devel -I/home/garyt/programs/xplor-nih/2.31.0_test_swig/fortlib -DNIHXPLOR_VERSION='"2.31-custom"' -DPYTHON_VERSION='"2.7"' -DSWIGPY_PYTHON_SILENT_MEMLEAK > pyEnsemblePotProxy_wrap_new_2.cpp

3. c++ -c pyEnsemblePotProxy_wrap_new_2.cpp -DX_MMAP_FLAGS=0 -DFORTRAN_INIT -O3 -DLINUX -D_REENTRANT -DNDEBUG -I/home/garyt/programs/xplor-nih/2.31.0_test_swig/python/ -I/home/garyt/programs/xplor-nih/2.31.0_test_swig/arch/Linux_i686/include -DSWIG_VERSION=20004 -I/usr/share/swig2.0/python -DCPLUSPLUS -DUSE_CDS_NAMESPACE -I/home/garyt/programs/xplor-nih/2.31.0_test_swig/python/ -I/home/garyt/programs/xplor-nih/2.31.0_test_swig/arch/Linux_i686/include -DSWIGPY_GLOBAL -I. -I/usr/include/python2.7 -I/home/garyt/programs/xplor-nih/2.31.0_test_swig/CDSlib -I/home/garyt/programs/xplor-nih/2.31.0_test_swig/common -I/home/garyt/programs/xplor-nih/2.31.0_test_swig/intVar -I/home/garyt/programs/xplor-nih/2.31.0_test_swig/nmrPot -I/home/garyt/programs/xplor-nih/2.31.0_test_swig/vmd -I/home/garyt/programs/xplor-nih/2.31.0_test_swig/surfD -I/home/garyt/programs/xplor-nih/2.31.0_test_swig/cminpack -I/home/garyt/programs/xplor-nih/2.31.0_test_swig/sparta -I/home/garyt/programs/xplor-nih/2.31.0_test_swig/devel -I/home/garyt/programs/xplor-nih/2.31.0_test_swig/fortlib -DNIHXPLOR_VERSION='"2.31-custom"' -DPYTHON_VERSION='"2.7"' -DSWIGPY_PYTHON_SILENT_MEMLEAK -DSWIGPY_NOINCLUDE

are these all the step I need to do?

nb swig -version gives me


SWIG Version 2.0.4

Compiled with g++ [i686-pc-linux-gnu]

Configured options: +pcre

Please see http://www.swig.org for reporting bugs and further information


regards
gary



_______________________________________________
Xplor-nih mailing list
[email protected]
http://dcb.cit.nih.gov/mailman/listinfo/xplor-nih

Reply via email to