Warning, /sdk/codevis/lvtplg/CMakeLists.txt is written in an unsupported language. File is not indexed.
0001 find_package(Python COMPONENTS Interpreter Development REQUIRED) 0002 0003 AddTargetLibrary( 0004 LIBRARY_NAME 0005 lvtplg 0006 SOURCES 0007 ct_lvtplg_pluginmanager.cpp 0008 ct_lvtplg_sharedlibrarydispatcher.cpp 0009 ct_lvtplg_pythonmodule.cpp 0010 ct_lvtplg_pythonlibrarydispatcher.cpp 0011 QT_HEADERS 0012 ct_lvtplg_abstractlibrarydispatcher.h 0013 ct_lvtplg_pluginmanager.h 0014 ct_lvtplg_sharedlibrarydispatcher.h 0015 ct_lvtplg_pythonlibrarydispatcher.h 0016 LIBRARIES 0017 ${SYSTEM_EXTRA_LIBRARIES} 0018 Codethink::lvtshr 0019 KF${KF_MAJOR_VERSION}::NewStuffCore 0020 Qt${QT_MAJOR_VERSION}::Core 0021 Python::Python 0022 ) 0023 target_compile_definitions(lvtplg PRIVATE AS_EMBEDDED=1) 0024 0025 target_include_directories(lvtplg 0026 PUBLIC 0027 $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>/../thirdparty/ 0028 $<BUILD_INTERFACE:${CMAKE_BINARY_DIR}>/plugin-headers/ 0029 ) 0030 0031 add_library(pyLksPlugin 0032 MODULE 0033 ct_lvtplg_pythonmodule.cpp 0034 ) 0035 target_compile_definitions(pyLksPlugin PRIVATE AS_MODULE=1) 0036 target_include_directories(pyLksPlugin 0037 PUBLIC 0038 $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>/../thirdparty/ 0039 $<BUILD_INTERFACE:${CMAKE_BINARY_DIR}>/plugin-headers/ 0040 ) 0041 target_link_libraries(pyLksPlugin 0042 PRIVATE 0043 Python::Python 0044 ) 0045 0046 if (WIN32) 0047 set(PYMODULE_EXT ".pyd") 0048 else() 0049 set(PYMODULE_EXT ".so") 0050 endif() 0051 set_target_properties(pyLksPlugin 0052 PROPERTIES 0053 PREFIX "" 0054 SUFFIX ${PYMODULE_EXT} 0055 ) 0056 0057 find_program(CLANG_FORMAT NAMES 0058 clang-format 0059 clang-format-10 0060 clang-format-11 0061 clang-format-12 0062 clang-format-13 0063 clang-format-14 0064 clang-format-15 0065 clang-format-16 0066 clang-format-17) 0067 0068 set(PLUGIN_HEADERS_DIR ${CMAKE_BINARY_DIR}/plugin-headers) 0069 add_custom_command( 0070 OUTPUT 0071 "${PLUGIN_HEADERS_DIR}/ct_lvtplg_basicpluginhooks.h" 0072 "${PLUGIN_HEADERS_DIR}/ct_lvtplg_basicpluginhandlers.h" 0073 "${PLUGIN_HEADERS_DIR}/ct_lvtplg_plugindatatypes.h" 0074 COMMAND ${CMAKE_COMMAND} -E make_directory ${PLUGIN_HEADERS_DIR}/ 0075 COMMAND ${Python_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/generate_plugin_hooks.py ${PLUGIN_HEADERS_DIR}/ 0076 COMMAND ${CLANG_FORMAT} -i ${PLUGIN_HEADERS_DIR}/ct_lvtplg_basicpluginhooks.h 0077 COMMAND ${Python_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/generate_plugin_handlers.py ${PLUGIN_HEADERS_DIR}/ 0078 COMMAND ${CLANG_FORMAT} -i ${PLUGIN_HEADERS_DIR}/ct_lvtplg_basicpluginhandlers.h 0079 COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/ct_lvtplg_plugindatatypes.h ${PLUGIN_HEADERS_DIR}/ 0080 DEPENDS 0081 "${CMAKE_CURRENT_SOURCE_DIR}/generate_plugin_hooks.py" 0082 "${CMAKE_CURRENT_SOURCE_DIR}/generate_plugin_handlers.py" 0083 "${CMAKE_CURRENT_SOURCE_DIR}/ct_lvtplg_plugindatatypes.h" 0084 "${CMAKE_CURRENT_SOURCE_DIR}/hooks.py" 0085 "${CMAKE_CURRENT_SOURCE_DIR}/handlers.py" 0086 COMMENT "[lvtplg] Populating plugin-headers folder..." 0087 VERBATIM 0088 ) 0089 add_custom_target( 0090 generate_lvtclp_plugin_headers ALL 0091 DEPENDS 0092 "${PLUGIN_HEADERS_DIR}/ct_lvtplg_basicpluginhooks.h" 0093 "${PLUGIN_HEADERS_DIR}/ct_lvtplg_basicpluginhandlers.h" 0094 "${PLUGIN_HEADERS_DIR}/ct_lvtplg_plugindatatypes.h" 0095 ) 0096 0097 add_custom_command( 0098 OUTPUT 0099 "${CMAKE_CURRENT_BINARY_DIR}/ct_lvtplg_hookbindings.inc.cpp" 0100 "${CMAKE_CURRENT_BINARY_DIR}/ct_lvtplg_handlerbindings.inc.cpp" 0101 COMMAND ${Python_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/generate_python_hook_bindings.py ${CMAKE_BINARY_DIR}/lvtplg/ 0102 COMMAND ${Python_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/generate_python_handler_bindings.py ${CMAKE_BINARY_DIR}/lvtplg/ 0103 DEPENDS 0104 "${CMAKE_CURRENT_SOURCE_DIR}/generate_python_hook_bindings.py" 0105 "${CMAKE_CURRENT_SOURCE_DIR}/generate_python_handler_bindings.py" 0106 "${CMAKE_CURRENT_SOURCE_DIR}/hooks.py" 0107 "${CMAKE_CURRENT_SOURCE_DIR}/handlers.py" 0108 COMMENT "[lvtplg] Generating python bindings..." 0109 VERBATIM 0110 ) 0111 add_custom_target( 0112 generate_lvtclp_py_bindings ALL 0113 DEPENDS 0114 "${CMAKE_CURRENT_BINARY_DIR}/ct_lvtplg_hookbindings.inc.cpp" 0115 "${CMAKE_CURRENT_BINARY_DIR}/ct_lvtplg_handlerbindings.inc.cpp" 0116 ) 0117 add_library(CodevisPluginHeaders INTERFACE) 0118 target_include_directories(CodevisPluginHeaders 0119 INTERFACE 0120 $<BUILD_INTERFACE:${CMAKE_BINARY_DIR}>/plugin-headers/ 0121 ) 0122 0123 add_dependencies(lvtplg generate_lvtclp_py_bindings generate_lvtclp_plugin_headers) 0124 add_dependencies(pyLksPlugin generate_lvtclp_py_bindings generate_lvtclp_plugin_headers) 0125 add_dependencies(CodevisPluginHeaders generate_lvtclp_plugin_headers) 0126 0127 if (COMPILE_TESTS) 0128 add_subdirectory(testplugins) 0129 0130 function(add_lvtplg_test TESTNAME) 0131 add_executable(test_${TESTNAME} ${TESTNAME}.t.cpp) 0132 target_link_libraries(test_${TESTNAME} lvtplg lvttst lvttst_tmpdir) 0133 add_test(NAME test_${TESTNAME} COMMAND test_${TESTNAME}) 0134 add_dependencies(test_${TESTNAME} basicplugin basicpythonplugin) 0135 endfunction() 0136 0137 add_lvtplg_test(ct_lvtplg_pythonlibrarydispatcher) 0138 add_lvtplg_test(ct_lvtplg_pluginmanager) 0139 endif()