From ab6f78734175005dfcc32c2f1855d076fe465cec Mon Sep 17 00:00:00 2001 From: Vladislav Vaintroub Date: Thu, 11 Feb 2010 03:28:12 +0100 Subject: [PATCH] Fix XML error in compiling MSI --- packaging/WiX/create_msi.cmake.in | 38 ++++++++++++++++++++++++------- packaging/WiX/mysql_server.wxs.in | 11 +-------- 2 files changed, 31 insertions(+), 18 deletions(-) diff --git a/packaging/WiX/create_msi.cmake.in b/packaging/WiX/create_msi.cmake.in index 13836d6d35f..34aa53fdc91 100644 --- a/packaging/WiX/create_msi.cmake.in +++ b/packaging/WiX/create_msi.cmake.in @@ -4,6 +4,10 @@ SET(CANDLE_EXECUTABLE "@CANDLE_EXECUTABLE@") SET(LIGHT_EXECUTABLE "@LIGHT_EXECUTABLE@") SET(CMAKE_COMMAND "@CMAKE_COMMAND@") SET(CMAKE_CFG_INTDIR "@CMAKE_CFG_INTDIR@") +SET(MAJOR_VERSION "@MAJOR_VERSION@") +SET(MINOR_VERSION "@MINOR_VERSION@") +SET(PATCH "@PATCH@") + SET(ENV{VS_UNICODE_OUTPUT}) INCLUDE(${CMAKE_BINARY_DIR}/CPackConfig.cmake) @@ -25,7 +29,16 @@ ENDFOREACH() MACRO(MAKE_WIX_IDENTIFIER str varname) STRING(REPLACE "/" "." ${varname} "${str}") - STRING(REPLACE "-" "_" ${varname} "${${varname}}") + STRING(REGEX REPLACE "[^a-zA-Z_0-9.]" "_" ${varname} "${${varname}}") + STRING(LENGTH "${${varname}}" len) + # Identifier should be smaller than 72 character + # We have to cut down the length to 70 chars, since we add 2 char prefix + # pretty often + IF(len GREATER 70) + STRING(RANDOM r) + STRING(SUBSTRING "${${varname}}" 0 65 shortstr) + SET(${varname} "${shortstr}${r}") + ENDIF() ENDMACRO() FUNCTION(TRAVERSE_FILES dir topdir file file_comp dir_root) @@ -37,7 +50,7 @@ FUNCTION(TRAVERSE_FILES dir topdir file file_comp dir_root) IF(dir_rel) MAKE_DIRECTORY(${dir_root}/${dir_rel}) MAKE_WIX_IDENTIFIER("${dir_rel}" id) - FILE(APPEND ${file} "\n") + FILE(APPEND ${file} "\n") ELSE() FILE(APPEND ${file} "\n") ENDIF() @@ -47,10 +60,10 @@ FUNCTION(TRAVERSE_FILES dir topdir file file_comp dir_root) FILE(RELATIVE_PATH rel ${topdir} ${f}) MAKE_WIX_IDENTIFIER("${rel}" id) FILE(TO_NATIVE_PATH ${f} f_native) - FILE(APPEND ${file} " \n") - FILE(APPEND ${file} " \n") + FILE(APPEND ${file} " \n") + FILE(APPEND ${file} " \n") FILE(APPEND ${file} " \n") - FILE(APPEND ${file_comp} " \n") + FILE(APPEND ${file_comp} " \n") ENDIF() ENDFOREACH() FILE(APPEND ${file} "\n") @@ -66,7 +79,7 @@ FUNCTION(TRAVERSE_DIRECTORIES dir topdir file prefix) IF(rel AND IS_DIRECTORY "${f}") MAKE_WIX_IDENTIFIER("${rel}" id) GET_FILENAME_COMPONENT(name ${dir} NAME) - FILE(APPEND ${file} "${prefix}\n") + FILE(APPEND ${file} "${prefix}\n") ENDIF() FILE(GLOB all_files ${dir}/*) FOREACH(f ${all_files}) @@ -96,8 +109,17 @@ FILE(WRITE directories.wxs " - +