From 1b6bf12b1113cafa183b441a9fb52c7d5617f702 Mon Sep 17 00:00:00 2001 From: Vladislav Vaintroub Date: Sat, 13 Nov 2010 19:38:39 +0100 Subject: [PATCH] Bug#58178: "make package" is broken with cmake 2.8.3 Problem: with "make package" , many small packages are generated, one per CMake COMPONENT, instead of expected single package. This is due to the new (in cmake 2.8.3) component-based install for archive( e.g ZIP,TGZ ) CPack generators. See http://public.kitware.com/Bug/view.php?id=11452 for discussion. Fix: use CPACK_MONOLITHIC_INSTALL=1 to enforce single package. Reset this variable temporarily to 0 for MSI creation (MSI needs COMPONENTs) --- CMakeLists.txt | 5 +++++ packaging/WiX/create_msi.cmake.in | 12 ++++++++++++ 2 files changed, 17 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 544c48f79f6..4078e520a08 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -331,6 +331,11 @@ ELSE() SET(CPACK_GENERATOR "TGZ") ENDIF() ADD_SUBDIRECTORY(packaging/WiX) + +# Create a single package with "make package" +# (see http://public.kitware.com/Bug/view.php?id=11452) +SET(CPACK_MONOLITHIC_INSTALL 1 CACHE INTERNAL "") + INCLUDE(CPack) IF(UNIX) INSTALL(FILES Docs/mysql.info DESTINATION ${INSTALL_INFODIR} OPTIONAL) diff --git a/packaging/WiX/create_msi.cmake.in b/packaging/WiX/create_msi.cmake.in index adc3cf4c4dd..404095fb567 100644 --- a/packaging/WiX/create_msi.cmake.in +++ b/packaging/WiX/create_msi.cmake.in @@ -27,6 +27,12 @@ ENDIF() SET(ENV{VS_UNICODE_OUTPUT}) +# Switch off the monolithic install +EXECUTE_PROCESS( + COMMAND ${CMAKE_COMMAND} -DCPACK_MONOLITHIC_INSTALL=0 ${CMAKE_BINARY_DIR} + OUTPUT_QUIET +) + INCLUDE(${CMAKE_BINARY_DIR}/CPackConfig.cmake) IF(CPACK_WIX_CONFIG) @@ -318,3 +324,9 @@ EXECUTE_PROCESS( ${EXTRA_LIGHT_ARGS} ) +# Switch monolithic install on again +EXECUTE_PROCESS( + COMMAND ${CMAKE_COMMAND} -DCPACK_MONOLITHIC_INSTALL=1 ${CMAKE_BINARY_DIR} + OUTPUT_QUIET +) +