Fix regression option (#4680)
[cvc5.git] / src / bindings / python / CMakeLists.txt
1 # Make sure that interpreter and libraries have a compatible version.
2 # Note: We use the Python interpreter to determine the install path for Python
3 # modules. If the interpreter and library have different versions, the module
4 # will be installed for the wrong Python version. Hence, we require the library
5 # version to match the Python interpreter's version.
6 find_package(PythonLibs
7 ${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR} REQUIRED)
8 include_directories(${PYTHON_INCLUDE_DIRS})
9
10 set(SWIG_MODULE_CVC4_EXTRA_DEPS cvc4 cvc4parser)
11 set_property(SOURCE ${CVC4_SWIG_INTERFACE} PROPERTY CPLUSPLUS ON)
12
13 # Suppress -Wsuggest-override warnings for generated code
14 set_property(
15 SOURCE ${CMAKE_CURRENT_BINARY_DIR}/cvc4PYTHON_wrap.cxx
16 PROPERTY COMPILE_OPTIONS -Wno-suggest-override)
17
18 # The generated module should have the name _CVC4.so, hence we use CVC4 as
19 # target name.
20 if(${CMAKE_VERSION} VERSION_LESS "3.8.0")
21 swig_add_module(CVC4 Python ${CVC4_SWIG_INTERFACE})
22 else()
23 swig_add_library(CVC4 LANGUAGE Python SOURCES ${CVC4_SWIG_INTERFACE})
24 endif()
25 swig_link_libraries(CVC4 cvc4 cvc4parser ${PYTHON_LIBRARIES})
26
27
28 # Install Python bindings to the corresponding python-*/site-packages
29 # directory. Lookup Python module directory and store path in
30 # PYTHON_MODULE_PATH.
31 execute_process(COMMAND
32 ${PYTHON_EXECUTABLE} -c
33 "from distutils.sysconfig import get_python_lib;\
34 print(get_python_lib(plat_specific=True,\
35 prefix='${CMAKE_INSTALL_PREFIX}'))"
36 OUTPUT_VARIABLE PYTHON_MODULE_PATH
37 OUTPUT_STRIP_TRAILING_WHITESPACE)
38
39 # Copy _CVC4.so and CVC4.py to PYTHON_MODULE_PATH
40 install(TARGETS ${SWIG_MODULE_CVC4_REAL_NAME}
41 DESTINATION ${PYTHON_MODULE_PATH})
42 install(FILES ${CMAKE_CURRENT_BINARY_DIR}/CVC4.py
43 DESTINATION ${PYTHON_MODULE_PATH})