+# Prepare plugins.xml
+
+# the solver to activate after installation
+SET(DEFAULT_SOLVER "PlaneGCS")
+
+# the list of all solvers
+SET(SOLVERS "SolveSpace" "PlaneGCS")
+
+# apply NO_<solver> variables
+FOREACH(solver IN LISTS SOLVERS)
+ IF(NO_${solver})
+ LIST(REMOVE_ITEM SOLVERS ${solver})
+ ENDIF()
+ENDFOREACH()
+
+# check default solver in the list of solvers
+LIST(FIND SOLVERS ${DEFAULT_SOLVER} INDEX)
+IF(${INDEX} GREATER -1)
+ MESSAGE(STATUS "Default solver: ${DEFAULT_SOLVER}")
+ELSE()
+ MESSAGE(FATAL_ERROR "Default solver: ${DEFAULT_SOLVER} is switched off.\nUnset NO_${DEFAULT_SOLVER} variable or define another default solver DEFAULT_SOLVER=<SOLVER> from the list: ${SOLVERS}.")
+ENDIF()
+
+# prepare variables for configuration
+SET(DEFAULT_SOLVER " <plugin library=\"${DEFAULT_SOLVER}Solver\"/>")
+FOREACH(solver IN LISTS SOLVERS)
+ IF(DEFINED ALL_SOLVERS)
+ SET(ALL_SOLVERS "${ALL_SOLVERS}\n")
+ ENDIF()
+ SET(ALL_SOLVERS "${ALL_SOLVERS} <plugin library=\"${solver}Solver\"/>")
+ENDFOREACH()
+
+# configuration
+CONFIGURE_FILE(
+ "${CMAKE_CURRENT_SOURCE_DIR}/plugins.xml.in"
+ "${CMAKE_CURRENT_BINARY_DIR}/plugins.xml"
+ )
+
+INSTALL(TARGETS Config DESTINATION ${SHAPER_INSTALL_BIN})
+INSTALL(FILES ${XML_RESOURCES} DESTINATION ${SHAPER_INSTALL_XML_RESOURCES})
+
+INSTALL(TARGETS _ConfigAPI DESTINATION ${SHAPER_INSTALL_SWIG})
+INSTALL(FILES ${SWIG_SCRIPTS} DESTINATION ${SHAPER_INSTALL_SWIG})