blob: 16d615610c56a63678acbf3857b74178b909d21a [file] [log] [blame]
Radek Krejcic61f0b42017-06-07 13:21:41 +02001find_program(PYTHON "python3")
2
Claus Klein22091912020-01-20 13:45:47 +01003if(PYTHON)
Radek Krejcic61f0b42017-06-07 13:21:41 +02004 set(SETUP_PY_IN "${CMAKE_CURRENT_SOURCE_DIR}/setup.py.in")
5 set(SETUP_PY "${CMAKE_CURRENT_BINARY_DIR}/setup.py")
6 set(PYAPI_BUILD_DIR "${CMAKE_CURRENT_BINARY_DIR}/build")
7 set_directory_properties(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES ${PYAPI_BUILD_DIR})
Claus Klein22091912020-01-20 13:45:47 +01008
9 if(CMAKE_BUILD_TYPE STREQUAL Debug)
Radek Krejcic61f0b42017-06-07 13:21:41 +020010 set(DEBUG "--debug")
11 endif()
12
Radek Krejcic2074282017-11-06 15:57:22 +010013 if(ENABLE_SSH)
14 set(SSH_DEFINE ",\"-DNC_ENABLED_SSH\"")
15 endif()
16
17 if(ENABLE_TLS)
18 set(TLS_DEFINE ",\"-DNC_ENABLED_TLS\"")
19 endif()
20
Radek Krejcic61f0b42017-06-07 13:21:41 +020021 configure_file(${SETUP_PY_IN} ${SETUP_PY})
Jan Kundrátc4b33742020-01-10 18:21:51 +010022 configure_file(${CMAKE_CURRENT_SOURCE_DIR}/docs/Makefile.in ${CMAKE_CURRENT_BINARY_DIR}/docs/Makefile)
Claus Klein22091912020-01-20 13:45:47 +010023 add_custom_target(pyapi ALL COMMAND ${PYTHON} ${SETUP_PY} build -b ${PYAPI_BUILD_DIR} ${DEBUG})
24 add_custom_target(pyapidoc COMMAND make -f ${CMAKE_CURRENT_BINARY_DIR}/docs/Makefile html)
Radek Krejciee143622018-03-20 14:35:03 +010025 execute_process(COMMAND ${PYTHON} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(plat_specific=True))"
26 OUTPUT_VARIABLE PYTHON_MODULE_PATH OUTPUT_STRIP_TRAILING_WHITESPACE)
27 install(CODE "execute_process(COMMAND ${PYTHON} ${SETUP_PY} build -b ${PYAPI_BUILD_DIR} install --install-lib=\$ENV{DESTDIR}/${PYTHON_MODULE_PATH})")
Radek Krejcic61f0b42017-06-07 13:21:41 +020028endif()