QGIS/python/plugins/CMakeLists.txt

64 lines
2.4 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)
MACRO (PLUGIN_INSTALL plugin subdir )
IF(MSVC)
FILE(READ ${CMAKE_BINARY_DIR}/stagecount n)
MATH(EXPR n "${n}+1")
FILE(WRITE ${CMAKE_BINARY_DIR}/stagecount ${n})
ELSE(MSVC)
STRING(REPLACE "/" "_" n "${subdir}")
ENDIF(MSVC)
# regular project build's install command and target
INSTALL(FILES ${ARGN} DESTINATION ${QGIS_DATA_DIR}/python/plugins/${plugin}/${subdir})
IF(WITH_STAGED_PLUGINS)
ADD_CUSTOM_TARGET(${plugin}-${n} DEPENDS ${ARGN})
ELSE(WITH_STAGED_PLUGINS)
ADD_CUSTOM_TARGET(${plugin}-${n} ALL DEPENDS ${ARGN})
ENDIF(WITH_STAGED_PLUGINS)
# for staged plugin install (to run from build directory)
ADD_CUSTOM_TARGET(${plugin}-${n}-stageinstall DEPENDS ${ARGN})
ADD_CUSTOM_COMMAND(TARGET ${plugin}-${n}-stageinstall
POST_BUILD
COMMAND ${CMAKE_COMMAND} -E make_directory ${PYTHON_OUTPUT_DIRECTORY}/plugins/${plugin}/${subdir}
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
)
FOREACH(file ${ARGN})
ADD_CUSTOM_COMMAND(TARGET ${plugin}-${n}-stageinstall
POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_if_different \"${file}\" ${PYTHON_OUTPUT_DIRECTORY}/plugins/${plugin}/${subdir}
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
#COMMENT "copying ${file} to ${PYTHON_OUTPUT_DIRECTORY}/plugins/${plugin}/${subdir}"
)
ENDFOREACH(file)
ADD_DEPENDENCIES(staged-plugins ${plugin}-${n}-stageinstall)
IF(TARGET staged-${plugin})
ADD_DEPENDENCIES(staged-${plugin} ${plugin}-${n}-stageinstall)
ELSE(TARGET staged-${plugin})
ADD_CUSTOM_TARGET(staged-${plugin} DEPENDS ${plugin}-${n}-stageinstall)
ADD_CUSTOM_TARGET(clean-staged-${plugin}
COMMAND ${CMAKE_COMMAND} -E remove_directory ${PYTHON_OUTPUT_DIRECTORY}/plugins/${plugin}
)
ENDIF(TARGET staged-${plugin})
ENDMACRO (PLUGIN_INSTALL)
ADD_SUBDIRECTORY(fTools)
ADD_SUBDIRECTORY(GdalTools)
ADD_SUBDIRECTORY(db_manager)
ADD_SUBDIRECTORY(processing)
ADD_SUBDIRECTORY(MetaSearch)
PY_COMPILE(staged-plugins "${PYTHON_OUTPUT_DIRECTORY}/plugins")