From 193029c4aaad7a13f0b6efed59a1c88af0dc6714 Mon Sep 17 00:00:00 2001 From: Clinton Stimpson Date: Thu, 31 Oct 2013 20:14:58 -0600 Subject: cpack: For DragNDrop generator, add sysroot option when calling Rez. Also adding overwrite option (-ov) in case multiple temporary dmg files are being created. Fixes bug #14536. --- Modules/CPack.cmake | 5 +++++ Source/CPack/cmCPackDragNDropGenerator.cxx | 7 ++++++- Tests/CPackComponentsForAll/CMakeLists.txt | 3 ++- Tests/CPackComponentsForAll/license.txt | 3 +++ 4 files changed, 16 insertions(+), 2 deletions(-) create mode 100644 Tests/CPackComponentsForAll/license.txt diff --git a/Modules/CPack.cmake b/Modules/CPack.cmake index da6b2e0..cd98f49 100644 --- a/Modules/CPack.cmake +++ b/Modules/CPack.cmake @@ -519,6 +519,11 @@ cpack_set_if_not_set(CPACK_NSIS_INSTALLER_MUI_ICON_CODE "") # WiX specific variables cpack_set_if_not_set(CPACK_WIX_SIZEOF_VOID_P "${CMAKE_SIZEOF_VOID_P}") +# osx sysroot +if(CMAKE_OSX_SYSROOT) + set(CPACK_OSX_SYSROOT "${CMAKE_OSX_SYSROOT}") +endif() + if(DEFINED CPACK_COMPONENTS_ALL) if(CPACK_MONOLITHIC_INSTALL) message("CPack warning: both CPACK_COMPONENTS_ALL and CPACK_MONOLITHIC_INSTALL have been set.\nDefaulting to a monolithic installation.") diff --git a/Source/CPack/cmCPackDragNDropGenerator.cxx b/Source/CPack/cmCPackDragNDropGenerator.cxx index d973c01..ab386d3 100644 --- a/Source/CPack/cmCPackDragNDropGenerator.cxx +++ b/Source/CPack/cmCPackDragNDropGenerator.cxx @@ -474,7 +474,7 @@ int cmCPackDragNDropGenerator::CreateDMG(const std::string& src_dir, udco_image_command << this->GetOption("CPACK_COMMAND_HDIUTIL"); udco_image_command << " convert \"" << temp_image << "\""; udco_image_command << " -format UDCO"; - udco_image_command << " -o \"" << temp_udco << "\""; + udco_image_command << " -ov -o \"" << temp_udco << "\""; std::string error; if(!this->RunCommand(udco_image_command, &error)) @@ -504,6 +504,11 @@ int cmCPackDragNDropGenerator::CreateDMG(const std::string& src_dir, // Rez the SLA cmOStringStream embed_sla_command; embed_sla_command << this->GetOption("CPACK_COMMAND_REZ"); + const char* sysroot = this->GetOption("CPACK_OSX_SYSROOT"); + if(sysroot) + { + embed_sla_command << " -isysroot \"" << sysroot << "\""; + } embed_sla_command << " \"" << sla_r << "\""; embed_sla_command << " -a -o "; embed_sla_command << "\"" << temp_udco << "\""; diff --git a/Tests/CPackComponentsForAll/CMakeLists.txt b/Tests/CPackComponentsForAll/CMakeLists.txt index 8162f0c..ff40e30 100644 --- a/Tests/CPackComponentsForAll/CMakeLists.txt +++ b/Tests/CPackComponentsForAll/CMakeLists.txt @@ -59,6 +59,7 @@ set(CPACK_PACKAGE_VERSION_MAJOR "1") set(CPACK_PACKAGE_VERSION_MINOR "0") set(CPACK_PACKAGE_VERSION_PATCH "2") set(CPACK_PACKAGE_INSTALL_DIRECTORY "CPack Component Example") +set(CPACK_RESOURCE_FILE_LICENSE ${CMAKE_CURRENT_SOURCE_DIR}/license.txt) # Tell CPack all of the components to install. The "ALL" # refers to the fact that this is the set of components that @@ -120,4 +121,4 @@ if (NOT ("${CPackComponentWay}" STREQUAL "default")) set(CPACK_PROJECT_CONFIG_FILE ${CPackComponentsForAll_BINARY_DIR}/MyLibCPackConfig-${CPackComponentWay}.cmake) endif () # Include CPack to introduce the appropriate targets -include(CPack) \ No newline at end of file +include(CPack) diff --git a/Tests/CPackComponentsForAll/license.txt b/Tests/CPackComponentsForAll/license.txt new file mode 100644 index 0000000..ba8ba48 --- /dev/null +++ b/Tests/CPackComponentsForAll/license.txt @@ -0,0 +1,3 @@ +LICENSE +------- +This is an installer created using CPack (http://www.cmake.org). No license provided. -- cgit v0.12