SWIG

Section: User Commands (1)
Updated: March 2021
Page Index
 

NAME

swig - Simplified Wrapper and Interface Generator  

SYNOPSIS

swig [ options ] " file"  

DESCRIPTION

The swig command is used to create wrapper code to connect C and C++ code to scripting languages like Perl, Python, Tcl etc. from the definition of the interface. For detailed information on writing those interface definitions please refer to /usr/share/doc/swig-doc/Doc/Manual/index.html from the swig-doc package.

This manpage concentrates on explaining the invocation of the swig command.  

OPTIONS

Supported Target Language Options
-csharp
Generate C# wrappers
-d
Generate D wrappers
-go
Generate Go wrappers
-guile
Generate Guile wrappers
-java
Generate Java wrappers
-javascript
Generate Javascript wrappers
-lua
Generate Lua wrappers
-octave
Generate Octave wrappers
-perl5
Generate Perl 5 wrappers
-php7
Generate PHP 7 wrappers
-python
Generate Python wrappers
-r
Generate R (aka GNU S) wrappers
-ruby
Generate Ruby wrappers
-scilab
Generate Scilab wrappers
-tcl8
Generate Tcl 8 wrappers
-xml
Generate XML wrappers

Experimental Target Language Options

-mzscheme
Generate MzScheme/Racket wrappers
-ocaml
Generate OCaml wrappers

General Options

-addextern
Add extra extern declarations
-c++
Enable C++ processing
-co <file>
Check <file> out of the SWIG library
-copyctor
Automatically generate copy constructors wherever possible
-cpperraswarn
Treat the preprocessor #error statement as #warning (default)
-cppext <ext>
Change file extension of generated C++ files to <ext> (default is cxx)
-copyright
Display copyright notices
-debug-classes
Display information about the classes found in the interface
-debug-module <n> Display module parse tree at stages 1-4, <n> is a csv list of stages
-debug-symtabs
Display symbol tables information
-debug-symbols
Display target language symbols in the symbol tables
-debug-csymbols
Display C symbols in the symbol tables
-debug-lsymbols
Display target language layer symbols
-debug-tags
Display information about the tags found in the interface
-debug-template
Display information for debugging templates
-debug-top <n>
Display entire parse tree at stages 1-4, <n> is a csv list of stages
-debug-typedef
Display information about the types and typedefs in the interface
-debug-typemap
Display typemap debugging information
-debug-tmsearch
Display typemap search debugging information
-debug-tmused
Display typemaps used debugging information
-directors
Turn on director mode for all the classes, mainly for testing
-dirprot
Turn on wrapping of protected members for director classes (default)
-D<symbol>
Define a symbol <symbol> (for conditional compilation)
-E
Preprocess only, does not generate wrapper code
-external-runtime [file]
Export the SWIG runtime stack
-fakeversion <v> Make SWIG fake the program version number to <v>
-fcompact
Compile in compact mode
-features <list> Set global features, where <list> is a comma separated list of
features, eg -features directors,autodoc=1 If no explicit value is given to the feature, a default of 1 is used
-fastdispatch
Enable fast dispatch mode to produce faster overload dispatcher code
-Fmicrosoft
Display error/warning messages in Microsoft format
-Fstandard
Display error/warning messages in commonly used format
-fvirtual
Compile in virtual elimination mode
-help
Display help
-I - Don't search the current directory
-I<dir>
Look for SWIG files in directory <dir>
-ignoremissing
Ignore missing include files
-importall
Follow all #include statements as imports
-includeall
Follow all #include statements
-l<ifile>
Include SWIG library file <ifile>
-macroerrors
Report errors inside macros
-makedefault
Create default constructors/destructors (the default)
-M
List all dependencies
-MD
Is equivalent to `-M -MF <file>', except `-E' is not implied
-MF <file>
Generate dependencies into <file> and continue generating wrappers
-MM
List dependencies, but omit files in SWIG library
-MMD
Like `-MD', but omit files in SWIG library
-module <name>
Set module name to <name>
-MP
Generate phony targets for all dependencies
-MT <target>
Set the target of the rule emitted by dependency generation
-nocontract
Turn off contract checking
-nocpperraswarn
Do not treat the preprocessor #error statement as #warning
-nodefault
Do not generate default constructors nor default destructors
-nodefaultctor
Do not generate implicit default constructors
-nodefaultdtor
Do not generate implicit default destructors
-nodirprot
Do not wrap director protected members
-noexcept
Do not wrap exception specifiers
-nofastdispatch
Disable fast dispatch mode (default)
-nopreprocess
Skip the preprocessor step
-notemplatereduce
Disable reduction of the typedefs in templates
-O
Enable the optimization options: -fastdispatch -fvirtual
-o <outfile>
Set name of C/C++ output file to <outfile>
-oh <headfile>
Set name of C++ output header file for directors to <headfile>
-outcurrentdir
Set default output dir to current dir instead of input file's path
-outdir <dir>
Set language specific files output directory to <dir>
-pcreversion
Display PCRE version information
-small
Compile in virtual elimination and compact mode
-swiglib
Report location of SWIG library and exit
-templatereduce
Reduce all the typedefs in templates
-v
Run in verbose mode
-version
Display SWIG version number
-Wall
Remove all warning suppression, also implies -Wextra
-Wallkw
Enable keyword warnings for all the supported languages
-Werror
Treat warnings as errors
-Wextra
Adds the following additional warnings: 202,309,403,405,512,321,322
-w<list>
Suppress/add warning messages, eg -w401,+321 - see Warnings.html
-xmlout <file>
Write XML version of the parse tree to <file> after normal processing

Options can also be defined using the SWIG_FEATURES environment variable, for example:

$ SWIG_FEATURES="-Wall"
$ export SWIG_FEATURES
$ swig -python interface.i

is equivalent to:

$ swig -Wall -python interface.i

Arguments may also be passed in a file, separated by whitespace. For example:

$ echo "-Wall -python interface.i" > args.txt
$ swig @args.txt

Note: 'swig -<lang> -help' displays options for a specific target language.  

AUTHOR

SWIG was originally created by David Beazley. For up-to-date information about authors and contributors please check http://www.swig.org/guilty.html. This manual page was written by Torsten Landschoff <torsten@debian.org> and updated by Jitka Plesnikova <jplesnik@redhat.com> (but may be used by others).


 

Index

NAME
SYNOPSIS
DESCRIPTION
OPTIONS
AUTHOR