Welcome to the Doctor Swig project homepage.

First, I am not that great at designing and creating web-sites, so you'll have to accept the rather low standard of the current layout.

Next a little warning, this project is not a continous development effort. The project has been made available in the hopes that it may be of interest to others under MIT/X11 licensing. DoctorSwig is the result of my personal experiences with creating a C# wrapper around an unmanaged middleware application.

I will update the project based on bugfixes and patches, and update the add-in repository as required.

If you discover a bug I would be very pleased if you registered the bug, it will be even better if you can supply a patch.

If you wish to see the traditional Sourcforge web site, in order to access the source code or to register bugs or patches, please follow this link

If you just wish to wish install and use the add-in, there is a repository available which can be registered with the addin manager of MonoDevelop.


MonoDevelop, version 2.0
with the C# binding installed
Swig, version 1.3.39

Currently there are two known issues:
The documentation assumes that you are reasonably familiar with both Swig and MonoDevelop.

Short installation guide:

The first step is to register the new add-in repository:
In the Tools menu select "Add-in Manager"
Tools menu of MonoDevelop

Selecting the "Add-in Manager" will cause the Add-in Manager dialog to be shown, in that dialog, select "Repositories..."
Add-in Manager dialog of MonoDevelop

In the "Add-in Repository Management" dialog, click "Add"
Add-in Repository Management of MonoDevelop

In the "Add New Respository" dialog, type "http://doctorswig.sourceforge.net/md/2.0/main.mrep" and click ok
Add New Respository dialog of MonoDevelop

A progress bar will be displayed briefly, while the repository is being scanned, and then the add-in mananger should display the list all known repositories, including the "doctorswig.sourceforge.net" repository.
Add New Respository dialog of MonoDevelop

Clicking "Close" on the "Add-in Repository Management" dialog, causes MonoDevelop to return control to the "Add-In Manager Dialog"
Add-in Repository Management of MonoDevelop

The registration of the repository should succeed without any issues, if any of the steps fail, you may have to report a bug, describing what happend.
Once the repository has been added, it is time to perform the actual installation of the add-in, physically transferring the binaries, and registering the add-in with MonoDevelop.

Click on "Install Add-ins...", in order to display the "Add-in Installation" dialog.
Add-in Installation dialog of MonoDevelop

Click "Refresh" for good measure, in order to ensure that the local repository information is up to date.

Then open the "Language binding" section"
Add-in Installation dialog of MonoDevelop

Add a check mark to the "Swig interface wrapper generator" entry in the dialog
Checked swig add-in node
When the check mark has been added, MonoDevelop will activate the "Forward" button, and you should click "Forward"
Forward button
MonoDevelop should respond with a dialog, indicating what packages will be installed, the dialog should look similar to the one on this page, any entries in red, usually indicates version problems between the swig add-in and MonoDevelop
Package installation notification

MonoDevelop should respond with a success dialog, like the one below, if this step fails, I would like to have some screen shots along with a bug report outlining the problems.
Successfull package installation notification

Finally click on "Close" in the remaining "Add-in Manager" dialog, in order to complete the installation process.


Doctor Swig is now installed, and you should now be set to create Swig bindings inside MonoDevelop.

Short user guide:

Once the Doctor Swig binding has been installed, you should be all set to create a MonoDevelop Swig binding project.

When creating a new solution or a new project, a new template category "Swig" will be available, the category contains only one project type "Default swig project".
Successfull package installation notification
Besides a template for Swig Projects, the add-in also provides extensions for handling .i files, using the "new File..." option.
Successfull package installation notification
A Swig project consists of a root file, which includes all other interface definition files using either %include or %import, DoctorSwig offers a context menu, "Mark as root", used to instruct the project binding which binding file to use when performing the build. (Currently there is a known defect with updating the display, based on the selection, the solution view will not automatically update the view when a new root is selected.
Successfull package installation notification
The project options contains three panes for setting parameters for the Swig binding generation step, the C/C++ compile and link step as well as the C# compilation step.
Successfull package installation notification

Successfull package installation notification

Successfull package installation notification