QGIS/python/plugins/CMakeLists.txt
2024-12-04 06:50:16 +10:00

60 lines
2.1 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 )
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
POST_BUILD 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} "")
endif()
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)
if (WITH_GUI)
add_subdirectory(db_manager)
endif()
add_subdirectory(processing)
add_subdirectory(grassprovider)
add_subdirectory(MetaSearch)
PY_COMPILE(staged-plugins "${PYTHON_OUTPUT_DIRECTORY}/plugins")