From: Kent Boortz Date: May 16 2011 10:55am Subject: bzr commit into mysql-5.5 branch (kent.boortz:3387) List-Archive: http://lists.mysql.com/commits/137416 Message-Id: <20110516105510.11202.qmail@helheim> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============0791095876==" --===============0791095876== MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline #At file:///net/helheim/store/bteam/bzr/kent/wix-5.6/mysql-5.5/ based on revid:andrei.elkin@stripped 3387 Kent Boortz 2011-05-16 - Changes needed to use newer WiX version - Added an alterantive search path for WiX components - Added a custom welcome dialog to include the copyright line - Excluded some binaries to make package smaller, in effect makig the "essentials" package obsolete - Added a bit more error checking when running the WiX tools WiX changes done by Johannes Taxacher" modified: packaging/WiX/ca/CMakeLists.txt packaging/WiX/create_msi.cmake.in packaging/WiX/custom_ui.wxs packaging/WiX/extra.wxs.in === modified file 'packaging/WiX/ca/CMakeLists.txt' --- a/packaging/WiX/ca/CMakeLists.txt 2010-11-24 20:23:41 +0000 +++ b/packaging/WiX/ca/CMakeLists.txt 2011-05-16 10:54:57 +0000 @@ -13,15 +13,43 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -INCLUDE_DIRECTORIES(${WIX_DIR}/../SDK/inc) -LINK_DIRECTORIES(${WIX_DIR}/../SDK/lib) +INCLUDE_DIRECTORIES(${WIX_DIR}/../SDK/inc ${WIX_DIR}/SDK/inc) +LINK_DIRECTORIES(${WIX_DIR}/../SDK/lib ${WIX_DIR}/SDK/lib) SET(WIXCA_SOURCES CustomAction.cpp CustomAction.def) IF(CMAKE_SIZEOF_VOID_P EQUAL 8) - LINK_LIBRARIES(wcautil_x64 dutil_x64 msi version) + SET(WIX_ARCH_SUFFIX "_x64") ELSE() - LINK_LIBRARIES(wcautil dutil msi version) + SET(WIX_ARCH_SUFFIX) ENDIF() - -ADD_LIBRARY(wixca SHARED ${WIXCA_SOURCES}) + +IF(MSVC_VERSION EQUAL 1400) + SET(WIX35_MSVC_SUFFIX "_2005") +ELSEIF(MSVC_VERSION EQUAL 1500) + SET(WIX35_MSVC_SUFFIX "_2008") +ELSEIF(MSVC_VERSION EQUAL 1600) + SET(WIX35_MSVC_SUFFIX "_2010") +ELSE() + # When next VS is out, add the correct version here + MESSAGE(FATAL_ERROR "Unknown VS version") +ENDIF() + +MESSAGE(STATUS "Searching for wcautil${WIX_ARCH_SUFFIX} or wcautil${WIX35_MSVC_SUFFIX}${WIX_ARCH_SUFFIX} in ${WIX_DIR}/../SDK/lib ${WIX_DIR}/SDK/lib") +MESSAGE(STATUS "Searching for dutil${WIX_ARCH_SUFFIX} or dutil${WIX35_MSVC_SUFFIX}${WIX_ARCH_SUFFIX} in ${WIX_DIR}/../SDK/lib ${WIX_DIR}/SDK/lib") + +FIND_LIBRARY(WIX_WCAUTIL_LIBRARY + NAMES wcautil${WIX_ARCH_SUFFIX} wcautil${WIX35_MSVC_SUFFIX}${WIX_ARCH_SUFFIX} + HINTS ${WIX_DIR}/../SDK/lib ${WIX_DIR}/SDK/lib) + +FIND_LIBRARY(WIX_DUTIL_LIBRARY + NAMES dutil${WIX_ARCH_SUFFIX} dutil${WIX35_MSVC_SUFFIX}${WIX_ARCH_SUFFIX} + PATHS ${WIX_DIR}/../SDK/lib ${WIX_DIR}/SDK/lib) + +MESSAGE(STATUS "Found: ${WIX_WCAUTIL_LIBRARY}") +MESSAGE(STATUS "Found: ${WIX_DUTIL_LIBRARY}") + +ADD_VERSION_INFO(wixca SHARED WIXCA_SOURCES) +ADD_LIBRARY(wixca SHARED EXCLUDE_FROM_ALL ${WIXCA_SOURCES}) +TARGET_LINK_LIBRARIES(wixca ${WIX_WCAUTIL_LIBRARY} ${WIX_DUTIL_LIBRARY} + msi version ) === modified file 'packaging/WiX/create_msi.cmake.in' --- a/packaging/WiX/create_msi.cmake.in 2010-11-20 14:47:50 +0000 +++ b/packaging/WiX/create_msi.cmake.in 2011-05-16 10:54:57 +0000 @@ -15,6 +15,28 @@ SET(COPYING_RTF "@COPYING_RTF@") SET(CPACK_WIX_CONFIG "@CPACK_WIX_CONFIG@") SET(CPACK_WIX_INCLUDE "@CPACK_WIX_INCLUDE@") +LIST(APPEND EXCLUDE_DIRS + bin/debug + data/test + lib/plugin/debug + mysql-test + scripts + sql-bench +) + +LIST(APPEND EXCLUDE_FILES + bin/echo.exe + bin/mysql_client_test_embedded.exe + bin/mysqld-debug.exe + bin/mysqltest_embedded.exe + bin/replace.exe + lib/debug/mysqlserver.lib + lib/libmysqld.dll + lib/libmysqld.lib + lib/mysqlserver.lib + lib/mysqlservices.lib +) + IF(CMAKE_SIZEOF_VOID_P EQUAL 8) SET(Win64 " Win64='yes'") SET(Platform x64) @@ -197,11 +219,18 @@ ENDMACRO() FUNCTION(TRAVERSE_FILES dir topdir file file_comp dir_root) + FILE(RELATIVE_PATH dir_rel ${topdir} ${dir}) + IF(dir_rel) + LIST(FIND EXCLUDE_DIRS ${dir_rel} TO_EXCLUDE) + IF(NOT TO_EXCLUDE EQUAL -1) + MESSAGE(STATUS "excluding directory: ${dir_rel}") + RETURN() + ENDIF() + ENDIF() FILE(GLOB all_files ${dir}/*) IF(NOT all_files) RETURN() ENDIF() - FILE(RELATIVE_PATH dir_rel ${topdir} ${dir}) IF(dir_rel) MAKE_DIRECTORY(${dir_root}/${dir_rel}) MAKE_WIX_IDENTIFIER("${dir_rel}" id) @@ -215,18 +244,31 @@ FUNCTION(TRAVERSE_FILES dir topdir file FOREACH(f ${all_files}) IF(NOT IS_DIRECTORY ${f}) FILE(RELATIVE_PATH rel ${topdir} ${f}) - MAKE_WIX_IDENTIFIER("${rel}" id) - FILE(TO_NATIVE_PATH ${f} f_native) - GET_FILENAME_COMPONENT(f_ext "${f}" EXT) - # According to MSDN each DLL or EXE should be in the own component - IF(f_ext MATCHES ".exe" OR f_ext MATCHES ".dll") - - FILE(APPEND ${file} " \n") - FILE(APPEND ${file} " \n") - FILE(APPEND ${file} " \n") - FILE(APPEND ${file_comp} " \n") - ELSE() - SET(NONEXEFILES "${NONEXEFILES}\n" ) + SET(TO_EXCLUDE) + IF(rel MATCHES "\\.pdb$") + SET(TO_EXCLUDE TRUE) + ELSE() + LIST(FIND EXCLUDE_FILES ${rel} RES) + IF(NOT RES EQUAL -1) + SET(TO_EXCLUDE TRUE) + ENDIF() + ENDIF() + IF(TO_EXCLUDE) + MESSAGE(STATUS "excluding file: ${rel}") + ELSE() + MAKE_WIX_IDENTIFIER("${rel}" id) + FILE(TO_NATIVE_PATH ${f} f_native) + GET_FILENAME_COMPONENT(f_ext "${f}" EXT) + # According to MSDN each DLL or EXE should be in the own component + IF(f_ext MATCHES ".exe" OR f_ext MATCHES ".dll") + + FILE(APPEND ${file} " \n") + FILE(APPEND ${file} " \n") + FILE(APPEND ${file} " \n") + FILE(APPEND ${file_comp} " \n") + ELSE() + SET(NONEXEFILES "${NONEXEFILES}\n" ) + ENDIF() ENDIF() ENDIF() ENDFOREACH() @@ -247,18 +289,18 @@ ENDFUNCTION() FUNCTION(TRAVERSE_DIRECTORIES dir topdir file prefix) FILE(RELATIVE_PATH rel ${topdir} ${dir}) - IF(rel AND IS_DIRECTORY "${f}") + IF(rel) MAKE_WIX_IDENTIFIER("${rel}" id) GET_FILENAME_COMPONENT(name ${dir} NAME) FILE(APPEND ${file} "${prefix}\n") ENDIF() FILE(GLOB all_files ${dir}/*) - FOREACH(f ${all_files}) + FOREACH(f ${all_files}) IF(IS_DIRECTORY ${f}) TRAVERSE_DIRECTORIES(${f} ${topdir} ${file} "${prefix} ") ENDIF() ENDFOREACH() - IF(rel AND IS_DIRECTORY "${f}") + IF(rel) FILE(APPEND ${file} "${prefix}\n") ENDIF() ENDFUNCTION() @@ -317,16 +359,25 @@ ENDIF() FILE(REMOVE mysql_server.wixobj) EXECUTE_PROCESS( COMMAND ${CANDLE_EXECUTABLE} -ext WixUtilExtension mysql_server.wxs ${EXTRA_CANDLE_ARGS} + RESULT_VARIABLE CANDLE_RESULT ) + +IF(CANDLE_RESULT) + MESSAGE(FATAL_ERROR "ERROR: can't run candle") +ENDIF() + EXECUTE_PROCESS( COMMAND ${LIGHT_EXECUTABLE} -ext WixUIExtension -ext WixUtilExtension mysql_server.wixobj -out ${CPACK_PACKAGE_FILE_NAME}.msi ${EXTRA_LIGHT_ARGS} + RESULT_VARIABLE LIGHT_RESULT ) +IF(LIGHT_RESULT) + MESSAGE(FATAL_ERROR "ERROR: can't run light") +ENDIF() + # Switch monolithic install on again EXECUTE_PROCESS( COMMAND ${CMAKE_COMMAND} -DCPACK_MONOLITHIC_INSTALL=1 ${CMAKE_BINARY_DIR} - OUTPUT_QUIET ) - === modified file 'packaging/WiX/custom_ui.wxs' --- a/packaging/WiX/custom_ui.wxs 2010-07-24 15:26:45 +0000 +++ b/packaging/WiX/custom_ui.wxs 2011-05-16 10:54:57 +0000 @@ -1,7 +1,22 @@ - + + + 1 + + + NOT OLDERVERSIONBEINGUPGRADED + OLDERVERSIONBEINGUPGRADED + + + + + + + + + 1]]> @@ -47,10 +62,7 @@ 1 - NOT OLDERVERSIONBEINGUPGRADED - OLDERVERSIONBEINGUPGRADED - - 1 + 1 LicenseAccepted = "1" 1 @@ -74,7 +86,11 @@ 1 1 - 1 + 1 + + + NOT Installed + === modified file 'packaging/WiX/extra.wxs.in' --- a/packaging/WiX/extra.wxs.in 2010-07-24 15:26:45 +0000 +++ b/packaging/WiX/extra.wxs.in 2011-05-16 10:54:57 +0000 @@ -1,6 +1,142 @@ + + + + + Not Installed And (Not PATCH Or OLDERVERSIONBEINGUPGRADED) And UILevel>4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + WIXUI_EXITDIALOGOPTIONALCHECKBOX = 1 and NOT Installed and NOT OLDERVERSIONBEINGUPGRADED + + + + + + + + + + + + + + + + + --===============0791095876== MIME-Version: 1.0 Content-Type: text/bzr-bundle; charset="us-ascii"; name="bzr/kent.boortz@stripped" Content-Transfer-Encoding: 7bit Content-Disposition: inline # Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: kent.boortz@stripped # target_branch: file:///net/helheim/store/bteam/bzr/kent/wix-\ # 5.6/mysql-5.5/ # testament_sha1: 59e10c8cd9ae11f00cd0b67cc8174a554f63550d # timestamp: 2011-05-16 12:55:10 +0200 # base_revision_id: andrei.elkin@stripped\ # rjsc2wd5p083ctqs # # Begin bundle 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 --===============0791095876==--