cmake_minimum_required (VERSION 3.18...3.19) find_package (SWIG) if (NOT SWIG_FOUND) message (FATAL_ERROR "Failed to find SWIG") endif() # clean-up SWIG variables unset (SWIG_EXECUTABLE CACHE) unset (SWIG_DIR CACHE) ## Specify a range including current SWIG version string (REGEX MATCH "^([0-9]+)" upper_version "${SWIG_VERSION}") math (EXPR upper_version "${upper_version} + 1") find_package (SWIG 1.0...${upper_version}.0) if (NOT SWIG_FOUND) message (FATAL_ERROR "Failed to find SWIG with version range 1.0...${upper_version}.0") endif() # clean-up SWIG variables unset (SWIG_EXECUTABLE CACHE) unset (SWIG_DIR CACHE) ## Specify a range excluding current SWIG version set (range 1.0...<${SWIG_VERSION}) find_package (SWIG ${range}) if (SWIG_FOUND) message (FATAL_ERROR "Unexpectedly find SWIG with version range ${range}") endif()