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 @@
-
+
+
--===============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==--