6 ${CMAKE_CURRENT_BINARY_DIR}/incpy/far2lcffi.py
9 if (DEFINED VIRTUAL_PYTHON)
10 message(STATUS "VIRTUAL env interpreter=${VIRTUAL_PYTHON}")
11 message(STATUS "VIRTUAL env interpreter version=${VIRTUAL_PYTHON_VERSION}")
12 # for finding adequate python package
13 set(Python3_EXECUTABLE ${VIRTUAL_PYTHON})
16 find_package(Python3 COMPONENTS Interpreter Development) # find Python interpreter and library
17 message(STATUS "Python3_VERSION = ${Python3_VERSION_MAJOR}.${Python3_VERSION_MINOR}")
18 message(STATUS "Python3_EXECUTABLE = ${Python3_EXECUTABLE}")
19 message(STATUS "Python3_STDLIB = ${Python3_STDLIB}")
20 message(STATUS "Python3_STDARCH = ${Python3_STDARCH}")
21 message(STATUS "Python3_SITELIB = ${Python3_SITELIB}")
22 message(STATUS "Python3_INCLUDE_DIRS = ${Python3_INCLUDE_DIRS}")
23 message(STATUS "Python3_LIBRARY_DIRS = ${Python3_LIBRARY_DIRS}")
24 message(STATUS "Python3_LIBRARIES = ${Python3_LIBRARIES}")
25 message(STATUS "Python3_RUNTIME_LIBRARY_DIRS = ${Python3_RUNTIME_LIBRARY_DIRS}")
27 add_library (python MODULE ${SOURCES})
29 target_link_libraries(python utils far2l ${Python3_LIBRARIES})
31 target_compile_definitions(python PRIVATE
36 -DPYTHON_LIBRARY="${Python3_LIBRARIES}"
37 -DPYTHON_VERSION="${Python3_VERSION_MAJOR}.${Python3_VERSION_MINOR}"
39 if (DEFINED VIRTUAL_PYTHON)
40 target_compile_definitions(python PRIVATE
41 -DVIRTUAL_PYTHON="${VIRTUAL_PYTHON}"
43 set(Python_EXECUTABLE ${VIRTUAL_PYTHON})
45 set(VIRTUAL_PYTHON_VERSION 0)
46 set(Python_EXECUTABLE ${Python3_EXECUTABLE})
50 target_include_directories(python PRIVATE .)
51 target_include_directories(python PRIVATE ../WinPort)
52 target_include_directories(python PRIVATE ../far2l/far2sdk)
53 target_include_directories(python PRIVATE ${Python3_INCLUDE_DIRS} )
55 set_target_properties(python PROPERTIES
56 LIBRARY_OUTPUT_DIRECTORY "${INSTALL_DIR}/Plugins/python/plug"
58 SUFFIX ".far-plug-wide"
61 add_custom_command(TARGET python POST_BUILD
62 DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/configs
63 DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/far2lcffi.py
64 COMMAND ${CMAKE_COMMAND} -E copy_directory "${CMAKE_CURRENT_SOURCE_DIR}/configs" "${INSTALL_DIR}/Plugins/python"
65 COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_CURRENT_BINARY_DIR}/incpy/far2lcffi.py" "${INSTALL_DIR}/Plugins/python/plug/far2l"
67 if (NOT DEFINED VIRTUAL_PYTHON)
68 add_custom_command(TARGET python POST_BUILD
69 DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/configs
70 DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/far2lcffi.py
71 COMMAND ${CMAKE_COMMAND} -E copy_directory "${CMAKE_CURRENT_BINARY_DIR}/python" "${INSTALL_DIR}/Plugins/python/plug/python"
75 add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/incpy/far2lcffi.py
76 DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/src/pythongen.py
77 DEPENDS ../far2l/far2sdk/farplug-wide.h
78 DEPENDS ../far2l/far2sdk/farcolor.h
79 DEPENDS ../far2l/far2sdk/farkeys.h
80 DEPENDS ../WinPort/windows.h
81 DEPENDS ../WinPort/WinCompat.h
82 DEPENDS ../WinPort/WinPort.h
83 COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/src/prebuild.sh "${CMAKE_SOURCE_DIR}" "${CMAKE_CURRENT_BINARY_DIR}" "${VIRTUAL_PYTHON_VERSION}" "${Python_EXECUTABLE}" "${CMAKE_C_COMPILER} ${CMAKE_C_FLAGS}"