CMakeLists.txt
80 lines
| 3.0 KiB
| text/plain
|
TextLexer
r1477 | find_package(PythonLibs 3 REQUIRED) | |||
find_package(PythonInterp 3 REQUIRED) | ||||
find_package(PySide2 REQUIRED) | ||||
find_package(Shiboken2 REQUIRED) | ||||
include(PythonInfo) | ||||
find_python_site_packages(PYTHON_SITE_PACKAGES) | ||||
set(BINDINGS_SRC_DIR "${CMAKE_CURRENT_SOURCE_DIR}") | ||||
set(BINDINGS_BUILD_DIR "${CMAKE_CURRENT_BINARY_DIR}") | ||||
configure_file("${BINDINGS_SRC_DIR}/bindings.xml" "${BINDINGS_BUILD_DIR}/bindings.xml" COPYONLY) | ||||
configure_file("${BINDINGS_SRC_DIR}/main.py" "${BINDINGS_BUILD_DIR}/main.py" COPYONLY) | ||||
r1479 | configure_file("${BINDINGS_SRC_DIR}/TestPlugin.py" "${BINDINGS_BUILD_DIR}/plugins/TestPlugin.py" COPYONLY) | |||
r1477 | ||||
execute_process(COMMAND "${PYTHON_EXECUTABLE}" "${BINDINGS_SRC_DIR}/src_list.py" cmake "${BINDINGS_BUILD_DIR}" OUTPUT_VARIABLE BINDINGS_SOURCE) | ||||
set_property(SOURCE ${BINDINGS_SOURCE} PROPERTY SKIP_AUTOGEN ON) | ||||
list(APPEND BINDINGS_INCLUDE_DIRS | ||||
${PYTHON_INCLUDE_DIRS} | ||||
${Qt5Core_INCLUDE_DIRS} | ||||
${Qt5Widgets_INCLUDE_DIRS} | ||||
${Qt5Gui_INCLUDE_DIRS} | ||||
${CMAKE_CURRENT_SOURCE_DIR}/../../gui/include | ||||
${CMAKE_CURRENT_SOURCE_DIR}/../../core/include | ||||
${CMAKE_CURRENT_SOURCE_DIR}/../../core/external/TimeSeries/include | ||||
) | ||||
list(REMOVE_DUPLICATES BINDINGS_INCLUDE_DIRS) | ||||
foreach(DIR ${BINDINGS_INCLUDE_DIRS}) | ||||
list(APPEND BINDINGS_INCLUDE_DIRS_ARGS "-I${DIR}") | ||||
endforeach() | ||||
set(SHIBOKEN_OPTIONS --generator-set=shiboken | ||||
--enable-parent-ctor-heuristic | ||||
--enable-return-value-heuristic | ||||
--use-isnull-as-nb_nonzero | ||||
--avoid-protected-hack | ||||
--enable-pyside-extensions | ||||
-std=c++17) | ||||
add_custom_command( | ||||
OUTPUT ${BINDINGS_SOURCE} | ||||
COMMAND Shiboken2::shiboken2 ${SHIBOKEN_OPTIONS} | ||||
${BINDINGS_INCLUDE_DIRS_ARGS} | ||||
--typesystem-paths=${PYSIDE_TYPESYSTEMS} | ||||
--output-directory=${CMAKE_CURRENT_BINARY_DIR} | ||||
${CMAKE_CURRENT_SOURCE_DIR}/bindings.h ${CMAKE_CURRENT_SOURCE_DIR}/bindings.xml | ||||
DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/bindings.xml" | ||||
IMPLICIT_DEPENDS CXX "${CMAKE_CURRENT_SOURCE_DIR}/bindings.h" | ||||
WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR} | ||||
COMMENT "Generating Python bindings with shiboken2") | ||||
include_directories( | ||||
${PYSIDE_INCLUDE_DIR}/QtCore | ||||
${PYSIDE_INCLUDE_DIR}/QtGui | ||||
${PYSIDE_INCLUDE_DIR}/QtWidgets) | ||||
include_directories( | ||||
${PYTHON_SITE_PACKAGES}/numpy/core/include/ | ||||
${PYTHON_INCLUDE_DIRS} | ||||
${SHIBOKEN_INCLUDE_DIR} | ||||
${PYSIDE_INCLUDE_DIR} | ||||
${PYSIDE_INCLUDE_DIR}/QtCore | ||||
${PYSIDE_INCLUDE_DIR}/QtGui | ||||
${PYSIDE_INCLUDE_DIR}/QtWidgets) | ||||
r1478 | add_library(SciQLopBindings MODULE ${BINDINGS_SOURCE} numpy_wrappers.h PyDataProvider.h) | |||
r1477 | set_target_properties( | |||
SciQLopBindings | ||||
PROPERTIES | ||||
PREFIX "" | ||||
OUTPUT_NAME "SciQLopBindings" | ||||
) | ||||
target_link_libraries(SciQLopBindings sciqlopapp) | ||||
target_link_libraries(SciQLopBindings Shiboken2::libshiboken) | ||||
target_link_libraries(SciQLopBindings PySide2::pyside2) | ||||
add_executable(debug_sciqlop_app main.cpp ) | ||||
find_package (Python3 COMPONENTS Development) | ||||
target_link_libraries(debug_sciqlop_app PRIVATE Python3::Python) | ||||