+SET(LIBRARY_NAME cpPlugins)
+
+## ===============
+## = Source code =
+## ===============
+
+FILE(GLOB Interface_LIB_HEADERS_H "Interface/*.h")
+FILE(GLOB Interface_LIB_HEADERS_HPP "Interface/*.hpp")
+FILE(GLOB Interface_LIB_HEADERS_HXX "Interface/*.hxx")
+FILE(GLOB Interface_LIB_SOURCES_C "Interface/*.c")
+FILE(GLOB Interface_LIB_SOURCES_CPP "Interface/*.cpp")
+FILE(GLOB Interface_LIB_SOURCES_CXX "Interface/*.cxx")
+
+SET(
+ LIB_HEADERS_H
+ Plugins/ImageReader.h
+ Plugins/ImageWriter.h
+ Plugins/MeshReader.h
+ Plugins/MeshWriter.h
+ Plugins/MarchingCubes.h
+ Plugins/OtsuThresholdImageFilter.h
+ )
+SET(
+ LIB_SOURCES_CXX
+ Plugins/Host.cxx
+ Plugins/ImageReader.cxx
+ Plugins/ImageWriter.cxx
+ Plugins/MeshReader.cxx
+ Plugins/MeshWriter.cxx
+ Plugins/MarchingCubes.cxx
+ Plugins/OtsuThresholdImageFilter.cxx
+ )
+
+## =====================
+## = Compilation rules =
+## =====================
+
+ADD_LIBRARY(
+ ${LIBRARY_NAME}
+ SHARED
+ ${Interface_LIB_SOURCES_C}
+ ${Interface_LIB_SOURCES_CPP}
+ ${Interface_LIB_SOURCES_CXX}
+ ${LIB_SOURCES_C}
+ ${LIB_SOURCES_CPP}
+ ${LIB_SOURCES_CXX}
+ )
+GENERATE_EXPORT_HEADER(
+ ${LIBRARY_NAME}
+ BASE_NAME ${LIBRARY_NAME}
+ EXPORT_MACRO_NAME ${LIBRARY_NAME}_EXPORT
+ EXPORT_FILE_NAME ${PROJECT_BINARY_DIR}/lib/cpPlugins/${LIBRARY_NAME}_Export.h
+ STATIC_DEFINE ${LIBRARY_NAME}_BUILT_AS_STATIC
+ )
+TARGET_LINK_LIBRARIES(
+ ${LIBRARY_NAME}
+ ${ITK_LIBRARIES}
+ ${VTK_LIBRARIES}
+ cpPlugins_Pluma
+ )
+
+## ========================
+## -- Installation rules --
+## ========================
+
+INSTALL(
+ TARGETS ${LIBRARY_NAME}
+ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib/static
+ )
+
+SET(
+ local_install_dirs