QGIS/python/plugins/CMakeLists.txt
2016-04-25 15:58:40 +02:00

77 lines
2.9 KiB
CMake

# See ../CMakeLists.txt for info on staged-plugins* and clean-staged-plugins targets
#
# When developing on a plugin, use the following make targets:
# staged-[plugin_dir_name] - stage specific plugin, regenerating any changed resources
# clean-staged-[plugin_dir_name] - removes the plugin directory and its contents
#
# NOTE: regular project 'make install' is unaffected
FILE(WRITE ${CMAKE_BINARY_DIR}/stagecount 0)
IF(ENABLE_QT5)
# The target port-plugins acts as a container for all port-plugin-XXX targets
# Each port-plugin-XXX target will run scripts/2to3 on a plugin and migrate
# Python 3 and Qt 5 code.
SET (PORT_PLUGINS FALSE CACHE BOOL "Determines whether python plugins in staged or installed locations should be migrated to Python 3 and Qt 5")
IF(PORT_PLUGINS)
ADD_CUSTOM_TARGET(port-plugins ALL)
ELSE(PORT_PLUGINS)
ADD_CUSTOM_TARGET(port-plugins)
ENDIF(PORT_PLUGINS)
ENDIF(ENABLE_QT5)
MACRO (PLUGIN_INSTALL plugin subdir )
FILE(READ ${CMAKE_BINARY_DIR}/stagecount n)
MATH(EXPR n "${n}+1")
FILE(WRITE ${CMAKE_BINARY_DIR}/stagecount ${n})
# regular project build's install command and target
INSTALL(FILES ${ARGN} DESTINATION ${QGIS_DATA_DIR}/python/plugins/${plugin}/${subdir})
SET(_cmake ${CMAKE_BINARY_DIR}/python/plugins/${plugin}/stageinstall.cmake)
IF(NOT TARGET zzz-${plugin}-stageinstall)
ADD_CUSTOM_TARGET(zzz-${plugin}-stageinstall)
ADD_CUSTOM_TARGET(zzz-${plugin}-depend)
ADD_DEPENDENCIES(zzz-${plugin}-stageinstall zzz-${plugin}-depend)
ADD_CUSTOM_COMMAND(TARGET zzz-${plugin}-stageinstall
COMMAND ${CMAKE_COMMAND} -P ${_cmake}
)
ADD_CUSTOM_TARGET(clean-staged-${plugin}
COMMAND ${CMAKE_COMMAND} -E remove_directory ${PYTHON_OUTPUT_DIRECTORY}/plugins/${plugin}
)
ADD_DEPENDENCIES(staged-plugins zzz-${plugin}-stageinstall)
ADD_CUSTOM_TARGET(staged-${plugin} DEPENDS zzz-${plugin}-stageinstall)
FILE(WRITE ${_cmake} "")
IF(ENABLE_QT5)
ADD_CUSTOM_TARGET(port-plugin-${plugin})
PY_2TO3(port-plugin-${plugin} ${PYTHON_OUTPUT_DIRECTORY}/plugins/${plugin})
ADD_DEPENDENCIES(port-plugins port-plugin-${plugin})
ADD_DEPENDENCIES(port-plugin-${plugin} staged-${plugin})
ENDIF(ENABLE_QT5)
ENDIF(NOT TARGET zzz-${plugin}-stageinstall)
ADD_CUSTOM_TARGET(zzz-${plugin}-${n}-depend DEPENDS ${ARGN})
ADD_DEPENDENCIES(zzz-${plugin}-depend zzz-${plugin}-${n}-depend)
FILE(APPEND ${_cmake} "FILE(MAKE_DIRECTORY \"${PYTHON_OUTPUT_DIRECTORY}/plugins/${plugin}/${subdir}\")
")
FOREACH(file ${ARGN})
GET_FILENAME_COMPONENT(_file "${file}" ABSOLUTE)
FILE(APPEND ${_cmake} "FILE(COPY \"${_file}\" DESTINATION \"${PYTHON_OUTPUT_DIRECTORY}/plugins/${plugin}/${subdir}\")
")
ENDFOREACH(file)
ENDMACRO (PLUGIN_INSTALL)
ADD_SUBDIRECTORY(GdalTools)
ADD_SUBDIRECTORY(db_manager)
ADD_SUBDIRECTORY(processing)
ADD_SUBDIRECTORY(MetaSearch)
PY_COMPILE(staged-plugins "${PYTHON_OUTPUT_DIRECTORY}/plugins")