Blurb about using SWIG in build systems added
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@6222 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
2fc7f17ec7
commit
cc46d1fba1
2 changed files with 35 additions and 7 deletions
|
|
@ -41,6 +41,7 @@
|
||||||
</ul>
|
</ul>
|
||||||
<li><a href="Introduction.html#Introduction_nn10">Supported C/C++ language features</a>
|
<li><a href="Introduction.html#Introduction_nn10">Supported C/C++ language features</a>
|
||||||
<li><a href="Introduction.html#Introduction_nn11">Non-intrusive interface building</a>
|
<li><a href="Introduction.html#Introduction_nn11">Non-intrusive interface building</a>
|
||||||
|
<li><a href="Introduction.html#Introduction_build_system">Incorporating SWIG into a build system</a>
|
||||||
<li><a href="Introduction.html#Introduction_nn12">Hands off code generation</a>
|
<li><a href="Introduction.html#Introduction_nn12">Hands off code generation</a>
|
||||||
<li><a href="Introduction.html#Introduction_nn13">SWIG and freedom</a>
|
<li><a href="Introduction.html#Introduction_nn13">SWIG and freedom</a>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
|
||||||
|
|
@ -20,6 +20,7 @@
|
||||||
</ul>
|
</ul>
|
||||||
<li><a href="#Introduction_nn10">Supported C/C++ language features</a>
|
<li><a href="#Introduction_nn10">Supported C/C++ language features</a>
|
||||||
<li><a href="#Introduction_nn11">Non-intrusive interface building</a>
|
<li><a href="#Introduction_nn11">Non-intrusive interface building</a>
|
||||||
|
<li><a href="#Introduction_build_system">Incorporating SWIG into a build system</a>
|
||||||
<li><a href="#Introduction_nn12">Hands off code generation</a>
|
<li><a href="#Introduction_nn12">Hands off code generation</a>
|
||||||
<li><a href="#Introduction_nn13">SWIG and freedom</a>
|
<li><a href="#Introduction_nn13">SWIG and freedom</a>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
@ -323,26 +324,52 @@ stresses the very limits of many C++ compilers.
|
||||||
|
|
||||||
|
|
||||||
When used as intended, SWIG requires minimal (if any) modification to
|
When used as intended, SWIG requires minimal (if any) modification to
|
||||||
existing C code. This makes SWIG extremely easy to use with existing
|
existing C or C++ code. This makes SWIG extremely easy to use with existing
|
||||||
packages and promotes software reuse and modularity. By making
|
packages and promotes software reuse and modularity. By making
|
||||||
the C code independent of the high level interface, you can change the
|
the C/C++ code independent of the high level interface, you can change the
|
||||||
interface and reuse the code in other applications. It is also
|
interface and reuse the code in other applications. It is also
|
||||||
possible to support different types of interfaces depending on the application.
|
possible to support different types of interfaces depending on the application.
|
||||||
|
|
||||||
<H2><a name="Introduction_nn12"></a>2.6 Hands off code generation</H2>
|
<H2><a name="Introduction_build_system"></a>2.6 Incorporating SWIG into a build system</H2>
|
||||||
|
|
||||||
|
|
||||||
|
<p>
|
||||||
|
SWIG is a command line tool and as such can be incorporated into any build system that supports invoking external tools/compilers.
|
||||||
|
SWIG is most commonly invoked from within a Makefile, but is also known to be invoked from from popular IDEs such as
|
||||||
|
Microsoft Visual Studio.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
There is growing support for SWIG in some build tools, for example <a href="http://www.cmake.org">CMake</a>
|
||||||
|
is a cross-platform, open-source build tool with built in support for SWIG. It can detect the SWIG executable,
|
||||||
|
many of the target language interpreters and libraries for linking against.
|
||||||
|
It can then use this information to generate a makefile/project file for a host of different compilers/IDEs.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
If you are using the GNU Autotools
|
||||||
|
(<a href="http://www.gnu.org/software/autoconf">Autoconf</a>/
|
||||||
|
<a href="http://www.gnu.org/software/automake">Automake</a>/
|
||||||
|
<a href="http://www.gnu.org/software/libtool">Libtool</a>)
|
||||||
|
to configure SWIG use in your project, the SWIG Autoconf macros can be used.
|
||||||
|
The primary macro is <tt>ac_pkg_swig</tt>, see
|
||||||
|
<a href="http://www.gnu.org/software/ac-archive/htmldoc/ac_pkg_swig.html">http://www.gnu.org/software/ac-archive/htmldoc/ac_pkg_swig.html</a>.
|
||||||
|
The <tt>ac_python_devel</tt> Autoconf macro is also helpful for SWIG generated Python interfaces, see the
|
||||||
|
<a href="http://www.gnu.org/software/ac-archive/htmldoc/index.html">Autoconf Macro Archive</a> for further information and other .
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<H2><a name="Introduction_nn12"></a>2.7 Hands off code generation</H2>
|
||||||
|
|
||||||
|
|
||||||
SWIG is designed to produce working code that needs no
|
SWIG is designed to produce working code that needs no
|
||||||
hand-modification (in fact, if you look at the output, you probably
|
hand-modification (in fact, if you look at the output, you probably
|
||||||
won't want to modify it). Ideally, SWIG should be invoked
|
won't want to modify it). You should think of your target language interface being
|
||||||
automatically inside a Makefile just as one would call the C
|
|
||||||
compiler. You should think of your scripting language interface being
|
|
||||||
defined entirely by the input to SWIG, not the resulting output
|
defined entirely by the input to SWIG, not the resulting output
|
||||||
file. While this approach may limit flexibility for hard-core hackers,
|
file. While this approach may limit flexibility for hard-core hackers,
|
||||||
it allows others to forget about the low-level implementation
|
it allows others to forget about the low-level implementation
|
||||||
details.
|
details.
|
||||||
|
|
||||||
<H2><a name="Introduction_nn13"></a>2.7 SWIG and freedom</H2>
|
<H2><a name="Introduction_nn13"></a>2.8 SWIG and freedom</H2>
|
||||||
|
|
||||||
|
|
||||||
No, this isn't a special section on the sorry state of world politics.
|
No, this isn't a special section on the sorry state of world politics.
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue