diff --git a/CMakeLists.txt b/CMakeLists.txt
index bde608eaaffe7c0265ad89d6c33a4997ccff52c8..7ed51dcdaa50cab382733ef20d0a911e1e0e4de4 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -901,6 +901,22 @@ elseif(MSVC)
   set_target_properties(gmsh PROPERTIES LINK_FLAGS "/STACK:16777216")
 endif(WIN32 AND NOT MSVC)
 
+if(ENABLE_SWIG)
+  find_package(SWIG REQUIRED)
+  message(STATUS "Found SWIG version " ${SWIG_VERSION})
+  string(SUBSTRING ${SWIG_VERSION} 0 1 SWIG_MAJOR_VERSION)
+  if(SWIG_MAJOR_VERSION EQUAL 1)
+    message("WARNING: Python bindings require SWIG >= 2: disabling Python")
+  else(SWIG_MAJOR_VERSION EQUAL 1)
+    include(${SWIG_USE_FILE})
+    find_package(PythonLibs)
+    include_directories(${PYTHON_INCLUDE_DIR})
+    set_source_files_properties(Common/gmshpy.i PROPERTIES CPLUSPLUS ON)
+    swig_add_module(gmshpy python Common/gmshpy.i)
+    swig_link_libraries(gmshpy ${PYTHON_LIBRARIES} ${EXTERNAL_LIBRARIES} ${LINK_LIBRARIES} shared)
+  endif(SWIG_MAJOR_VERSION EQUAL 1)
+endif(ENABLE_SWIG)
+
 find_program(BISON bison)
 find_program(FLEX flex)
 if(BISON AND FLEX)
@@ -1131,12 +1147,3 @@ mark_as_advanced(BISON FLEX GMP_LIB GMSH_EXTRA_VERSION HDF5_LIB MAKEINFO
                  MED_LIB OCC_INC SZ_LIB TAUCS_LIB LUA_LIB ACIS_LIB TEXI2PDF
                  READLINE_LIB)
 
-if(ENABLE_SWIG)
-  FIND_PACKAGE(SWIG REQUIRED)
-  INCLUDE(${SWIG_USE_FILE})
-  FIND_PACKAGE(PythonLibs)
-  INCLUDE_DIRECTORIES(${PYTHON_INCLUDE_DIR})
-  SET_SOURCE_FILES_PROPERTIES(Common/gmshpy.i PROPERTIES CPLUSPLUS ON)
-  SWIG_ADD_MODULE(gmshpy python Common/gmshpy.i)
-  SWIG_LINK_LIBRARIES(gmshpy ${PYTHON_LIBRARIES} ${EXTERNAL_LIBRARIES} ${LINK_LIBRARIES} shared)
-endif(ENABLE_SWIG)