From f44ecaa4f27e7538ddcad66d40e543bffa2d2d86 Mon Sep 17 00:00:00 2001 From: manuel Date: Sun, 4 Jun 2017 16:57:49 +0200 Subject: sync with upstream --- cmake/scripts/common/GenerateVersionedFiles.cmake | 38 +++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 cmake/scripts/common/GenerateVersionedFiles.cmake (limited to 'cmake/scripts/common/GenerateVersionedFiles.cmake') diff --git a/cmake/scripts/common/GenerateVersionedFiles.cmake b/cmake/scripts/common/GenerateVersionedFiles.cmake new file mode 100644 index 0000000..90b2173 --- /dev/null +++ b/cmake/scripts/common/GenerateVersionedFiles.cmake @@ -0,0 +1,38 @@ +include(${CORE_SOURCE_DIR}/cmake/scripts/common/Macros.cmake) + +core_find_versions() + +# configure_file without dependency tracking +# configure_file would register additional file dependencies that interfere +# with the ones from add_custom_command (and the generation would happen twice) +function(generate_versioned_file _SRC _DEST) + file(READ ${CORE_SOURCE_DIR}/${_SRC} file_content) + string(CONFIGURE "${file_content}" file_content @ONLY) + file(WRITE ${CMAKE_BINARY_DIR}/${_DEST} "${file_content}") +endfunction() + +# add-on xml's +file(GLOB ADDON_XML_IN_FILE ${CORE_SOURCE_DIR}/addons/*/addon.xml.in) +foreach(loop_var ${ADDON_XML_IN_FILE}) + # prevent 'xbmc.json'; will be obtained from 'xbmc/interfaces/json-rpc/schema/CMakeLists.txt'. + if(loop_var MATCHES "xbmc.json") + continue() + endif() + + list(GET loop_var 0 xml_name) + + string(REPLACE "/addon.xml.in" "" source_dir ${xml_name}) + string(REPLACE ${CORE_SOURCE_DIR} ${CMAKE_BINARY_DIR} dest_dir ${source_dir}) + file(MAKE_DIRECTORY ${dest_dir}) + + # copy everything except addon.xml.in to build folder + file(COPY "${source_dir}" DESTINATION "${CMAKE_BINARY_DIR}/addons" REGEX ".xml.in" EXCLUDE) + + configure_file(${source_dir}/addon.xml.in ${dest_dir}/addon.xml @ONLY) + + unset(source_dir) + unset(dest_dir) + unset(xml_name) +endforeach() + +generate_versioned_file(xbmc/CompileInfo.cpp.in ${CORE_BUILD_DIR}/xbmc/CompileInfo.cpp) -- cgit v1.2.3