- Changes needed to use newer WiX version (Bug#60029)
- Added an alterantive search path for WiX components - Added a custom welcome dialog to include the copyright line (Bug#59805 and Bug#59512) - 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 XML changes done by Johannes Taxacher
This commit is contained in:
parent
252b86bc27
commit
955cb796e7
@ -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 )
|
||||
|
@ -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 file_comp dir_root)
|
||||
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")
|
||||
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} " <Component Id='C.${id}' Guid='*' ${Win64}>\n")
|
||||
FILE(APPEND ${file} " <File Id='F.${id}' KeyPath='yes' Source='${f_native}'/>\n")
|
||||
FILE(APPEND ${file} " </Component>\n")
|
||||
FILE(APPEND ${file_comp} " <ComponentRef Id='C.${id}'/>\n")
|
||||
ELSE()
|
||||
SET(NONEXEFILES "${NONEXEFILES}\n<File Id='F.${id}' Source='${f_native}'/>" )
|
||||
FILE(APPEND ${file} " <Component Id='C.${id}' Guid='*' ${Win64}>\n")
|
||||
FILE(APPEND ${file} " <File Id='F.${id}' KeyPath='yes' Source='${f_native}'/>\n")
|
||||
FILE(APPEND ${file} " </Component>\n")
|
||||
FILE(APPEND ${file_comp} " <ComponentRef Id='C.${id}'/>\n")
|
||||
ELSE()
|
||||
SET(NONEXEFILES "${NONEXEFILES}\n<File Id='F.${id}' Source='${f_native}'/>" )
|
||||
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}<Directory Id='D.${id}' Name='${name}'>\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}</Directory>\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
|
||||
)
|
||||
|
||||
|
@ -1,7 +1,22 @@
|
||||
<Include xmlns="http://schemas.microsoft.com/wix/2006/wi"
|
||||
xmlns:util="http://schemas.microsoft.com/wix/UtilExtension">
|
||||
<WixVariable Id="WixUICostingPopupOptOut" Value="1" Overridable="yes" />
|
||||
<UI Id="WixUI_Mondo_Custom">
|
||||
<Dialog Id="CustomWelcomeDlg" Width="370" Height="270" Title="[ProductName] Setup" NoMinimize="yes">
|
||||
<Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="yes" Text="!(loc.WixUICancel)">
|
||||
<Publish Event="SpawnDialog" Value="CancelDlg">1</Publish>
|
||||
</Control>
|
||||
<Control Id="Next" Type="PushButton" X="220" Y="243" Width="56" Height="17" Default="yes" Text="!(loc.WixUINext)">
|
||||
<Publish Event="NewDialog" Value="LicenseAgreementDlg">NOT OLDERVERSIONBEINGUPGRADED</Publish>
|
||||
<Publish Event="NewDialog" Value="UpgradeDlg">OLDERVERSIONBEINGUPGRADED</Publish>
|
||||
</Control>
|
||||
<Control Id="Back" Type="PushButton" X="156" Y="243" Width="56" Height="17" Text="!(loc.WixUIBack)" Disabled="yes" />
|
||||
<Control Id="Description" Type="Text" X="135" Y="80" Width="220" Height="60" Transparent="yes" NoPrefix="yes" Text="!(loc.WelcomeDlgDescription)" />
|
||||
<Control Id="Title" Type="Text" X="135" Y="20" Width="220" Height="60" Transparent="yes" NoPrefix="yes" Text="!(loc.WelcomeDlgTitle)" />
|
||||
<Control Id="CopyrightText" Type="Text" X="135" Y="200" Width="220" Height="40" Transparent="yes" Text="Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved." />
|
||||
<Control Id="Bitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="234" TabSkip="no" Text="!(loc.WelcomeDlgBitmap)" />
|
||||
<Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" />
|
||||
</Dialog>
|
||||
|
||||
<Dialog Id="UpgradeDlg" Width="370" Height="270" Title="[ProductName] Setup" NoMinimize="yes">
|
||||
<Control Id="Install" Type="PushButton" ElevationShield="yes" X="212" Y="243" Width="80" Height="17" Default="yes" Text="Upgrade">
|
||||
<Publish Event="EndDialog" Value="Return"><![CDATA[OutOfDiskSpace <> 1]]></Publish>
|
||||
@ -47,10 +62,7 @@
|
||||
|
||||
<Publish Dialog="ExitDialog" Control="Finish" Event="EndDialog" Value="Return" Order="999">1</Publish>
|
||||
|
||||
<Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog" Value="LicenseAgreementDlg" Order="1">NOT OLDERVERSIONBEINGUPGRADED</Publish>
|
||||
<Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog" Value="UpgradeDlg" Order="2">OLDERVERSIONBEINGUPGRADED</Publish>
|
||||
|
||||
<Publish Dialog="LicenseAgreementDlg" Control="Back" Event="NewDialog" Value="WelcomeDlg">1</Publish>
|
||||
<Publish Dialog="LicenseAgreementDlg" Control="Back" Event="NewDialog" Value="CustomWelcomeDlg">1</Publish>
|
||||
<Publish Dialog="LicenseAgreementDlg" Control="Next" Event="NewDialog" Value="SetupTypeDlg" Order="2">LicenseAccepted = "1"</Publish>
|
||||
|
||||
<Publish Dialog="SetupTypeDlg" Control="Back" Event="NewDialog" Value="LicenseAgreementDlg">1</Publish>
|
||||
@ -74,7 +86,11 @@
|
||||
<Publish Dialog="MaintenanceTypeDlg" Control="RemoveButton" Event="NewDialog" Value="VerifyReadyDlg">1</Publish>
|
||||
<Publish Dialog="MaintenanceTypeDlg" Control="Back" Event="NewDialog" Value="MaintenanceWelcomeDlg">1</Publish>
|
||||
|
||||
<Publish Dialog="UpgradeDlg" Control="Back" Event="NewDialog" Value="WelcomeDlg">1</Publish>
|
||||
<Publish Dialog="UpgradeDlg" Control="Back" Event="NewDialog" Value="CustomWelcomeDlg">1</Publish>
|
||||
|
||||
<InstallUISequence>
|
||||
<Show Dialog="CustomWelcomeDlg" Before="ProgressDlg">NOT Installed</Show>
|
||||
</InstallUISequence>
|
||||
</UI>
|
||||
|
||||
<UIRef Id="WixUI_Common" />
|
||||
|
Loading…
x
Reference in New Issue
Block a user