From 50147984acbfad00f82abee39855cbffb5d2d289 Mon Sep 17 00:00:00 2001 From: Vladislav Vaintroub Date: Fri, 23 Apr 2010 14:25:45 +0200 Subject: Create MySQL data folder in %ProgramData% directory. Note that a read only copy will still exist in the ProgramFiles directory (so it can be reused for other instances) --- packaging/WiX/CMakeLists.txt | 27 +++++++-- packaging/WiX/create_msi.cmake.in | 27 +++++---- packaging/WiX/extra.wxs.in | 117 +++++++++++++++++++++++++++----------- packaging/WiX/mysql_server.wxs.in | 8 ++- 4 files changed, 129 insertions(+), 50 deletions(-) (limited to 'packaging') diff --git a/packaging/WiX/CMakeLists.txt b/packaging/WiX/CMakeLists.txt index 9cd043e001b..f3fa3eb7a30 100644 --- a/packaging/WiX/CMakeLists.txt +++ b/packaging/WiX/CMakeLists.txt @@ -18,28 +18,47 @@ IF(NOT WIX_DIR) RETURN() ENDIF() +# extra.wxs.in needs DATADIR_MYSQL_FILES and DATADIR_PERFORMANCE_SCHEMA_FILES, i.e +# Wix-compatible file lists for ${builddir}\sql\data\{mysql,performance_schema} + +FOREACH(dir mysql performance_schema) + FILE(GLOB files ${CMAKE_BINARY_DIR}/sql/data/${dir}/*) + SET(filelist) + FOREACH(f ${files}) + FILE(TO_NATIVE_PATH "${f}" file_native_path) + GET_FILENAME_COMPONENT(file_name "${f}" NAME) + SET(filelist +"${filelist} +") + ENDFOREACH() + STRING(TOUPPER ${dir} DIR_UPPER) + SET(DATADIR_${DIR_UPPER}_FILES "${filelist}") +ENDFOREACH() + + 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) CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/extra.wxs.in ${CMAKE_CURRENT_BINARY_DIR}/extra.wxs - @ONLY@ + @ONLY ) IF(CMAKE_GENERATOR MATCHES "Visual Studio") SET(CONFIG_PARAM "-DCMAKE_INSTALL_CONFIG_NAME=${CMAKE_CFG_INTDIR}") ENDIF() + ADD_CUSTOM_TARGET( MSI COMMAND set VS_UNICODE_OUTPUT= COMMAND ${CMAKE_COMMAND} -DCPACK_WIX_CONFIG=${CMAKE_CURRENT_SOURCE_DIR}/CPackWixConfig.cmake - -DCPACK_WIX_EXTRA_SOURCE=${CMAKE_CURRENT_BINARY_DIR}/extra.wxs + -DCPACK_WIX_INCLUDE=${CMAKE_CURRENT_BINARY_DIR}/extra.wxs ${CONFIG_PARAM} -P ${CMAKE_CURRENT_BINARY_DIR}/create_msi.cmake ) @@ -49,7 +68,7 @@ ADD_CUSTOM_TARGET( COMMAND set VS_UNICODE_OUTPUT= COMMAND ${CMAKE_COMMAND} -DESSENTIALS=1 -DCPACK_WIX_CONFIG=${CMAKE_CURRENT_SOURCE_DIR}/CPackWixConfig.cmake - -DCPACK_WIX_EXTRA_SOURCE=${CMAKE_CURRENT_BINARY_DIR}/extra.wxs + -DCPACK_WIX_INCLUDE=${CMAKE_CURRENT_BINARY_DIR}/extra.wxs ${CONFIG_PARAM} -P ${CMAKE_CURRENT_BINARY_DIR}/create_msi.cmake ) diff --git a/packaging/WiX/create_msi.cmake.in b/packaging/WiX/create_msi.cmake.in index 92bba7d34e9..dc60123b58a 100644 --- a/packaging/WiX/create_msi.cmake.in +++ b/packaging/WiX/create_msi.cmake.in @@ -274,21 +274,24 @@ FILE(APPEND directories.wxs "\n") FILE(READ directories.wxs CPACK_WIX_DIRECTORIES) FILE(REMOVE directories.wxs) + +FOREACH(src ${CPACK_WIX_INCLUDE}) +SET(CPACK_WIX_INCLUDES +"${CPACK_WIX_INCLUDES} + " +) +ENDFOREACH() + + CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/mysql_server.wxs.in ${CMAKE_CURRENT_BINARY_DIR}/mysql_server.wxs) - - -SET(WXS_FILES ${CMAKE_CURRENT_BINARY_DIR}/mysql_server.wxs ${CPACK_WIX_EXTRA_SOURCE}) -SET(WIXOBJ_NATIVE_FILES) -SET(WXS_NATIVE_FILES) -FOREACH(f "${WXS_FILES}") - FILE(TO_NATIVE_PATH "${f}" f) - EXECUTE_PROCESS(COMMAND ${CANDLE_EXECUTABLE} ${f}) - STRING(REPLACE ".wxs" ".wixobj" f "${f}") - LIST(APPEND WIXOBJ_NATIVE_FILES ${f}) -ENDFOREACH() +FILE(REMOVE mysql_server.wixobj) +EXECUTE_PROCESS( + COMMAND ${CANDLE_EXECUTABLE} -ext WixUtilExtension mysql_server.wxs +) EXECUTE_PROCESS( - COMMAND ${LIGHT_EXECUTABLE} -ext WixUIExtension ${WIXOBJ_NATIVE_FILES} -out ${CPACK_PACKAGE_FILE_NAME}.msi + COMMAND ${LIGHT_EXECUTABLE} -ext WixUIExtension -ext WixUtilExtension + mysql_server.wixobj -out ${CPACK_PACKAGE_FILE_NAME}.msi ) diff --git a/packaging/WiX/extra.wxs.in b/packaging/WiX/extra.wxs.in index b1286bfba61..78e6f96dbcc 100644 --- a/packaging/WiX/extra.wxs.in +++ b/packaging/WiX/extra.wxs.in @@ -1,32 +1,85 @@ - - - - - - - - - - - - - - - - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @DATADIR_MYSQL_FILES@ + + + + + @DATADIR_PERFORMANCE_SCHEMA_FILES@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packaging/WiX/mysql_server.wxs.in b/packaging/WiX/mysql_server.wxs.in index 30baefbf64b..8c2b839c6e7 100644 --- a/packaging/WiX/mysql_server.wxs.in +++ b/packaging/WiX/mysql_server.wxs.in @@ -1,4 +1,5 @@ - + @CPACK_WIX_COMPONENT_GROUPS@ + + @CPACK_WIX_INCLUDES@ - + + \ No newline at end of file -- cgit v1.2.1