summaryrefslogtreecommitdiff
path: root/Examples/perl5/import/README
blob: 030a33bc540b03690f53d0c97fe72a58a5d0bd80 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
This example tests the %import directive and working with multiple modules.

Use 'perl runme.pl' to run a test.

Overview:
---------

The example defines 4 different extension modules--each wrapping
a separate C++ class.

     base.i     -  Base class
     foo.i      -  Foo class derived from Base
     bar.i      -  Bar class derived from Base
     spam.i     -  Spam class derived from Bar

Each module uses %import to refer to another module.  For
example, the 'foo.i' module uses '%import base.i' to get
definitions for its base class.

If everything is okay, all of the modules will load properly and
type checking will work correctly. Caveat: Some compilers, for example
gcc-3.2.x, generate broken vtables with the inline methods in this test.
This is not a SWIG problem and can usually be solved with non-inlined
destructors compiled into separate shared objects/DLLs.

Unix:
-----
- Run make
- Run the test as described above

Windows:
--------
- Use the Visual C++ 6 workspace file (example.dsw). Build the runtime
  project DLL first followed by the other 4 DLLs as they all have a
  dependency on the runtime DLL. The Batch build option in the Build menu
  is usually the easiest way to do this. Only use the Release builds not
  the Debug builds.
- Run the test as described above