QGIS/python/pyplugin_installer/CMakeLists.txt
Alessandro Pasotti 1622d73e25 [feature][needs-docs] Plugin dependencies
Implementation of QEP 132:

Manage python cross-plugins dependencies

A new optional metadata entry will be added to metadata.txt: plugin_dependencies
The metadata will contain a comma separated list of plugin names, with a format similar
of the one used by pip, with optional version.
After a successful plugin installation, if the plugin has any unsatisfied dependency,
a dialog will pop-up with the list of unmet dependencies and the user
will be able to choose if she wants to install or upgrade the
dependencies or ignore them.

Example metadata:

plugin_dependencies = QuickMapServices==0.19.10.1,QuickWKT

Funded by GISCE-TI S.L.
2019-03-15 17:40:42 +01:00

48 lines
1.5 KiB
CMake

SET (QGIS_PLUGININSTALLER_DIR ${QGIS_DATA_DIR}/python/pyplugin_installer)
SET (PYTHON_OUTPUT_DIRECTORY ${QGIS_OUTPUT_DIRECTORY}/python)
SET(PY_PLUGININSTALLER_FILES
__init__.py
installer.py
installer_data.py
qgsplugininstallerinstallingdialog.py
qgsplugininstallerpluginerrordialog.py
qgsplugininstallerfetchingdialog.py
qgsplugininstallerrepositorydialog.py
qgsplugindependencies.py
qgsplugindependenciesdialog.py
unzip.py
version_compare.py
)
# FILE(GLOB UI_FILES *.ui)
# PYQT_WRAP_UI(PYUI_FILES ${UI_FILES})
PYQT_WRAP_UI(PYUI_FILES
qgsplugininstallerfetchingbase.ui
qgsplugininstallerinstallingbase.ui
qgsplugininstallerpluginerrorbase.ui
qgsplugininstallerrepositorybase.ui
qgsplugindependenciesdialogbase.ui
)
ADD_CUSTOM_TARGET(pyplugin-installer ALL DEPENDS ${PYUI_FILES})
ADD_CUSTOM_COMMAND(TARGET pyplugin-installer
POST_BUILD
COMMAND ${CMAKE_COMMAND} -E make_directory ${PYTHON_OUTPUT_DIRECTORY}/pyplugin_installer
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
)
FOREACH(pyfile ${PY_PLUGININSTALLER_FILES} ${PYUI_FILES})
ADD_CUSTOM_COMMAND(TARGET pyplugin-installer
POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy ${pyfile} ${PYTHON_OUTPUT_DIRECTORY}/pyplugin_installer
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
DEPENDS ${pyfile}
)
ENDFOREACH(pyfile)
PY_COMPILE(pyplugin-installer "${PYTHON_OUTPUT_DIRECTORY}/pyplugin_installer")
INSTALL(FILES ${PY_PLUGININSTALLER_FILES} ${PYUI_FILES} DESTINATION "${QGIS_PLUGININSTALLER_DIR}")