summaryrefslogtreecommitdiffstats
path: root/cmake/modules/buildtools/FindSWIG.cmake
blob: fba544baa2979b259f0916dd9eb3875329095c34 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#.rst:
# FindSWIG
# --------
# Finds the SWIG executable
#
# This will define the following variables::
#
# SWIG_FOUND - system has SWIG
# SWIG_EXECUTABLE - the SWIG executable

find_program(SWIG_EXECUTABLE NAMES swig4.0 swig3.0 swig2.0 swig
                             PATH_SUFFIXES swig)
if(SWIG_EXECUTABLE)
  execute_process(COMMAND ${SWIG_EXECUTABLE} -swiglib
    OUTPUT_VARIABLE SWIG_DIR
    ERROR_VARIABLE SWIG_swiglib_error
    RESULT_VARIABLE SWIG_swiglib_result)
  execute_process(COMMAND ${SWIG_EXECUTABLE} -version
    OUTPUT_VARIABLE SWIG_version_output
    ERROR_VARIABLE SWIG_version_output
    RESULT_VARIABLE SWIG_version_result)
    string(REGEX REPLACE ".*SWIG Version[^0-9.]*\([0-9.]+\).*" "\\1"
           SWIG_VERSION "${SWIG_version_output}")
endif()

include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(SWIG
                                  REQUIRED_VARS SWIG_EXECUTABLE SWIG_DIR
                                  VERSION_VAR SWIG_VERSION)