From: Andrei Elkin Date: May 16 2011 6:46pm Subject: bzr commit into mysql-trunk branch (andrei.elkin:3094) List-Archive: http://lists.mysql.com/commits/137475 Message-Id: <201105161846.p4GIkYat017813@mysql1000.dsl.inet.fi> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============0934105471==" --===============0934105471== MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline #At file:///home/andrei/MySQL/BZR/2a-23May/mysql-trunk/ based on revid:andrei.elkin@stripped 3094 Andrei Elkin 2011-05-16 [merge] merge from trunk modified: packaging/WiX/ca/CMakeLists.txt packaging/WiX/create_msi.cmake.in packaging/WiX/custom_ui.wxs === modified file 'packaging/WiX/ca/CMakeLists.txt' --- a/packaging/WiX/ca/CMakeLists.txt 2010-11-24 21:05:50 +0000 +++ b/packaging/WiX/ca/CMakeLists.txt 2011-05-16 18:38:47 +0000 @@ -13,12 +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) -ADD_LIBRARY(wixca SHARED EXCLUDE_FROM_ALL ${WIXCA_SOURCES}) + IF(CMAKE_SIZEOF_VOID_P EQUAL 8) - TARGET_LINK_LIBRARIES(wixca wcautil_x64 dutil_x64 msi version) + SET(WIX_ARCH_SUFFIX "_x64") +ELSE() + SET(WIX_ARCH_SUFFIX) +ENDIF() + +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() - TARGET_LINK_LIBRARIES(wixca wcautil dutil msi version) + # 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-21 13:48:44 +0000 +++ b/packaging/WiX/create_msi.cmake.in 2011-05-16 18:38:47 +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 18:26:55 +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 + --===============0934105471== MIME-Version: 1.0 Content-Type: text/bzr-bundle; charset="us-ascii"; name="bzr/andrei.elkin@stripped" Content-Transfer-Encoding: 7bit Content-Disposition: inline # Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: andrei.elkin@stripped # target_branch: file:///home/andrei/MySQL/BZR/2a-23May/mysql-trunk/ # testament_sha1: 9c5d8ec2f0bf4c1bc3ac06f974e65f3b6b813c8d # timestamp: 2011-05-16 21:46:34 +0300 # source_branch: file:///home/andrei/MySQL/BZR/2a-23May/mysql-5.5/ # base_revision_id: andrei.elkin@stripped\ # 0khjknei5n8izfia # # Begin bundle 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 --===============0934105471==--