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 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
|
cmake_minimum_required(VERSION 3.8)
project(ComplexPluginArchitecture)
find_package(ParaView REQUIRED)
option(BUILD_SHARED_LIBS "Build shared libraries" ON)
include(GNUInstallDirs)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_BINDIR}")
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}")
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}")
# Adding both plugins
set("_paraview_plugin_default_ComplexModuleArchitecture" ON)
set("_paraview_plugin_default_ComplexGUIMyToolBar" ON)
paraview_plugin_scan(
PLUGIN_FILES
"${CMAKE_CURRENT_SOURCE_DIR}/ComplexModuleArchitecture/paraview.plugin"
"${CMAKE_CURRENT_SOURCE_DIR}/ComplexGUIMyToolBar/paraview.plugin"
PROVIDES_PLUGINS plugins
REQUIRES_MODULES required_modules)
# Adding a vtk module that will be used by both plugins
vtk_module_scan(
MODULE_FILES "${CMAKE_CURRENT_SOURCE_DIR}/Shared/vtk.module"
REQUEST_MODULES ComplexPluginArchitecture::Shared
PROVIDES_MODULES my_modules)
vtk_module_build(
MODULES ${my_modules}
INSTALL_EXPORT ComplexPluginArchitecture)
foreach (module IN LISTS required_modules)
if (NOT TARGET "${module}")
message(#FATAL_ERROR
"Skipping example ${PROJECT_NAME}: Missing required module: "
"${module}")
return ()
endif ()
endforeach ()
paraview_plugin_build(
RUNTIME_DESTINATION "${CMAKE_INSTALL_BINDIR}"
LIBRARY_DESTINATION "${CMAKE_INSTALL_LIBDIR}"
LIBRARY_SUBDIRECTORY "${PARAVIEW_PLUGIN_SUBDIR}"
PLUGINS ${plugins})
|