# EvolutionMacros.cmake # # Utility macros for evolution-related files # # add_error_files(_part _file0) # Adds build and install rules to create .error files from .error.xml # files in the current source directory. The _file0 is expected to be # without the .xml extension. The macro can receive one or more error # files. There is created a custom "${_part}-error-files" target. # # add_eplug_file(_part _eplug_filename) # Adds build and install rules to create .eplug files from .eplug.xml # files in the current source directory. The _eplug_filename is expected # to be without the .xml extension. The macro can receive exactly one # eplug file. There is created a custom "${_part}-eplug-file" target. include(FindIntltool) macro(add_custom_xml_files _part _destination _targetsuffix _ext _mergeparam _file0) set(filedeps) foreach(file ${_file0} ${ARGN}) intltool_merge(${file}${_ext} ${file} --xml-style --utf8 ${_mergeparam}) get_filename_component(_path ${file} DIRECTORY) if(_path STREQUAL "") set(builtfile ${CMAKE_CURRENT_BINARY_DIR}/${file}) else(_path STREQUAL "") set(builtfile ${file}) endif(_path STREQUAL "") install(FILES ${builtfile} DESTINATION ${_destination} ) list(APPEND filedeps ${builtfile}) endforeach(file) add_custom_target(${_part}-${_targetsuffix}-files ALL DEPENDS ${filedeps} ) endmacro(add_custom_xml_files) macro(add_error_files _part _file0) add_custom_xml_files(${_part} ${errordir} error .xml --no-translations ${_file0} ${ARGN}) endmacro(add_error_files) macro(add_eplug_file _part _eplug_filename) set(PLUGINDIR "${plugindir}") set(SOEXT "${CMAKE_SHARED_MODULE_SUFFIX}") set(LOCALEDIR "${LOCALE_INSTALL_DIR}") configure_file(${_eplug_filename}.xml ${CMAKE_CURRENT_BINARY_DIR}/${_eplug_filename}.in @ONLY ) unset(PLUGINDIR) unset(SOEXT) unset(LOCALEDIR) add_custom_xml_files(${_part} ${plugindir} plugin .in --no-translations ${CMAKE_CURRENT_BINARY_DIR}/${_eplug_filename}) endmacro(add_eplug_file)