Browse Source

UseSWIG: Improve documentation markup

Brad King 7 years ago
parent
commit
315b0927e9
1 changed files with 42 additions and 31 deletions
  1. 42 31
      Modules/UseSWIG.cmake

+ 42 - 31
Modules/UseSWIG.cmake

@@ -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")