UseSWIG: Improve documentation markup

This commit is contained in:
Brad King 2018-01-31 14:09:19 -05:00
parent ce130c7a6b
commit 315b0927e9

View File

@ -7,52 +7,63 @@ UseSWIG
Defines the following macros for use with SWIG:
::
.. command:: swig_add_library
SWIG_ADD_LIBRARY(<name>
[TYPE <SHARED|MODULE|STATIC|USE_BUILD_SHARED_LIBS>]
LANGUAGE <language>
SOURCES <file>...
)
- Define swig module with given name and specified language
SWIG_LINK_LIBRARIES(name [ libraries ])
- Link libraries to swig module
Define swig module with given name and specified language::
Source files properties on module files can be set before the invocation
of the SWIG_ADD_LIBRARY macro to specify special behavior of SWIG.
swig_add_library(<name>
[TYPE <SHARED|MODULE|STATIC|USE_BUILD_SHARED_LIBS>]
LANGUAGE <language>
SOURCES <file>...
)
The source file property CPLUSPLUS calls SWIG in c++ mode, e.g.::
The variable ``SWIG_MODULE_<name>_REAL_NAME`` will be set to the name
of the swig module target library.
set_property(SOURCE mymod.i PROPERTY CPLUSPLUS ON)
swig_add_library(mymod LANGUAGE python SOURCES mymod.i)
.. command:: swig_link_libraries
The source file property SWIG_FLAGS adds custom flags to the SWIG executable.
Link libraries to swig module::
The source-file property SWIG_MODULE_NAME have to be provided to specify the actual
import name of the module in the target language if it cannot be scanned automatically
from source or different from the module file basename.::
swig_link_libraries(<name> [ libraries ])
set_property(SOURCE mymod.i PROPERTY SWIG_MODULE_NAME mymod_realname)
Source file properties on module files can be set before the invocation
of the ``swig_add_library`` macro to specify special behavior of SWIG:
To get the name of the swig module target library, use: ${SWIG_MODULE_${name}_REAL_NAME}.
``CPLUSPLUS``
Call SWIG in c++ mode. For example:
Also some variables can be set to specify special behavior of SWIG.
.. code-block:: cmake
CMAKE_SWIG_FLAGS can be used to add special flags to all swig calls.
set_property(SOURCE mymod.i PROPERTY CPLUSPLUS ON)
swig_add_library(mymod LANGUAGE python SOURCES mymod.i)
CMAKE_SWIG_OUTDIR allows one to specify where to write
the language specific files (swig -outdir option).
``SWIG_FLAGS``
Add custom flags to the SWIG executable.
SWIG_OUTFILE_DIR allows one to specify where to write the output file
(swig -o option). If not specified, CMAKE_SWIG_OUTDIR is used.
The name-specific variable SWIG_MODULE_<name>_EXTRA_DEPS may be used to specify extra
dependencies for the generated modules.
``SWIG_MODULE_NAME``
Specify the actual import name of the module in the target language.
This is required if it cannot be scanned automatically from source
or different from the module file basename. For example:
If the source file generated by swig need some special flag you can use::
.. code-block:: cmake
set_source_files_properties( ${swig_generated_file_fullname}
PROPERTIES COMPILE_FLAGS "-bla")
set_property(SOURCE mymod.i PROPERTY SWIG_MODULE_NAME mymod_realname)
Some variables can be set to specify special behavior of SWIG:
``CMAKE_SWIG_FLAGS``
Add flags to all swig calls.
``CMAKE_SWIG_OUTDIR``
Specify where to write the language specific files (swig ``-outdir`` option).
``SWIG_OUTFILE_DIR``
Specify where to write the output file (swig ``-o`` option).
If not specified, ``CMAKE_SWIG_OUTDIR`` is used.
``SWIG_MODULE_<name>_EXTRA_DEPS``
Specify extra dependencies for the generated module for ``<name>``.
#]=======================================================================]
set(SWIG_CXX_EXTENSION "cxx")