Fail for SWIG 3.0.8 (#2656)
authormakaimann <makaim@stanford.edu>
Mon, 22 Oct 2018 23:24:05 +0000 (16:24 -0700)
committerAndres Noetzli <andres.noetzli@gmail.com>
Mon, 22 Oct 2018 23:24:05 +0000 (16:24 -0700)
Ran into this bug when compiling with python3 bindings: https://github.com/swig/swig/issues/588

Instantiating any object crashes python. Since swig3.0.8 is currently the apt-get install for Ubuntu 16.04, I thought it'd be good to have a check for that. If python3 is preferred and the swig version is 3.0.8, it errors out and asks users to downgrade or upgrade SWIG.

src/bindings/CMakeLists.txt

index 1c62ecd58d6a1f88f3e54e7be08adc73349f0b43..135331e54073662364485f54a4924cd733bf9575 100644 (file)
@@ -3,6 +3,13 @@ if(NOT ENABLE_SHARED)
 endif()
 
 find_package(SWIG 3.0.0 REQUIRED)
+
+if(USE_PYTHON3 AND (SWIG_VERSION VERSION_EQUAL 3.0.8))
+  message(FATAL_ERROR
+    "\nSWIG ${SWIG_VERSION} is not supported for python3 bindings because of the following bug: https://github.com/swig/swig/issues/588
+Please downgrade to 3.0.0-3.0.7 or upgrade.")
+endif()
+
 include(${SWIG_USE_FILE})
 
 set(CVC4_SWIG_INTERFACE ${PROJECT_SOURCE_DIR}/src/cvc4.i)