aboutsummaryrefslogtreecommitdiff
path: root/bindings/python/CMakeLists.txt
blob: 4d41033979d989c44aa789fb9b4371bf1e94c3cb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
project(libssh-python CXX)

set(SWIG_OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/ssh_python.cpp")

find_package(PythonInterp REQUIRED)
execute_process(
  COMMAND
    ${PYTHON_EXECUTABLE} -c "from sys import stdout; from distutils import sysconfig; stdout.write(sysconfig.get_python_lib())"
  OUTPUT_VARIABLE
  PYTHON_LIB_DIR
)

if (NOT PYTHON_SITEDIR)
  set(PYTHON_SITEDIR ${PYTHON_LIB_DIR})
endif (NOT PYTHON_SITEDIR)

include_directories(${LIBSSH_PUBLIC_INCLUDE_DIRS} ${PYTHON_INCLUDE_PATH})

set_source_files_properties(${SWIG_INPUT} PROPERTIES CPLUSPLUS ON)
# Py_True and Py_False are a bit tricky
set_source_files_properties(${swig_generated_file_fullname} PROPERTIES COMPILE_FLAGS "-fno-strict-aliasing")
swig_add_module(ssh python ${SWIG_INPUT})
swig_link_libraries(ssh ${LIBSSH_SHARED_LIBRARY} ${PYTHON_LIBRARIES})

install(TARGETS ${SWIG_MODULE_ssh_REAL_NAME} LIBRARY DESTINATION ${PYTHON_SITEDIR})
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/ssh.py DESTINATION ${PYTHON_SITEDIR})