Ver código fonte

Merge topic 'FindSWIG-foreach-missing'

127436192d FindSWIG: Fix syntax error

Acked-by: Kitware Robot <[email protected]>
Merge-request: !5313
Craig Scott 5 anos atrás
pai
commit
da0dadf644

+ 6 - 1
Modules/FindSWIG.cmake

@@ -56,8 +56,8 @@ optional Fortran support:
 #]=======================================================================]
 
 # compute list of possible names
+unset (_SWIG_NAMES)
 if (SWIG_FIND_VERSION_RANGE)
-  set (_SWIG_NAMES)
   foreach (_SWIG_MAJOR IN ITEMS 4 3 2)
     if (_SWIG_MAJOR VERSION_GREATER_EQUAL SWIG_FIND_VERSION_MIN_MAJOR
         AND ((SWIG_FIND_VERSION_RANGE_MAX STREQUAL "INCLUDE" AND _SWIG_MAJOR VERSION_LESS_EQUAL SWIG_FIND_VERSION_MAX)
@@ -73,10 +73,15 @@ elseif(SWIG_FIND_VERSION)
       if (_SWIG_MAJOR VERSION_GREATER_EQUAL SWIG_FIND_VERSION_MAJOR)
         list (APPEND _SWIG_NAMES swig${_SWIG_MAJOR}.0)
       endif()
+    endforeach()
   endif()
 else()
   set (_SWIG_NAMES swig4.0 swig3.0 swig2.0)
 endif()
+if (NOT _SWIG_NAMES)
+  # try to find any version
+  set (_SWIG_NAMES swig4.0 swig3.0 swig2.0)
+endif()
 
 find_program(SWIG_EXECUTABLE NAMES ${_SWIG_NAMES} swig)
 

+ 2 - 0
Tests/RunCMake/FindSWIG/RunCMakeTest.cmake

@@ -2,4 +2,6 @@ include(RunCMake)
 
 run_cmake(components)
 run_cmake(missing-components)
+run_cmake(version)
+run_cmake(version-exact)
 run_cmake(version-range)

+ 17 - 0
Tests/RunCMake/FindSWIG/version-exact.cmake

@@ -0,0 +1,17 @@
+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)
+
+set (version ${SWIG_VERSION})
+
+find_package (SWIG ${SWIG_VERSION} EXACT)
+if (NOT SWIG_FOUND)
+  message (FATAL_ERROR "Failed to find SWIG with version ${version} EXACT")
+endif()

+ 6 - 0
Tests/RunCMake/FindSWIG/version.cmake

@@ -0,0 +1,6 @@
+cmake_minimum_required (VERSION 3.18...3.19)
+
+find_package (SWIG 1.0)
+if (NOT SWIG_FOUND)
+  message (FATAL_ERROR "Failed to find SWIG with version 1.0")
+endif()