From: varungupta <var...@gm...> - 2013-10-16 07:11:57
|
HelloI am beginner for swig. I am trying to generate python wrapper for C++ API's. I tried with simple C++ code and it was working fine. Then I started working on API's and when I tried to create a python wrapper for a single API ( by placing all the headers in the interface file), I got an error saying that some .h files are missing. I found out that the some header files are in some other folder.Please let me know how it is possible to add a header file present in a different folder into the interface file by writing some loops, conditions etc.Please suggest.RegardsVarun -- View this message in context: http://swig.10945.n7.nabble.com/Regarding-interface-file-for-swig-tp13459.html Sent from the swig-user mailing list archive at Nabble.com. |
From: Toivo H. <toi...@mo...> - 2013-10-16 08:14:12
|
> From: varungupta [mailto:var...@gm...] > Sent: den 16 oktober 2013 09:12 > To: swi...@li... > Subject: [Swig-user] Regarding interface file for swig > > Hello I am beginner for swig. I am trying to generate python wrapper for C++ API's. I tried with simple C++ code and it was working fine. Then I started working on API's and when I tried to create a python wrapper for a single API ( by placing all the headers in the interface file), I got an error saying that some .h files are missing. I found out that the some header files are in some other folder. Please let me know how it is possible to add a header file present in a different folder into the interface file by writing some loops, conditions etc. Please suggest. Regards Varun You can use the -I (capital i) command line option to SWIG to specify include directories. Command line options are documented at http://www.swig.org/Doc2.0/SWIG.html#SWIG_nn2 Hope that helps, Toivo This email and any attachments are intended solely for the use of the individual or entity to whom it is addressed and may be confidential and/or privileged. If you are not one of the named recipients or have received this email in error, (i) you should not read, disclose, or copy it, (ii) please notify sender of your receipt by reply email and delete this email and all attachments, (iii) Modelon does not accept or assume any liability or responsibility for any use of or reliance on this email. |
From: Varun G. <var...@gm...> - 2013-10-16 08:51:47
|
Thanks for the information. This thing I tried but it also not getting header files. Do I need to add something in interface file also like %import ...........? I am having some 20 header files to include which are in some 5 different folders at different locations. Can you please explain with some example. Regards Varun On Wed, Oct 16, 2013 at 1:44 PM, Toivo Henningsson < toi...@mo...> wrote: > > From: varungupta [mailto:var...@gm...] > > Sent: den 16 oktober 2013 09:12 > > To: swi...@li... > > Subject: [Swig-user] Regarding interface file for swig > > > > Hello I am beginner for swig. I am trying to generate python wrapper for > C++ API's. I tried with simple C++ code and it was working fine. Then I > started working on API's and when I tried to create a python wrapper for a > single API ( by placing all the headers in the interface file), I got an > error saying that some .h files are missing. I found out that the some > header files are in some other folder. Please let me know how it is > possible to add a header file present in a different folder into the > interface file by writing some loops, conditions etc. Please suggest. > Regards Varun > > You can use the -I (capital i) command line option to SWIG to specify > include directories. Command line options are documented at > http://www.swig.org/Doc2.0/SWIG.html#SWIG_nn2 > > Hope that helps, > Toivo > > This email and any attachments are intended solely for the use of the > individual or entity to whom it is addressed and may be confidential and/or > privileged. If you are not one of the named recipients or have received > this email in error, (i) you should not read, disclose, or copy it, (ii) > please notify sender of your receipt by reply email and delete this email > and all attachments, (iii) Modelon does not accept or assume any liability > or responsibility for any use of or reliance on this email. > |
From: Toivo H. <toi...@mo...> - 2013-10-16 10:26:30
|
I'm not sure that I really understand your problem. What kind of error message do you get, and when doing what? / Toivo > From: Varun Gupta [mailto:var...@gm...] > Sent: den 16 oktober 2013 10:52 > To: Toivo Henningsson > Cc: swi...@li... > Subject: Re: [Swig-user] Regarding interface file for swig > > Thanks for the information. This thing I tried but it also not getting header files. Do I need to add something in interface file also like %import ...........? I am having some 20 header files to include which are in some 5 different folders at different locations. > Can you please explain with some example. > Regards > Varun > > On Wed, Oct 16, 2013 at 1:44 PM, Toivo Henningsson <toi...@mo...> wrote: > > From: varungupta [mailto:var...@gm...] > > Sent: den 16 oktober 2013 09:12 > > To: swi...@li... > > Subject: [Swig-user] Regarding interface file for swig > > > > Hello I am beginner for swig. I am trying to generate python wrapper for C++ API's. I tried with simple C++ code and it was working fine. Then I started working on API's and when I tried to create a python wrapper for a single API ( by placing all the headers in the interface file), I got an error saying that some .h files are missing. I found out that the some header files are in some other folder. Please let me know how it is possible to add a header file present in a different folder into the interface file by writing some loops, conditions etc. Please suggest. Regards Varun > You can use the -I (capital i) command line option to SWIG to specify include directories. Command line options are documented at http://www.swig.org/Doc2.0/SWIG.html#SWIG_nn2 > Hope that helps, > Toivo This email and any attachments are intended solely for the use of the individual or entity to whom it is addressed and may be confidential and/or privileged. If you are not one of the named recipients or have received this email in error, (i) you should not read, disclose, or copy it, (ii) please notify sender of your receipt by reply email and delete this email and all attachments, (iii) Modelon does not accept or assume any liability or responsibility for any use of or reliance on this email. |
From: pluto m. <plu...@gm...> - 2013-10-16 18:58:20
|
HI, I think I have a similar question.suppose I have an interface file in the following folder: <somepath>/myProject/module/interface.i let say I have an include file in the same folder <somepath>/myProject/module/a.h <somepath>/myProject/module/a.c Now in the interface.i I can add something like %include "a.h" But lets say I have another header file in another folder in myProject; <somepath>/myProject/common/com.h <somepath>/myProject/common/com.c Now how do I add the com.h header in my interface.i file ? Varum is this also your question ? Thanks for answering pluto mars On Wed, Oct 16, 2013 at 12:26 PM, Toivo Henningsson < toi...@mo...> wrote: > I'm not sure that I really understand your problem. What kind of error > message do you get, and when doing what? > > / Toivo > > > From: Varun Gupta [mailto:var...@gm...] > > Sent: den 16 oktober 2013 10:52 > > To: Toivo Henningsson > > Cc: swi...@li... > > Subject: Re: [Swig-user] Regarding interface file for swig > > > > Thanks for the information. This thing I tried but it also not getting > header files. Do I need to add something in interface file also like > %import ...........? I am having some 20 header files to include which are > in some 5 different folders at different locations. > Can you please > explain with some example. > > Regards > > Varun > > > > On Wed, Oct 16, 2013 at 1:44 PM, Toivo Henningsson < > toi...@mo...> wrote: > > > From: varungupta [mailto:var...@gm...] > > > Sent: den 16 oktober 2013 09:12 > > > To: swi...@li... > > > Subject: [Swig-user] Regarding interface file for swig > > > > > > Hello I am beginner for swig. I am trying to generate python wrapper > for C++ API's. I tried with simple C++ code and it was working fine. Then I > started working on API's and when I tried to create a python wrapper for a > single API ( by placing all the headers in the interface file), I got an > error saying that some .h files are missing. I found out that the some > header files are in some other folder. Please let me know how it is > possible to add a header file present in a different folder into the > interface file by writing some loops, conditions etc. Please suggest. > Regards Varun > > > You can use the -I (capital i) command line option to SWIG to specify > include directories. Command line options are documented at > http://www.swig.org/Doc2.0/SWIG.html#SWIG_nn2 > > > Hope that helps, > > Toivo > > This email and any attachments are intended solely for the use of the > individual or entity to whom it is addressed and may be confidential and/or > privileged. If you are not one of the named recipients or have received > this email in error, (i) you should not read, disclose, or copy it, (ii) > please notify sender of your receipt by reply email and delete this email > and all attachments, (iii) Modelon does not accept or assume any liability > or responsibility for any use of or reliance on this email. > > > ------------------------------------------------------------------------------ > October Webinars: Code for Performance > Free Intel webinars can help you accelerate application performance. > Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most > from > the latest Intel processors and coprocessors. See abstracts and register > > http://pubads.g.doubleclick.net/gampad/clk?id=60135031&iu=/4140/ostg.clktrk > _______________________________________________ > Swig-user mailing list > Swi...@li... > https://lists.sourceforge.net/lists/listinfo/swig-user > |
From: Varun G. <var...@gm...> - 2013-10-17 02:47:36
|
Hi Pluto Yes my question is also same. You can include header file like %{ #include "a.h" #include "<somepath>/myProject/common/com.h" %} %include "a.h" %include "<somepath>/myProject/common/com.h" or you can try command line option like swig -I/<somepath>/myProject/common/com.h" interface.i Hope it works for you I am working on API's which has so many header files so I guess that's why I am getting some errors. Regards Varun On Thu, Oct 17, 2013 at 12:28 AM, pluto mars <plu...@gm...> wrote: > HI, > > I think I have a similar question.suppose I have an interface file in the > following folder: > > <somepath>/myProject/module/interface.i > > let say I have an include file in the same folder > <somepath>/myProject/module/a.h > <somepath>/myProject/module/a.c > > Now in the interface.i I can add something like %include "a.h" > > But lets say I have another header file in another folder in myProject; > <somepath>/myProject/common/com.h > <somepath>/myProject/common/com.c > > Now how do I add the com.h header in my interface.i file ? > > Varum is this also your question ? > > Thanks for answering > > pluto mars > > > On Wed, Oct 16, 2013 at 12:26 PM, Toivo Henningsson < > toi...@mo...> wrote: > >> I'm not sure that I really understand your problem. What kind of error >> message do you get, and when doing what? >> >> / Toivo >> >> > From: Varun Gupta [mailto:var...@gm...] >> > Sent: den 16 oktober 2013 10:52 >> > To: Toivo Henningsson >> > Cc: swi...@li... >> > Subject: Re: [Swig-user] Regarding interface file for swig >> > >> > Thanks for the information. This thing I tried but it also not getting >> header files. Do I need to add something in interface file also like >> %import ...........? I am having some 20 header files to include which are >> in some 5 different folders at different locations. > Can you please >> explain with some example. >> > Regards >> > Varun >> > >> > On Wed, Oct 16, 2013 at 1:44 PM, Toivo Henningsson < >> toi...@mo...> wrote: >> > > From: varungupta [mailto:var...@gm...] >> > > Sent: den 16 oktober 2013 09:12 >> > > To: swi...@li... >> > > Subject: [Swig-user] Regarding interface file for swig >> > > >> > > Hello I am beginner for swig. I am trying to generate python wrapper >> for C++ API's. I tried with simple C++ code and it was working fine. Then I >> started working on API's and when I tried to create a python wrapper for a >> single API ( by placing all the headers in the interface file), I got an >> error saying that some .h files are missing. I found out that the some >> header files are in some other folder. Please let me know how it is >> possible to add a header file present in a different folder into the >> interface file by writing some loops, conditions etc. Please suggest. >> Regards Varun >> >> > You can use the -I (capital i) command line option to SWIG to specify >> include directories. Command line options are documented at >> http://www.swig.org/Doc2.0/SWIG.html#SWIG_nn2 >> >> > Hope that helps, >> > Toivo >> >> This email and any attachments are intended solely for the use of the >> individual or entity to whom it is addressed and may be confidential and/or >> privileged. If you are not one of the named recipients or have received >> this email in error, (i) you should not read, disclose, or copy it, (ii) >> please notify sender of your receipt by reply email and delete this email >> and all attachments, (iii) Modelon does not accept or assume any liability >> or responsibility for any use of or reliance on this email. >> >> >> ------------------------------------------------------------------------------ >> October Webinars: Code for Performance >> Free Intel webinars can help you accelerate application performance. >> Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most >> from >> the latest Intel processors and coprocessors. See abstracts and register > >> >> http://pubads.g.doubleclick.net/gampad/clk?id=60135031&iu=/4140/ostg.clktrk >> _______________________________________________ >> Swig-user mailing list >> Swi...@li... >> https://lists.sourceforge.net/lists/listinfo/swig-user >> > > |
From: pluto m. <plu...@gm...> - 2013-10-17 06:45:56
|
Hi, But that is not what I want. I don't want to include the whole path. I just want to include only the path starting from myProject. Because if I transfer myProject to another folder I need to adjust everything again. So how do I do that ?? pluto mars On Thu, Oct 17, 2013 at 4:47 AM, Varun Gupta <var...@gm...> wrote: > Hi Pluto > > Yes my question is also same. You can include header file like > > %{ > #include "a.h" > #include "<somepath>/myProject/common/com.h" > %} > %include "a.h" > %include "<somepath>/myProject/common/com.h" > > or you can try command line option like > > swig -I/<somepath>/myProject/common/com.h" interface.i > > Hope it works for you > > I am working on API's which has so many header files so I guess that's why > I am getting some errors. > > Regards > Varun > > > On Thu, Oct 17, 2013 at 12:28 AM, pluto mars <plu...@gm...>wrote: > >> HI, >> >> I think I have a similar question.suppose I have an interface file in the >> following folder: >> >> <somepath>/myProject/module/interface.i >> >> let say I have an include file in the same folder >> <somepath>/myProject/module/a.h >> <somepath>/myProject/module/a.c >> >> Now in the interface.i I can add something like %include "a.h" >> >> But lets say I have another header file in another folder in myProject; >> <somepath>/myProject/common/com.h >> <somepath>/myProject/common/com.c >> >> Now how do I add the com.h header in my interface.i file ? >> >> Varum is this also your question ? >> >> Thanks for answering >> >> pluto mars >> >> >> On Wed, Oct 16, 2013 at 12:26 PM, Toivo Henningsson < >> toi...@mo...> wrote: >> >>> I'm not sure that I really understand your problem. What kind of error >>> message do you get, and when doing what? >>> >>> / Toivo >>> >>> > From: Varun Gupta [mailto:var...@gm...] >>> > Sent: den 16 oktober 2013 10:52 >>> > To: Toivo Henningsson >>> > Cc: swi...@li... >>> > Subject: Re: [Swig-user] Regarding interface file for swig >>> > >>> > Thanks for the information. This thing I tried but it also not getting >>> header files. Do I need to add something in interface file also like >>> %import ...........? I am having some 20 header files to include which are >>> in some 5 different folders at different locations. > Can you please >>> explain with some example. >>> > Regards >>> > Varun >>> > >>> > On Wed, Oct 16, 2013 at 1:44 PM, Toivo Henningsson < >>> toi...@mo...> wrote: >>> > > From: varungupta [mailto:var...@gm...] >>> > > Sent: den 16 oktober 2013 09:12 >>> > > To: swi...@li... >>> > > Subject: [Swig-user] Regarding interface file for swig >>> > > >>> > > Hello I am beginner for swig. I am trying to generate python wrapper >>> for C++ API's. I tried with simple C++ code and it was working fine. Then I >>> started working on API's and when I tried to create a python wrapper for a >>> single API ( by placing all the headers in the interface file), I got an >>> error saying that some .h files are missing. I found out that the some >>> header files are in some other folder. Please let me know how it is >>> possible to add a header file present in a different folder into the >>> interface file by writing some loops, conditions etc. Please suggest. >>> Regards Varun >>> >>> > You can use the -I (capital i) command line option to SWIG to specify >>> include directories. Command line options are documented at >>> http://www.swig.org/Doc2.0/SWIG.html#SWIG_nn2 >>> >>> > Hope that helps, >>> > Toivo >>> >>> This email and any attachments are intended solely for the use of the >>> individual or entity to whom it is addressed and may be confidential and/or >>> privileged. If you are not one of the named recipients or have received >>> this email in error, (i) you should not read, disclose, or copy it, (ii) >>> please notify sender of your receipt by reply email and delete this email >>> and all attachments, (iii) Modelon does not accept or assume any liability >>> or responsibility for any use of or reliance on this email. >>> >>> >>> ------------------------------------------------------------------------------ >>> October Webinars: Code for Performance >>> Free Intel webinars can help you accelerate application performance. >>> Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most >>> from >>> the latest Intel processors and coprocessors. See abstracts and register >>> > >>> >>> http://pubads.g.doubleclick.net/gampad/clk?id=60135031&iu=/4140/ostg.clktrk >>> _______________________________________________ >>> Swig-user mailing list >>> Swi...@li... >>> https://lists.sourceforge.net/lists/listinfo/swig-user >>> >> >> > |
From: Kris T. <kri...@gm...> - 2013-10-17 07:18:34
|
Hi Varun You had a mistake in your answer. You typed swig -I/<somepath>/myProject/common/com.h" interface.i instead, it has some be something like swig -I/<somepath>/ interface.i that is, the -I flag specifies a "prefix path" where swig can find the files for any %include statements. When swigging an API, clearly it's best to use the same convention for this prefix path as the API does in its own include files. So, the above line assumes that the API tells you to use #include "myProject/common/com.h" in your C++ code. Another way to look at it is to say that swig's -I flag has to be the same as the one you pass to the C++ compiler. HTH Kris > -----Original Message----- > From: Varun Gupta [mailto:var...@gm...] > Sent: 17 October 2013 03:47 > To: pluto mars > Cc: swi...@li... > Subject: Re: [Swig-user] Regarding interface file for swig > > Hi Pluto > > > Yes my question is also same. You can include header file like > > %{ > > #include "a.h" > > #include "<somepath>/myProject/common/com.h" > > %} > %include "a.h" > %include "<somepath>/myProject/common/com.h" > > > or you can try command line option like > > > swig -I/<somepath>/myProject/common/com.h" interface.i > > > Hope it works for you > > > I am working on API's which has so many header files so I guess that's why I > am getting some errors. > > > Regards > > Varun > > > On Thu, Oct 17, 2013 at 12:28 AM, pluto mars <plu...@gm...> > wrote: > > > HI, > > > I think I have a similar question.suppose I have an interface file in the > following folder: > > > <somepath>/myProject/module/interface.i > > > let say I have an include file in the same folder > <somepath>/myProject/module/a.h > <somepath>/myProject/module/a.c > > > Now in the interface.i I can add something like %include "a.h" > > > But lets say I have another header file in another folder in myProject; > <somepath>/myProject/common/com.h > <somepath>/myProject/common/com.c > > > Now how do I add the com.h header in my interface.i file ? > > > Varum is this also your question ? > > > Thanks for answering > > > pluto mars > > > > On Wed, Oct 16, 2013 at 12:26 PM, Toivo Henningsson > <toi...@mo...> wrote: > > > I'm not sure that I really understand your problem. What kind > of error message do you get, and when doing what? > > / Toivo > > > From: Varun Gupta [mailto:var...@gm...] > > Sent: den 16 oktober 2013 10:52 > > To: Toivo Henningsson > > Cc: swi...@li... > > Subject: Re: [Swig-user] Regarding interface file for swig > > > > > Thanks for the information. This thing I tried but it also not > getting header files. Do I need to add something in interface file also like > %import ...........? I am having some 20 header files to include which are in > some 5 different folders at different locations. > Can you please explain with > some example. > > Regards > > Varun > > > > On Wed, Oct 16, 2013 at 1:44 PM, Toivo Henningsson > <toi...@mo...> wrote: > > > From: varungupta [mailto:var...@gm...] > > > Sent: den 16 oktober 2013 09:12 > > > To: swi...@li... > > > Subject: [Swig-user] Regarding interface file for swig > > > > > > Hello I am beginner for swig. I am trying to generate > python wrapper for C++ API's. I tried with simple C++ code and it was > working fine. Then I started working on API's and when I tried to create a > python wrapper for a single API ( by placing all the headers in the interface > file), I got an error saying that some .h files are missing. I found out that the > some header files are in some other folder. Please let me know how it is > possible to add a header file present in a different folder into the interface > file by writing some loops, conditions etc. Please suggest. Regards Varun > > > You can use the -I (capital i) command line option to SWIG > to specify include directories. Command line options are documented at > http://www.swig.org/Doc2.0/SWIG.html#SWIG_nn2 > > > Hope that helps, > > Toivo > > This email and any attachments are intended solely for the > use of the individual or entity to whom it is addressed and may be > confidential and/or privileged. If you are not one of the named recipients or > have received this email in error, (i) you should not read, disclose, or copy it, > (ii) please notify sender of your receipt by reply email and delete this email > and all attachments, (iii) Modelon does not accept or assume any liability or > responsibility for any use of or reliance on this email. > > > -------------------------------------------------------------------------- > ---- > October Webinars: Code for Performance > Free Intel webinars can help you accelerate application > performance. > Explore tips for MPI, OpenMP, advanced profiling, and more. > Get the most from > the latest Intel processors and coprocessors. See abstracts > and register > > > http://pubads.g.doubleclick.net/gampad/clk?id=60135031&iu=/4140 > /ostg.clktrk > _______________________________________________ > Swig-user mailing list > > Swi...@li... > https://lists.sourceforge.net/lists/listinfo/swig-user > > > |
From: Varun G. <var...@gm...> - 2013-10-17 08:24:17
|
Hi Kris Thanks for correction. I did that thing also but it is also giving error. Lets have a look on my interface file i.e example.i %module example %{ #include "oaBuildDef.h" #include "oaDesignDBTypesPvt.h" #include "oaBoundary.inl" #include "oaOccShapeV.h" #include "oaBuildInfo.inl" #include "oaGroup.inl" #include "oaConstraintGroup.inl" #include "oaDMEnumWrapper.inl" #include "oaTechEnumWrapper.inl" #include "oaDesignEnumWrapper.inl" #include "oaTechDBTypesPvt.h" #include "oaSegStylePvt.inl" #include "oaBusTermDefPvt.inl" #include "oaTextPvt.inl" #include "oaClusterPvt.inl" #include "oaBoundaryV.h" #include "oaInstHeaderPvt.inl" #include "oaVectorInstDefPvt.inl" %} %include "oaBuildDef.h" %include "oaDesignDBTypesPvt.h" %include "oaBoundary.inl" %include "oaOccShapeV.h" %include "oaBuildInfo.inl" %include "oaGroup.inl" %include "oaConstraintGroup.inl" %include "oaDMEnumWrapper.inl" %include "oaTechEnumWrapper.inl" %include "oaDesignEnumWrapper.inl" %include "oaTechDBTypesPvt.h" %include "oaSegStylePvt.inl" %include "oaBusTermDefPvt.inl" %include "oaTextPvt.inl" %include "oaClusterPvt.inl" %include "oaBoundaryV.h" %include "oaInstHeaderPvt.inl" %include "oaVectorInstDefPvt.inl" My some header files are in some other folder so I included in command line. *swig -I/path/source/sc/build -I/path/source/sc/base example.i* Error I am getting is* oaDesignDBTypesPvt.h:54: Error: Syntax error in input(1*). Then I did like what you have said *swig -I/path/source/ example.i, *instead of giving two times I define path 2 directories back. But still I am getting same error. I also tried to include path in interface file like *#include "path/file.h"*, but again same error. All these files are part of API's and I checked those by compiling and are working fine. Please give some suggestion. Regards Varun On Thu, Oct 17, 2013 at 12:48 PM, Kris Thielemans < kri...@gm...> wrote: > Hi Varun > > You had a mistake in your answer. You typed > > swig -I/<somepath>/myProject/common/com.h" interface.i > > instead, it has some be something like > > swig -I/<somepath>/ interface.i > > that is, the -I flag specifies a "prefix path" where swig can find the > files > for any %include statements. When swigging an API, clearly it's best to > use > the same convention for this prefix path as the API does in its own include > files. So, the above line assumes that the API tells you to use > > #include "myProject/common/com.h" > > in your C++ code. Another way to look at it is to say that swig's -I flag > has to be the same as the one you pass to the C++ compiler. > > HTH > Kris > > > -----Original Message----- > > From: Varun Gupta [mailto:var...@gm...] > > Sent: 17 October 2013 03:47 > > To: pluto mars > > Cc: swi...@li... > > Subject: Re: [Swig-user] Regarding interface file for swig > > > > Hi Pluto > > > > > > Yes my question is also same. You can include header file like > > > > %{ > > > > #include "a.h" > > > > #include "<somepath>/myProject/common/com.h" > > > > %} > > %include "a.h" > > %include "<somepath>/myProject/common/com.h" > > > > > > or you can try command line option like > > > > > > swig -I/<somepath>/myProject/common/com.h" interface.i > > > > > > Hope it works for you > > > > > > I am working on API's which has so many header files so I guess that's > why > I > > am getting some errors. > > > > > > Regards > > > > Varun > > > > > > On Thu, Oct 17, 2013 at 12:28 AM, pluto mars <plu...@gm...> > > wrote: > > > > > > HI, > > > > > > I think I have a similar question.suppose I have an interface file > in the > > following folder: > > > > > > <somepath>/myProject/module/interface.i > > > > > > let say I have an include file in the same folder > > <somepath>/myProject/module/a.h > > <somepath>/myProject/module/a.c > > > > > > Now in the interface.i I can add something like %include "a.h" > > > > > > But lets say I have another header file in another folder in > myProject; > > <somepath>/myProject/common/com.h > > <somepath>/myProject/common/com.c > > > > > > Now how do I add the com.h header in my interface.i file ? > > > > > > Varum is this also your question ? > > > > > > Thanks for answering > > > > > > pluto mars > > > > > > > > On Wed, Oct 16, 2013 at 12:26 PM, Toivo Henningsson > > <toi...@mo...> wrote: > > > > > > I'm not sure that I really understand your problem. What > kind > > of error message do you get, and when doing what? > > > > / Toivo > > > > > From: Varun Gupta [mailto:var...@gm...] > > > Sent: den 16 oktober 2013 10:52 > > > To: Toivo Henningsson > > > Cc: swi...@li... > > > Subject: Re: [Swig-user] Regarding interface file for > swig > > > > > > > > Thanks for the information. This thing I tried but it > also > not > > getting header files. Do I need to add something in interface file also > like > > %import ...........? I am having some 20 header files to include which > are > in > > some 5 different folders at different locations. > Can you please explain > with > > some example. > > > Regards > > > Varun > > > > > > On Wed, Oct 16, 2013 at 1:44 PM, Toivo Henningsson > > <toi...@mo...> wrote: > > > > From: varungupta [mailto:var...@gm...] > > > > Sent: den 16 oktober 2013 09:12 > > > > To: swi...@li... > > > > Subject: [Swig-user] Regarding interface file for swig > > > > > > > > Hello I am beginner for swig. I am trying to generate > > python wrapper for C++ API's. I tried with simple C++ code and it was > > working fine. Then I started working on API's and when I tried to create > a > > python wrapper for a single API ( by placing all the headers in the > interface > > file), I got an error saying that some .h files are missing. I found out > that the > > some header files are in some other folder. Please let me know how it is > > possible to add a header file present in a different folder into the > interface > > file by writing some loops, conditions etc. Please suggest. Regards Varun > > > > > You can use the -I (capital i) command line option to > SWIG > > to specify include directories. Command line options are documented at > > http://www.swig.org/Doc2.0/SWIG.html#SWIG_nn2 > > > > > Hope that helps, > > > Toivo > > > > This email and any attachments are intended solely for the > > use of the individual or entity to whom it is addressed and may be > > confidential and/or privileged. If you are not one of the named > recipients > or > > have received this email in error, (i) you should not read, disclose, or > copy it, > > (ii) please notify sender of your receipt by reply email and delete this > email > > and all attachments, (iii) Modelon does not accept or assume any > liability > or > > responsibility for any use of or reliance on this email. > > > > > > > -------------------------------------------------------------------------- > > ---- > > October Webinars: Code for Performance > > Free Intel webinars can help you accelerate application > > performance. > > Explore tips for MPI, OpenMP, advanced profiling, and more. > > Get the most from > > the latest Intel processors and coprocessors. See abstracts > > and register > > > > > http://pubads.g.doubleclick.net/gampad/clk?id=60135031&iu=/4140 > > /ostg.clktrk > > _______________________________________________ > > Swig-user mailing list > > > > Swi...@li... > > https://lists.sourceforge.net/lists/listinfo/swig-user > > > > > > > > > |
From: Kris T. <kri...@gm...> - 2013-10-17 08:39:11
|
Right, but if your error is oaDesignDBTypesPvt.h:54: Error: Syntax error in input(1). then swig is finding the file, so all this stuff about -I is sorted now. now you need to check the content of that file and see what's happening on line 54. By the way, usually you shouldn't have to %include the .inl files. Swig only needs to be about declarations (not implementations). Unless of course you have additional declarations in the .inl files (but that sounds a bit horrible). (also in the preamble, you'd expect that a .h file includes its .inl. if it doesn't, it's really a rather badly written API, but that's a C++ story, not swig). Kris > -----Original Message----- > From: Varun Gupta [mailto:var...@gm...] > Sent: 17 October 2013 09:24 > To: Kris Thielemans > Cc: pluto mars; swi...@li... > Subject: Re: [Swig-user] Regarding interface file for swig > > Hi Kris > > > Thanks for correction. I did that thing also but it is also giving error. Lets have > a look on my interface file i.e example.i > > > %module example > %{ > #include "oaBuildDef.h" > #include "oaDesignDBTypesPvt.h" > #include "oaBoundary.inl" > #include "oaOccShapeV.h" > #include "oaBuildInfo.inl" > #include "oaGroup.inl" > #include "oaConstraintGroup.inl" > #include "oaDMEnumWrapper.inl" > #include "oaTechEnumWrapper.inl" > #include "oaDesignEnumWrapper.inl" > #include "oaTechDBTypesPvt.h" > #include "oaSegStylePvt.inl" > #include "oaBusTermDefPvt.inl" > #include "oaTextPvt.inl" > #include "oaClusterPvt.inl" > #include "oaBoundaryV.h" > #include "oaInstHeaderPvt.inl" > #include "oaVectorInstDefPvt.inl" > %} > %include "oaBuildDef.h" > %include "oaDesignDBTypesPvt.h" > %include "oaBoundary.inl" > %include "oaOccShapeV.h" > %include "oaBuildInfo.inl" > %include "oaGroup.inl" > %include "oaConstraintGroup.inl" > %include "oaDMEnumWrapper.inl" > %include "oaTechEnumWrapper.inl" > %include "oaDesignEnumWrapper.inl" > %include "oaTechDBTypesPvt.h" > %include "oaSegStylePvt.inl" > %include "oaBusTermDefPvt.inl" > %include "oaTextPvt.inl" > %include "oaClusterPvt.inl" > %include "oaBoundaryV.h" > %include "oaInstHeaderPvt.inl" > %include "oaVectorInstDefPvt.inl" > > > My some header files are in some other folder so I included in command line. > > swig -I/path/source/sc/build -I/path/source/sc/base example.i > > > Error I am getting is oaDesignDBTypesPvt.h:54: Error: Syntax error in > input(1). > > > Then I did like what you have said swig -I/path/source/ example.i, instead > of giving two times I define path 2 directories back. But still I am getting > same error. > > > I also tried to include path in interface file like #include "path/file.h", but > again same error. > > > All these files are part of API's and I checked those by compiling and are > working fine. > > > Please give some suggestion. > > > Regards > > Varun > > > > On Thu, Oct 17, 2013 at 12:48 PM, Kris Thielemans > <kri...@gm...> wrote: > > > Hi Varun > > You had a mistake in your answer. You typed > > > swig -I/<somepath>/myProject/common/com.h" interface.i > > > instead, it has some be something like > > swig -I/<somepath>/ interface.i > > that is, the -I flag specifies a "prefix path" where swig can find the > files > for any %include statements. When swigging an API, clearly it's best > to use > the same convention for this prefix path as the API does in its own > include > files. So, the above line assumes that the API tells you to use > > #include "myProject/common/com.h" > > in your C++ code. Another way to look at it is to say that swig's -I flag > has to be the same as the one you pass to the C++ compiler. > > HTH > Kris > > > > -----Original Message----- > > From: Varun Gupta [mailto:var...@gm...] > > > Sent: 17 October 2013 03:47 > > To: pluto mars > > Cc: swi...@li... > > Subject: Re: [Swig-user] Regarding interface file for swig > > > > Hi Pluto > > > > > > Yes my question is also same. You can include header file like > > > > %{ > > > > #include "a.h" > > > > #include "<somepath>/myProject/common/com.h" > > > > %} > > %include "a.h" > > %include "<somepath>/myProject/common/com.h" > > > > > > or you can try command line option like > > > > > > swig -I/<somepath>/myProject/common/com.h" interface.i > > > > > > Hope it works for you > > > > > > I am working on API's which has so many header files so I guess > that's why > I > > am getting some errors. > > > > > > Regards > > > > Varun > > > > > > On Thu, Oct 17, 2013 at 12:28 AM, pluto mars > <plu...@gm...> > > wrote: > > > > > > HI, > > > > > > I think I have a similar question.suppose I have an interface file > in the > > following folder: > > > > > > <somepath>/myProject/module/interface.i > > > > > > let say I have an include file in the same folder > > <somepath>/myProject/module/a.h > > <somepath>/myProject/module/a.c > > > > > > Now in the interface.i I can add something like %include "a.h" > > > > > > But lets say I have another header file in another folder in > myProject; > > <somepath>/myProject/common/com.h > > <somepath>/myProject/common/com.c > > > > > > Now how do I add the com.h header in my interface.i file ? > > > > > > Varum is this also your question ? > > > > > > Thanks for answering > > > > > > pluto mars > > > > > > > > On Wed, Oct 16, 2013 at 12:26 PM, Toivo Henningsson > > <toi...@mo...> wrote: > > > > > > I'm not sure that I really understand your problem. What > kind > > of error message do you get, and when doing what? > > > > / Toivo > > > > > From: Varun Gupta [mailto:var...@gm...] > > > Sent: den 16 oktober 2013 10:52 > > > To: Toivo Henningsson > > > Cc: swi...@li... > > > Subject: Re: [Swig-user] Regarding interface file for swig > > > > > > > > Thanks for the information. This thing I tried but it also > not > > getting header files. Do I need to add something in interface file > also > like > > %import ...........? I am having some 20 header files to include > which are > in > > some 5 different folders at different locations. > Can you please > explain > with > > some example. > > > Regards > > > Varun > > > > > > On Wed, Oct 16, 2013 at 1:44 PM, Toivo Henningsson > > <toi...@mo...> wrote: > > > > From: varungupta [mailto:var...@gm...] > > > > Sent: den 16 oktober 2013 09:12 > > > > To: swi...@li... > > > > Subject: [Swig-user] Regarding interface file for swig > > > > > > > > Hello I am beginner for swig. I am trying to generate > > python wrapper for C++ API's. I tried with simple C++ code and it > was > > working fine. Then I started working on API's and when I tried to > create a > > python wrapper for a single API ( by placing all the headers in the > interface > > file), I got an error saying that some .h files are missing. I found out > that the > > some header files are in some other folder. Please let me know > how it is > > possible to add a header file present in a different folder into the > interface > > file by writing some loops, conditions etc. Please suggest. Regards > Varun > > > > > You can use the -I (capital i) command line option to > SWIG > > to specify include directories. Command line options are > documented at > > http://www.swig.org/Doc2.0/SWIG.html#SWIG_nn2 > > > > > Hope that helps, > > > Toivo > > > > This email and any attachments are intended solely for the > > use of the individual or entity to whom it is addressed and may be > > confidential and/or privileged. If you are not one of the named > recipients > or > > have received this email in error, (i) you should not read, disclose, > or > copy it, > > (ii) please notify sender of your receipt by reply email and delete > this > email > > and all attachments, (iii) Modelon does not accept or assume any > liability > or > > responsibility for any use of or reliance on this email. > > > > > > > -------------------------------------------------------------------------- > > ---- > > October Webinars: Code for Performance > > Free Intel webinars can help you accelerate application > > performance. > > Explore tips for MPI, OpenMP, advanced profiling, and > more. > > Get the most from > > the latest Intel processors and coprocessors. See abstracts > > and register > > > > > > http://pubads.g.doubleclick.net/gampad/clk?id=60135031&iu=/4140 > > /ostg.clktrk > > _______________________________________________ > > Swig-user mailing list > > > > Swi...@li... > > https://lists.sourceforge.net/lists/listinfo/swig-user > > > > > > > > > > |
From: Varun G. <var...@gm...> - 2013-10-17 08:55:24
|
I checked on line 54, some enum declarations are there like enum oaObjectDomainModTypeEnum { oacAddToBlockDomainModType = 4, oacAddToModDomainModType = 5, }; Any idea should I declare this in interface file? If yes then please tell me the syntax. For you information these are Cadence Open Access C++ API's and I am trying to convert in python. On Thu, Oct 17, 2013 at 2:09 PM, Kris Thielemans < kri...@gm...> wrote: > Right, but if your error is > > oaDesignDBTypesPvt.h:54: Error: Syntax error in input(1). > > then swig is finding the file, so all this stuff about -I is sorted now. > now > you need to check the content of that file and see what's happening on line > 54. > > By the way, usually you shouldn't have to %include the .inl files. Swig > only > needs to be about declarations (not implementations). Unless of course you > have additional declarations in the .inl files (but that sounds a bit > horrible). (also in the preamble, you'd expect that a .h file includes its > .inl. if it doesn't, it's really a rather badly written API, but that's a > C++ story, not swig). > > Kris > > > -----Original Message----- > > From: Varun Gupta [mailto:var...@gm...] > > Sent: 17 October 2013 09:24 > > To: Kris Thielemans > > Cc: pluto mars; swi...@li... > > Subject: Re: [Swig-user] Regarding interface file for swig > > > > Hi Kris > > > > > > Thanks for correction. I did that thing also but it is also giving error. > Lets have > > a look on my interface file i.e example.i > > > > > > %module example > > %{ > > #include "oaBuildDef.h" > > #include "oaDesignDBTypesPvt.h" > > #include "oaBoundary.inl" > > #include "oaOccShapeV.h" > > #include "oaBuildInfo.inl" > > #include "oaGroup.inl" > > #include "oaConstraintGroup.inl" > > #include "oaDMEnumWrapper.inl" > > #include "oaTechEnumWrapper.inl" > > #include "oaDesignEnumWrapper.inl" > > #include "oaTechDBTypesPvt.h" > > #include "oaSegStylePvt.inl" > > #include "oaBusTermDefPvt.inl" > > #include "oaTextPvt.inl" > > #include "oaClusterPvt.inl" > > #include "oaBoundaryV.h" > > #include "oaInstHeaderPvt.inl" > > #include "oaVectorInstDefPvt.inl" > > %} > > %include "oaBuildDef.h" > > %include "oaDesignDBTypesPvt.h" > > %include "oaBoundary.inl" > > %include "oaOccShapeV.h" > > %include "oaBuildInfo.inl" > > %include "oaGroup.inl" > > %include "oaConstraintGroup.inl" > > %include "oaDMEnumWrapper.inl" > > %include "oaTechEnumWrapper.inl" > > %include "oaDesignEnumWrapper.inl" > > %include "oaTechDBTypesPvt.h" > > %include "oaSegStylePvt.inl" > > %include "oaBusTermDefPvt.inl" > > %include "oaTextPvt.inl" > > %include "oaClusterPvt.inl" > > %include "oaBoundaryV.h" > > %include "oaInstHeaderPvt.inl" > > %include "oaVectorInstDefPvt.inl" > > > > > > My some header files are in some other folder so I included in command > line. > > > > swig -I/path/source/sc/build -I/path/source/sc/base example.i > > > > > > Error I am getting is oaDesignDBTypesPvt.h:54: Error: Syntax error in > > input(1). > > > > > > Then I did like what you have said swig -I/path/source/ example.i, > instead > > of giving two times I define path 2 directories back. But still I am > getting > > same error. > > > > > > I also tried to include path in interface file like #include > "path/file.h", but > > again same error. > > > > > > All these files are part of API's and I checked those by compiling and > are > > working fine. > > > > > > Please give some suggestion. > > > > > > Regards > > > > Varun > > > > > > > > On Thu, Oct 17, 2013 at 12:48 PM, Kris Thielemans > > <kri...@gm...> wrote: > > > > > > Hi Varun > > > > You had a mistake in your answer. You typed > > > > > > swig -I/<somepath>/myProject/common/com.h" interface.i > > > > > > instead, it has some be something like > > > > swig -I/<somepath>/ interface.i > > > > that is, the -I flag specifies a "prefix path" where swig can find > the > > files > > for any %include statements. When swigging an API, clearly it's > best > > to use > > the same convention for this prefix path as the API does in its own > > include > > files. So, the above line assumes that the API tells you to use > > > > #include "myProject/common/com.h" > > > > in your C++ code. Another way to look at it is to say that swig's > -I > flag > > has to be the same as the one you pass to the C++ compiler. > > > > HTH > > Kris > > > > > > > -----Original Message----- > > > From: Varun Gupta [mailto:var...@gm...] > > > > > Sent: 17 October 2013 03:47 > > > To: pluto mars > > > Cc: swi...@li... > > > Subject: Re: [Swig-user] Regarding interface file for swig > > > > > > Hi Pluto > > > > > > > > > Yes my question is also same. You can include header file like > > > > > > %{ > > > > > > #include "a.h" > > > > > > #include "<somepath>/myProject/common/com.h" > > > > > > %} > > > %include "a.h" > > > %include "<somepath>/myProject/common/com.h" > > > > > > > > > or you can try command line option like > > > > > > > > > swig -I/<somepath>/myProject/common/com.h" interface.i > > > > > > > > > Hope it works for you > > > > > > > > > I am working on API's which has so many header files so I guess > > that's why > > I > > > am getting some errors. > > > > > > > > > Regards > > > > > > Varun > > > > > > > > > On Thu, Oct 17, 2013 at 12:28 AM, pluto mars > > <plu...@gm...> > > > wrote: > > > > > > > > > HI, > > > > > > > > > I think I have a similar question.suppose I have an > interface file > > in the > > > following folder: > > > > > > > > > <somepath>/myProject/module/interface.i > > > > > > > > > let say I have an include file in the same folder > > > <somepath>/myProject/module/a.h > > > <somepath>/myProject/module/a.c > > > > > > > > > Now in the interface.i I can add something like %include > "a.h" > > > > > > > > > But lets say I have another header file in another folder > in > > myProject; > > > <somepath>/myProject/common/com.h > > > <somepath>/myProject/common/com.c > > > > > > > > > Now how do I add the com.h header in my interface.i file ? > > > > > > > > > Varum is this also your question ? > > > > > > > > > Thanks for answering > > > > > > > > > pluto mars > > > > > > > > > > > > On Wed, Oct 16, 2013 at 12:26 PM, Toivo Henningsson > > > <toi...@mo...> wrote: > > > > > > > > > I'm not sure that I really understand your problem. > What > > kind > > > of error message do you get, and when doing what? > > > > > > / Toivo > > > > > > > From: Varun Gupta [mailto:var...@gm... > ] > > > > Sent: den 16 oktober 2013 10:52 > > > > To: Toivo Henningsson > > > > Cc: swi...@li... > > > > Subject: Re: [Swig-user] Regarding interface file > for swig > > > > > > > > > > > Thanks for the information. This thing I tried > but > it also > > not > > > getting header files. Do I need to add something in interface > file > > also > > like > > > %import ...........? I am having some 20 header files to include > > which are > > in > > > some 5 different folders at different locations. > Can you please > > explain > > with > > > some example. > > > > Regards > > > > Varun > > > > > > > > On Wed, Oct 16, 2013 at 1:44 PM, Toivo > Henningsson > > > <toi...@mo...> wrote: > > > > > From: varungupta [mailto: > var...@gm...] > > > > > Sent: den 16 oktober 2013 09:12 > > > > > To: swi...@li... > > > > > Subject: [Swig-user] Regarding interface file > for swig > > > > > > > > > > Hello I am beginner for swig. I am trying to > generate > > > python wrapper for C++ API's. I tried with simple C++ code and it > > was > > > working fine. Then I started working on API's and when I tried to > > create a > > > python wrapper for a single API ( by placing all the headers in > the > > interface > > > file), I got an error saying that some .h files are missing. I > found out > > that the > > > some header files are in some other folder. Please let me know > > how it is > > > possible to add a header file present in a different folder into > the > > interface > > > file by writing some loops, conditions etc. Please suggest. > Regards > > Varun > > > > > > > You can use the -I (capital i) command line > option > to > > SWIG > > > to specify include directories. Command line options are > > documented at > > > http://www.swig.org/Doc2.0/SWIG.html#SWIG_nn2 > > > > > > > Hope that helps, > > > > Toivo > > > > > > This email and any attachments are intended solely > for the > > > use of the individual or entity to whom it is addressed and may > be > > > confidential and/or privileged. If you are not one of the named > > recipients > > or > > > have received this email in error, (i) you should not read, > disclose, > > or > > copy it, > > > (ii) please notify sender of your receipt by reply email and > delete > > this > > email > > > and all attachments, (iii) Modelon does not accept or assume any > > liability > > or > > > responsibility for any use of or reliance on this email. > > > > > > > > > > > > -------------------------------------------------------------------------- > > > ---- > > > October Webinars: Code for Performance > > > Free Intel webinars can help you accelerate > application > > > performance. > > > Explore tips for MPI, OpenMP, advanced profiling, > and > > more. > > > Get the most from > > > the latest Intel processors and coprocessors. See > abstracts > > > and register > > > > > > > > > http://pubads.g.doubleclick.net/gampad/clk?id=60135031&iu=/4140 > > > /ostg.clktrk > > > _______________________________________________ > > > Swig-user mailing list > > > > > > Swi...@li... > > > > https://lists.sourceforge.net/lists/listinfo/swig-user > > > > > > > > > > > > > > > > > > > > |
From: Varun G. <var...@gm...> - 2013-10-18 06:43:54
|
I am trying to convert c++ API's into python. I have written interface file for one .cpp file i.e given below %module example > %{ > #include "oaBuildDef.h" > #include "oaDesignDBTypesPvt.h" > #include "oaBoundary.inl" > #include "oaOccShapeV.h" > #include "oaBuildInfo.inl" > #include "oaGroup.inl" > %} > %include "oaBuildDef.h" > %include "oaDesignDBTypesPvt.h" > %include "oaBoundary.inl" > %include "oaOccShapeV.h" > %include "oaBuildInfo.inl" > %include "oaGroup.inl" > Error I am getting is oaDesignDBTypesPvt.h:54: Error: Syntax error in input(1). I have checked line 54 in oaDesignDBTypesPvt.h and function given below is defined there enum oaObjectDomainModTypeEnum { oacAddToBlockDomainModType = 4, oacAddToModDomainModType = 5, oacAddToOccDomainModType = 6, oacRemoveFromBlockDomainModType = 7, oacRemoveFromModDomainModType = 8, oacRemoveFromOccDomainModType = 9 }; Please suggest what should I do? Should I add this in interface file, if yes then how? I checked that error in internet also but didn't get any solution. Please give proper explanation |
From: William S F. <ws...@fu...> - 2013-10-18 18:06:43
|
On 18/10/13 07:43, Varun Gupta wrote: > I am trying to convert c++ API's into python. I have written interface file > for one .cpp file i.e given below > > %module example >> %{ >> #include "oaBuildDef.h" >> #include "oaDesignDBTypesPvt.h" >> #include "oaBoundary.inl" >> #include "oaOccShapeV.h" >> #include "oaBuildInfo.inl" >> #include "oaGroup.inl" > >> %} >> %include "oaBuildDef.h" >> %include "oaDesignDBTypesPvt.h" >> %include "oaBoundary.inl" >> %include "oaOccShapeV.h" >> %include "oaBuildInfo.inl" >> %include "oaGroup.inl" > >> Error I am getting is oaDesignDBTypesPvt.h:54: Error: Syntax error in > input(1). > > I have checked line 54 in oaDesignDBTypesPvt.h and function given below is > defined there > > enum oaObjectDomainModTypeEnum { > oacAddToBlockDomainModType = 4, > oacAddToModDomainModType = 5, > oacAddToOccDomainModType = 6, > oacRemoveFromBlockDomainModType = 7, > oacRemoveFromModDomainModType = 8, > oacRemoveFromOccDomainModType = 9 > }; > That looks okay, but it isn't necessarily what SWIG will see. Use SWIG's preprocessor to view what is actually given to SWIG in the same way you would with a C++ compiler. William |