Просмотр исходного кода

UseSWIG: use swig dependencies for Xcode generator

Marc Chevrier 4 лет назад
Родитель
Сommit
e3e005dbd8
3 измененных файлов с 24 добавлено и 8 удалено
  1. 6 0
      Help/release/dev/UseSWIG-dependencies.rst
  2. 16 7
      Modules/UseSWIG.cmake
  3. 2 1
      Tests/UseSWIG/CMakeLists.txt

+ 6 - 0
Help/release/dev/UseSWIG-dependencies.rst

@@ -0,0 +1,6 @@
+UseSWIG-dependencies
+--------------------
+
+* :module:`UseSWIG` module gained the capability, for
+  :generator:`Xcode` generator, to use `swig` tool to generate implicit
+  dependencies.

+ 16 - 7
Modules/UseSWIG.cmake

@@ -191,8 +191,12 @@ ensure generated files will receive the required settings.
 
   If set to ``TRUE``, implicit dependencies are generated by the ``swig`` tool
   itself. This property is only meaningful for
-  :ref:`Makefile <Makefile Generators>` and
-  :ref:`Ninja <Ninja Generators>` generators. Default value is ``FALSE``.
+  :ref:`Makefile <Makefile Generators>`,
+  :ref:`Ninja <Ninja Generators>` and :generator:`Xcode` generators. Default
+  value is ``FALSE``.
+
+  .. versionadded:: 3.21
+    Added the support of :generator:`Xcode` generator.
 
 ``SWIG_MODULE_NAME``
   Specify the actual import name of the module in the target language.
@@ -336,12 +340,17 @@ as well as ``SWIG``:
   .. versionadded:: 3.20
 
   If set to ``TRUE``, implicit dependencies are generated by the ``swig`` tool
-  itself. This property is only meaningful for
-  :ref:`Makefile <Makefile Generators>` and
-  :ref:`Ninja <Ninja Generators>` generators. Default value is ``FALSE``.
+  itself. This variable is only meaningful for
+  :ref:`Makefile <Makefile Generators>`,
+  :ref:`Ninja <Ninja Generators>` and :generator:`Xcode` generators. Default
+  value is ``FALSE``.
 
   Source file property ``USE_SWIG_DEPENDENCIES``, if not defined, will be
   initialized with the value of this variable.
+
+  .. versionadded:: 3.21
+    Added the support of :generator:`Xcode` generator.
+
 #]=======================================================================]
 
 cmake_policy(PUSH)
@@ -506,7 +515,7 @@ function(SWIG_ADD_SOURCE_TO_MODULE name outfiles infile)
   endif()
 
   set (use_swig_dependencies ${SWIG_USE_SWIG_DEPENDENCIES})
-  if (CMAKE_GENERATOR MATCHES "Make|Ninja")
+  if (CMAKE_GENERATOR MATCHES "Make|Ninja|Xcode")
     get_property(use_swig_dependencies_set SOURCE "${infile}" PROPERTY USE_SWIG_DEPENDENCIES SET)
     if (use_swig_dependencies_set)
       get_property(use_swig_dependencies SOURCE "${infile}" PROPERTY USE_SWIG_DEPENDENCIES)
@@ -831,7 +840,7 @@ function(SWIG_ADD_LIBRARY name)
     set(SWIG_SOURCE_FILE_EXTENSIONS ".i")
   endif()
 
-  if (CMAKE_GENERATOR MATCHES "Make|Ninja")
+  if (CMAKE_GENERATOR MATCHES "Make|Ninja|Xcode")
     # For Makefiles and Ninja generators, use SWIG generated dependencies
     if (NOT DEFINED SWIG_USE_SWIG_DEPENDENCIES)
         set (SWIG_USE_SWIG_DEPENDENCIES OFF)

+ 2 - 1
Tests/UseSWIG/CMakeLists.txt

@@ -66,7 +66,8 @@ add_test(NAME UseSWIG.BasicPerl COMMAND
   --build-options ${build_options}
   --test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
   )
-if(SWIG_FOUND AND NOT SWIG_VERSION VERSION_LESS "4.0.2")
+if(SWIG_FOUND AND NOT SWIG_VERSION VERSION_LESS "4.0.2"
+    AND CMAKE_GENERATOR MATCHES "Make|Ninja|Xcode")
   add_test(NAME UseSWIG.Depfile.BasicPython COMMAND
     ${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
     --build-and-test