24 changed files with 422 additions and 77 deletions
-
20CMakeLists.txt
-
2client/CMakeLists.txt
-
96cmake/install_macros.cmake
-
7cmake/libutils.cmake
-
13cmake/mysql_add_executable.cmake
-
5cmake/package_name.cmake
-
2cmake/plugin.cmake
-
2extra/CMakeLists.txt
-
4include/CMakeLists.txt
-
8libmysql/CMakeLists.txt
-
5libmysqld/CMakeLists.txt
-
1mysql-test/CMakeLists.txt
-
19mysql-test/lib/My/SafeProcess/CMakeLists.txt
-
BINpackaging/WiX/AdminBackground.jpg
-
BINpackaging/WiX/AdminHeader.jpg
-
28packaging/WiX/CMakeLists.txt
-
86packaging/WiX/create_fragments.cmake
-
103packaging/WiX/create_msi.cmake.in
-
40packaging/WiX/mysql_server.wxs.in
-
46scripts/CMakeLists.txt
-
2scripts/make_win_bin_dist
-
2sql/CMakeLists.txt
-
6sql/share/CMakeLists.txt
-
2support-files/CMakeLists.txt
|
After Width: 499 | Height: 312 | Size: 20 KiB |
|
After Width: 499 | Height: 58 | Size: 3.4 KiB |
@ -0,0 +1,28 @@ |
|||
FIND_PATH(WIX_DIR heat.exe |
|||
$ENV{WIX_DIR}/bin |
|||
$ENV{ProgramFiles}/wix/bin |
|||
"$ENV{ProgramFiles}/Windows Installer XML v3.0/bin" |
|||
"$ENV{ProgramFiles}/Windows Installer XML v3.5/bin" |
|||
) |
|||
|
|||
IF(NOT WIX_DIR) |
|||
MESSAGE(FATAL_ERROR "Cannot find wix") |
|||
ENDIF() |
|||
|
|||
FIND_PROGRAM(HEAT_EXECUTABLE heat ${WIX_DIR}) |
|||
FIND_PROGRAM(CANDLE_EXECUTABLE candle ${WIX_DIR}) |
|||
FIND_PROGRAM(LIGHT_EXECUTABLE light ${WIX_DIR}) |
|||
|
|||
|
|||
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/create_msi.cmake.in |
|||
${CMAKE_CURRENT_BINARY_DIR}/create_msi.cmake |
|||
@ONLY) |
|||
IF(CMAKE_GENERATOR MATCHES "Visual Studio") |
|||
SET(CONFIG_PARAM "-DCMAKE_INSTALL_CONFIG_NAME=${CMAKE_CFG_INTDIR}") |
|||
ENDIF() |
|||
ADD_CUSTOM_TARGET( |
|||
WIX_Installer |
|||
COMMAND set VS_UNICODE_OUTPUT= |
|||
COMMAND ${CMAKE_COMMAND} ${CONFIG_PARAM} -P ${CMAKE_CURRENT_BINARY_DIR}/create_msi.cmake |
|||
) |
|||
|
|||
@ -0,0 +1,86 @@ |
|||
INCLUDE(${CMAKE_BINARY_DIR}/CPackConfig) |
|||
|
|||
FOREACH(comp ${COMPS}) |
|||
SET(CMDS ${CMDS} |
|||
COMMAND set DESTDIR=testinstall/${comp} |
|||
COMMAND ${CMAKE_COMMAND} |
|||
-DCMAKE_INSTALL_CONFIG_NAME=${CMAKE_CFG_INTDIR} |
|||
-DCMAKE_INSTALL_COMPONENT=${comp} |
|||
-DCMAKE_INSTALL_PREFIX= |
|||
-P ${CMAKE_BINARY_DIR}/cmake_install.cmake |
|||
) |
|||
ENDFOREACH() |
|||
|
|||
MACRO(MAKE_WIX_IDENTIFIER str varname) |
|||
STRING(REPLACE "/" "." ${varname} "${str}") |
|||
STRING(REPLACE "-" "_" ${varname} "${${varname}}") |
|||
ENDMACRO() |
|||
|
|||
FUNCTION(TRAVERSE_FILES dir topdir file file_comp dir_root) |
|||
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) |
|||
FILE(APPEND ${file} "<DirectoryRef Id='directory.${id}'>\n") |
|||
ELSE() |
|||
FILE(APPEND ${file} "<DirectoryRef Id='INSTALLDIR'>\n") |
|||
ENDIF() |
|||
|
|||
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) |
|||
FILE(APPEND ${file} " <Component Id='component.${id}' Guid='*'>\n") |
|||
FILE(APPEND ${file} " <File Id='file.${id}' KeyPath='yes' Source='${f_native}'/>\n") |
|||
FILE(APPEND ${file} " </Component>\n") |
|||
FILE(APPEND ${file_comp} " <ComponentRef Id='component.${id}'/>\n") |
|||
ENDIF() |
|||
ENDFOREACH() |
|||
FILE(APPEND ${file} "</DirectoryRef>\n") |
|||
FOREACH(f ${all_files}) |
|||
IF(IS_DIRECTORY ${f}) |
|||
TRAVERSE_FILES(${f} ${topdir} ${file} ${file_comp} ${dir_root}) |
|||
ENDIF() |
|||
ENDFOREACH() |
|||
ENDFUNCTION() |
|||
|
|||
FUNCTION(TRAVERSE_DIRECTORIES dir topdir file prefix) |
|||
FILE(RELATIVE_PATH rel ${topdir} ${dir}) |
|||
IF(rel) |
|||
MAKE_WIX_IDENTIFIER("${rel}" id) |
|||
GET_FILENAME_COMPONENT(name ${dir} NAME) |
|||
FILE(APPEND ${file} "${prefix}<Directory Id='directory.${id}' Name='${name}'>\n") |
|||
ENDIF() |
|||
FILE(GLOB all_files ${dir}/*) |
|||
FOREACH(f ${all_files}) |
|||
IF(IS_DIRECTORY ${f}) |
|||
TRAVERSE_DIRECTORIES(${f} ${topdir} ${file} "${prefix} ") |
|||
ENDIF() |
|||
ENDFOREACH() |
|||
IF(rel) |
|||
FILE(APPEND ${file} "</Directory>\n") |
|||
ENDIF() |
|||
ENDFUNCTION() |
|||
|
|||
|
|||
GET_FILENAME_COMPONENT(abs . ABSOLUTE) |
|||
FOREACH(d ${DIRS}) |
|||
GET_FILENAME_COMPONENT(d ${d} ABSOLUTE) |
|||
GET_FILENAME_COMPONENT(d_name ${d} NAME) |
|||
FILE(WRITE |
|||
${abs}/${d_name}.wxs "<Wix xmlns='http://schemas.microsoft.com/wix/2006/wi'>\n<Fragment>\n") |
|||
FILE(WRITE |
|||
${abs}/${d_name}_component_group.wxs "<Wix xmlns='http://schemas.microsoft.com/wix/2006/wi'>\n<Fragment>\n<ComponentGroup Id='componentgroup.${d_name}'>\n") |
|||
TRAVERSE_FILES(${d} ${d} ${abs}/${d_name}.wxs ${abs}/${d_name}_component_group.wxs "${abs}/dirs") |
|||
FILE(APPEND ${abs}/${d_name}.wxs " </Fragment>\n</Wix>") |
|||
FILE(APPEND ${abs}/${d_name}_component_group.wxs "</ComponentGroup>\n</Fragment>\n</Wix>") |
|||
ENDFOREACH() |
|||
FILE(WRITE directories.wxs "<Wix xmlns='http://schemas.microsoft.com/wix/2006/wi'>\n<Fragment>\n<DirectoryRef Id='INSTALLDIR'>\n") |
|||
TRAVERSE_DIRECTORIES(${abs}/dirs ${abs}/dirs directories.wxs "") |
|||
FILE(APPEND directories.wxs "</DirectoryRef>\n</Fragment>\n</Wix>\n") |
|||
|
|||
@ -0,0 +1,103 @@ |
|||
SET(CMAKE_BINARY_DIR "@CMAKE_BINARY_DIR@") |
|||
SET(CMAKE_CURRENT_SOURCE_DIR "@CMAKE_CURRENT_SOURCE_DIR@") |
|||
SET(CANDLE_EXECUTABLE "@CANDLE_EXECUTABLE@") |
|||
SET(LIGHT_EXECUTABLE "@LIGHT_EXECUTABLE@") |
|||
SET(CMAKE_COMMAND "@CMAKE_COMMAND@") |
|||
SET(CMAKE_CFG_INTDIR "@CMAKE_CFG_INTDIR@") |
|||
SET(ENV{VS_UNICODE_OUTPUT}) |
|||
INCLUDE(${CMAKE_BINARY_DIR}/CPackConfig.cmake) |
|||
|
|||
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/mysql_server.wxs.in |
|||
${CMAKE_CURRENT_BINARY_DIR}/mysql_server.wxs) |
|||
|
|||
IF(CMAKE_INSTALL_CONFIG_NAME) |
|||
SET(CONFIG_PARAM "-DCMAKE_INSTALL_CONFIG_NAME=${CMAKE_INSTALL_CONFIG_NAME}") |
|||
ENDIF() |
|||
|
|||
FOREACH(comp ${CPACK_COMPONENTS_ALL}) |
|||
SET(ENV{DESTDIR} testinstall/${comp}) |
|||
SET(DIRS ${DIRS} testinstall/${comp}) |
|||
EXECUTE_PROCESS( |
|||
COMMAND ${CMAKE_COMMAND} ${CONFIG_PARAM} -DCMAKE_INSTALL_COMPONENT=${comp} |
|||
-DCMAKE_INSTALL_PREFIX= -P ${CMAKE_BINARY_DIR}/cmake_install.cmake |
|||
) |
|||
ENDFOREACH() |
|||
|
|||
MACRO(MAKE_WIX_IDENTIFIER str varname) |
|||
STRING(REPLACE "/" "." ${varname} "${str}") |
|||
STRING(REPLACE "-" "_" ${varname} "${${varname}}") |
|||
ENDMACRO() |
|||
|
|||
FUNCTION(TRAVERSE_FILES dir topdir file file_comp dir_root) |
|||
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) |
|||
FILE(APPEND ${file} "<DirectoryRef Id='directory.${id}'>\n") |
|||
ELSE() |
|||
FILE(APPEND ${file} "<DirectoryRef Id='INSTALLDIR'>\n") |
|||
ENDIF() |
|||
|
|||
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) |
|||
FILE(APPEND ${file} " <Component Id='component.${id}' Guid='*'>\n") |
|||
FILE(APPEND ${file} " <File Id='file.${id}' KeyPath='yes' Source='${f_native}'/>\n") |
|||
FILE(APPEND ${file} " </Component>\n") |
|||
FILE(APPEND ${file_comp} " <ComponentRef Id='component.${id}'/>\n") |
|||
ENDIF() |
|||
ENDFOREACH() |
|||
FILE(APPEND ${file} "</DirectoryRef>\n") |
|||
FOREACH(f ${all_files}) |
|||
IF(IS_DIRECTORY ${f}) |
|||
TRAVERSE_FILES(${f} ${topdir} ${file} ${file_comp} ${dir_root}) |
|||
ENDIF() |
|||
ENDFOREACH() |
|||
ENDFUNCTION() |
|||
|
|||
FUNCTION(TRAVERSE_DIRECTORIES dir topdir file prefix) |
|||
FILE(RELATIVE_PATH rel ${topdir} ${dir}) |
|||
IF(rel AND IS_DIRECTORY "${f}") |
|||
MAKE_WIX_IDENTIFIER("${rel}" id) |
|||
GET_FILENAME_COMPONENT(name ${dir} NAME) |
|||
FILE(APPEND ${file} "${prefix}<Directory Id='directory.${id}' Name='${name}'>\n") |
|||
ENDIF() |
|||
FILE(GLOB all_files ${dir}/*) |
|||
FOREACH(f ${all_files}) |
|||
IF(IS_DIRECTORY ${f}) |
|||
TRAVERSE_DIRECTORIES(${f} ${topdir} ${file} "${prefix} ") |
|||
ENDIF() |
|||
ENDFOREACH() |
|||
IF(rel AND IS_DIRECTORY "${f}") |
|||
FILE(APPEND ${file} "</Directory>\n") |
|||
ENDIF() |
|||
ENDFUNCTION() |
|||
|
|||
|
|||
GET_FILENAME_COMPONENT(abs . ABSOLUTE) |
|||
FOREACH(d ${DIRS}) |
|||
GET_FILENAME_COMPONENT(d ${d} ABSOLUTE) |
|||
GET_FILENAME_COMPONENT(d_name ${d} NAME) |
|||
FILE(WRITE |
|||
${abs}/${d_name}.wxs "<Wix xmlns='http://schemas.microsoft.com/wix/2006/wi'>\n<Fragment>\n") |
|||
FILE(WRITE |
|||
${abs}/${d_name}_component_group.wxs "<Wix xmlns='http://schemas.microsoft.com/wix/2006/wi'>\n<Fragment>\n<ComponentGroup Id='componentgroup.${d_name}'>\n") |
|||
TRAVERSE_FILES(${d} ${d} ${abs}/${d_name}.wxs ${abs}/${d_name}_component_group.wxs "${abs}/dirs") |
|||
FILE(APPEND ${abs}/${d_name}.wxs " </Fragment>\n</Wix>") |
|||
FILE(APPEND ${abs}/${d_name}_component_group.wxs "</ComponentGroup>\n</Fragment>\n</Wix>") |
|||
ENDFOREACH() |
|||
FILE(WRITE directories.wxs "<Wix xmlns='http://schemas.microsoft.com/wix/2006/wi'>\n<Fragment>\n<DirectoryRef Id='INSTALLDIR'>\n") |
|||
TRAVERSE_DIRECTORIES(${abs}/dirs ${abs}/dirs directories.wxs "") |
|||
FILE(APPEND directories.wxs "</DirectoryRef>\n</Fragment>\n</Wix>\n") |
|||
|
|||
EXECUTE_PROCESS( |
|||
COMMAND ${CANDLE_EXECUTABLE} *.wxs |
|||
COMMAND ${LIGHT_EXECUTABLE} -ext WixUIExtension *.wixobj -out ${CPACK_PACKAGE_FILE_NAME}.msi |
|||
) |
|||
|
|||
@ -0,0 +1,40 @@ |
|||
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"> |
|||
<Product Id="*" UpgradeCode="49EB7A6A-1CEF-4A1E-9E89-B9A4993963E3" |
|||
Name="MySQL Server @MAJOR_VERSION@.@MINOR_VERSION@" Version="@MAJOR_VERSION@.@MINOR_VERSION@.@PATCH@" Language="1033" Manufacturer="MySQL AB"> |
|||
<Package Id='*' Keywords='Installer' Description="MySQL Database Server" |
|||
Manufacturer='MySQL AB' |
|||
InstallerVersion='310' Languages='1033' Compressed='yes' SummaryCodepage='1252' /> |
|||
<Media Id='1' Cabinet='product.cab' EmbedCab='yes' /> |
|||
<Directory Id='TARGETDIR' Name='SourceDir'> |
|||
<Directory Id='ProgramFilesFolder'> |
|||
<Directory Id='directory.MySQL' Name='MySQL'> |
|||
<Directory Id='INSTALLDIR' Name='MySQL Server @MAJOR_VERSION@.@MINOR_VERSION@'> |
|||
</Directory> |
|||
</Directory> |
|||
</Directory> |
|||
</Directory> |
|||
<Directory Id="CommonAppDataFolder"> |
|||
<Directory Id="directory.Data.MySQL" Name="MySQL"> |
|||
<Directory Id="DATADIR" LongName="MySQL Server @MAJOR_VERSION@.@MINOR_VERSION@" src=".\"> |
|||
<Directory Id="DATADIR" Name="."> |
|||
<!-- ***************************************************************************************** |
|||
data directory |
|||
--> |
|||
<Directory Id="DataDir" Name="data"> |
|||
<Directory Id="mysql" Name="mysql"> |
|||
<Feature Id='Server' Level='1' Title="MySQL Server" Description="Install MySQL server" Display="expand"> |
|||
<ComponentGroupRef Id='componentgroup.Server'/> |
|||
<Feature Level='1' Id='ClientPrograms' Title="Client Programs" Description="Various helpful (commandline) tools including the mysql command line client" > |
|||
<ComponentRef Id="componentgroup.Client" /> |
|||
</Feature> |
|||
</Feature> |
|||
<Feature Id='Devel' Level='1' Title="Development Components" |
|||
Description="Installs C/C++ header files and libraries"> |
|||
<ComponentGroupRef Id='componentgroup.Development' /> |
|||
</Feature> |
|||
<UIRef Id="WixUI_FeatureTree" /> |
|||
<UIRef Id="WixUI_ErrorProgressText" /> |
|||
<WixVariable Id="WixUIBannerBmp" Value="@CMAKE_CURRENT_SOURCE_DIR@/AdminHeader.jpg" /> |
|||
<WixVariable Id="WixUIDialogBmp" Value="@CMAKE_CURRENT_SOURCE_DIR@/AdminBackground.jpg" /> |
|||
</Product> |
|||
</Wix> |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue