|
|
@@ -142,6 +142,11 @@ ensure generated files will receive the required settings.
|
|
|
|
|
|
set_property(SOURCE mymod.i PROPERTY SWIG_MODULE_NAME mymod_realname)
|
|
|
|
|
|
+ .. note::
|
|
|
+
|
|
|
+ If policy :policy:`CMP0086` is set to ``NEW``, ``-module <module_name>``
|
|
|
+ is passed to ``SWIG`` compiler.
|
|
|
+
|
|
|
Target library properties can be set to apply same configuration to all SWIG
|
|
|
input files.
|
|
|
|
|
|
@@ -220,12 +225,19 @@ as well as ``SWIG``:
|
|
|
#]=======================================================================]
|
|
|
|
|
|
cmake_policy(GET CMP0078 target_name_policy)
|
|
|
+cmake_policy(GET CMP0086 module_name_policy)
|
|
|
+
|
|
|
cmake_policy (VERSION 3.12)
|
|
|
if (target_name_policy)
|
|
|
# respect user choice regarding CMP0078 policy
|
|
|
cmake_policy(SET CMP0078 ${target_name_policy})
|
|
|
endif()
|
|
|
+if (module_name_policy)
|
|
|
+ # respect user choice regarding CMP0086 policy
|
|
|
+ cmake_policy(SET CMP0086 ${module_name_policy})
|
|
|
+endif()
|
|
|
unset(target_name_policy)
|
|
|
+unset(module_name_policy)
|
|
|
|
|
|
set(SWIG_CXX_EXTENSION "cxx")
|
|
|
set(SWIG_EXTRA_LIBRARIES "")
|
|
|
@@ -426,6 +438,19 @@ function(SWIG_ADD_SOURCE_TO_MODULE name outfiles infile)
|
|
|
list (APPEND swig_special_flags "-c++")
|
|
|
endif()
|
|
|
|
|
|
+ cmake_policy(GET CMP0086 module_name_policy)
|
|
|
+ if (module_name_policy STREQUAL "NEW")
|
|
|
+ get_source_file_property(module_name "${infile}" SWIG_MODULE_NAME)
|
|
|
+ if (module_name)
|
|
|
+ list (APPEND swig_special_flags "-module" "${module_name}")
|
|
|
+ endif()
|
|
|
+ else()
|
|
|
+ if (NOT module_name_policy)
|
|
|
+ cmake_policy(GET_WARNING CMP0086 _cmp0086_warning)
|
|
|
+ message(AUTHOR_WARNING "${_cmp0086_warning}\n")
|
|
|
+ endif()
|
|
|
+ endif()
|
|
|
+
|
|
|
set (swig_extra_flags)
|
|
|
if(SWIG_MODULE_${name}_LANGUAGE STREQUAL "CSHARP")
|
|
|
if(NOT ("-dllimport" IN_LIST swig_source_file_flags OR "-dllimport" IN_LIST SWIG_MODULE_${name}_EXTRA_FLAGS))
|