1
0
mirror of https://github.com/Kitware/CMake.git synced 2025-10-17 07:11:52 +08:00

UseSWIG: use swig dependencies for Xcode generator

This commit is contained in:
Marc Chevrier
2021-04-23 17:09:12 +02:00
parent 15a148dec6
commit e3e005dbd8
3 changed files with 24 additions and 8 deletions

View File

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

View File

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

View File

@@ -66,7 +66,8 @@ add_test(NAME UseSWIG.BasicPerl COMMAND
--build-options ${build_options} --build-options ${build_options}
--test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION> --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 add_test(NAME UseSWIG.Depfile.BasicPython COMMAND
${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION> ${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
--build-and-test --build-and-test