FindSWIGΒΆ

Find the Simplified Wrapper and Interface Generator (SWIG) executable.

This module finds an installed SWIG and determines its version.

New in version 3.18: If a COMPONENTS or OPTIONAL_COMPONENTS argument is given to the find_package() command, it will also determine supported target languages.

New in version 3.19: When a version is requested, it can be specified as a simple value or as a range. For a detailed description of version range usage and capabilities, refer to the find_package() command.

The module defines the following variables:

SWIG_FOUND

Whether SWIG and any required components were found on the system.

SWIG_EXECUTABLE

Path to the SWIG executable.

SWIG_DIR

Path to the installed SWIG Lib directory (result of swig -swiglib).

SWIG_VERSION

SWIG executable version (result of swig -version).

SWIG_<lang>_FOUND

If COMPONENTS or OPTIONAL_COMPONENTS are requested, each available target language <lang> (lowercase) will be set to TRUE.

Any COMPONENTS given to find_package should be the names of supported target languages as provided to the LANGUAGE argument of swig_add_library, such as python or perl5. Language names must be lowercase.

All information is collected from the SWIG_EXECUTABLE, so the version to be found can be changed from the command line by means of setting SWIG_EXECUTABLE.

Example usage requiring SWIG 4.0 or higher and Python language support, with optional Fortran support:

find_package(SWIG 4.0 COMPONENTS python OPTIONAL_COMPONENTS fortran)
if(SWIG_FOUND)
  message("SWIG found: ${SWIG_EXECUTABLE}")
  if(NOT SWIG_fortran_FOUND)
    message(WARNING "SWIG Fortran bindings cannot be generated")
  endif()
endif()