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})
10 set(SWIG_MODULE_CVC4_EXTRA_DEPS cvc4 cvc4parser)
11 set_property(SOURCE ${CVC4_SWIG_INTERFACE} PROPERTY CPLUSPLUS ON)
13 # Suppress -Wsuggest-override warnings for generated code
15 SOURCE ${CMAKE_CURRENT_BINARY_DIR}/cvc4PYTHON_wrap.cxx
16 PROPERTY COMPILE_OPTIONS -Wno-suggest-override)
18 # The generated module should have the name _CVC4.so, hence we use CVC4 as
20 if(${CMAKE_VERSION} VERSION_LESS "3.8.0")
21 swig_add_module(CVC4 Python ${CVC4_SWIG_INTERFACE})
23 swig_add_library(CVC4 LANGUAGE Python SOURCES ${CVC4_SWIG_INTERFACE})
25 swig_link_libraries(CVC4 cvc4 cvc4parser ${PYTHON_LIBRARIES})
28 # Install Python bindings to the corresponding python-*/site-packages
29 # directory. Lookup Python module directory and store path in
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)
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})