1# EvolutionMacros.cmake 2# 3# Utility macros for evolution-related files 4# 5# add_error_files(_part _file0) 6# Adds build and install rules to create .error files from .error.xml 7# files in the current source directory. The _file0 is expected to be 8# without the .xml extension. The macro can receive one or more error 9# files. There is created a custom "${_part}-error-files" target. 10# 11# add_eplug_file(_part _eplug_filename) 12# Adds build and install rules to create .eplug files from .eplug.xml 13# files in the current source directory. The _eplug_filename is expected 14# to be without the .xml extension. The macro can receive exactly one 15# eplug file. There is created a custom "${_part}-eplug-file" target. 16 17include(FindIntltool) 18 19macro(add_custom_xml_files _part _destination _targetsuffix _ext _mergeparam _file0) 20 set(filedeps) 21 22 foreach(file ${_file0} ${ARGN}) 23 intltool_merge(${file}${_ext} ${file} --xml-style --utf8 ${_mergeparam}) 24 25 get_filename_component(_path ${file} DIRECTORY) 26 if(_path STREQUAL "") 27 set(builtfile ${CMAKE_CURRENT_BINARY_DIR}/${file}) 28 else(_path STREQUAL "") 29 set(builtfile ${file}) 30 endif(_path STREQUAL "") 31 32 install(FILES ${builtfile} 33 DESTINATION ${_destination} 34 ) 35 36 list(APPEND filedeps ${builtfile}) 37 endforeach(file) 38 39 add_custom_target(${_part}-${_targetsuffix}-files ALL 40 DEPENDS ${filedeps} 41 ) 42endmacro(add_custom_xml_files) 43 44macro(add_error_files _part _file0) 45 add_custom_xml_files(${_part} ${errordir} error .xml --no-translations ${_file0} ${ARGN}) 46endmacro(add_error_files) 47 48macro(add_eplug_file _part _eplug_filename) 49 set(PLUGINDIR "${plugindir}") 50 set(SOEXT "${CMAKE_SHARED_MODULE_SUFFIX}") 51 set(LOCALEDIR "${LOCALE_INSTALL_DIR}") 52 53 configure_file(${_eplug_filename}.xml 54 ${CMAKE_CURRENT_BINARY_DIR}/${_eplug_filename}.in 55 @ONLY 56 ) 57 58 unset(PLUGINDIR) 59 unset(SOEXT) 60 unset(LOCALEDIR) 61 62 add_custom_xml_files(${_part} ${plugindir} plugin .in --no-translations ${CMAKE_CURRENT_BINARY_DIR}/${_eplug_filename}) 63endmacro(add_eplug_file) 64