@@ -340,6 +340,9 @@ set(HELLOIMGUI_EMSCRIPTEN_PTHREAD OFF)
340340set (HELLOIMGUI_EMSCRIPTEN_PTHREAD_ALLOW_MEMORY_GROWTH OFF )
341341set (IMGUI_DISABLE_OBSOLETE_FUNCTIONS ON )
342342
343+ # Prevent dependencies from installing their files
344+ set (CMAKE_SKIP_INSTALL_ALL_DEPENDENCY TRUE )
345+
343346CPMAddPackage(
344347 NAME hello_imgui
345348 GITHUB_REPOSITORY pthom/hello_imgui
@@ -348,6 +351,7 @@ CPMAddPackage(
348351 GIT_TAG v1.92.5
349352 OPTIONS "HELLOIMGUI_EMSCRIPTEN_PTHREAD OFF" "HELLOIMGUI_EMSCRIPTEN_PTHREAD_ALLOW_MEMORY_GROWTH OFF"
350353 "IMGUI_DISABLE_OBSOLETE_FUNCTIONS ON"
354+ EXCLUDE_FROM_ALL YES
351355 SYSTEM YES
352356)
353357if (hello_imgui_ADDED)
@@ -1479,8 +1483,69 @@ set(CPACK_RESOURCE_FILE_README "${CMAKE_CURRENT_SOURCE_DIR}/README.md")
14791483set (CPACK_PACKAGE_INSTALL_DIRECTORY "${PROJECT_NAME} " )
14801484
14811485if (APPLE )
1482- install (TARGETS HDRView BUNDLE DESTINATION ${CMAKE_INSTALL_PREFIX} )
1486+ install (TARGETS HDRView BUNDLE DESTINATION . COMPONENT Runtime )
14831487 set (CPACK_GENERATOR "DragNDrop" )
1488+
1489+ # Strip leading 'v' from VERSION if present for app naming
1490+ string (REGEX REPLACE "^v" "" VERSION_NO_V "${VERSION} " )
1491+
1492+ # Rename app bundle to include version
1493+ set (VERSIONED_APP_NAME "HDRView ${VERSION_NO_V} .app" )
1494+ install (CODE "
1495+ if(EXISTS \"\$ {CMAKE_INSTALL_PREFIX}/HDRView.app\" )
1496+ file(RENAME
1497+ \"\$ {CMAKE_INSTALL_PREFIX}/HDRView.app\"
1498+ \"\$ {CMAKE_INSTALL_PREFIX}/${VERSIONED_APP_NAME} \" )
1499+ endif()
1500+ " COMPONENT Runtime)
1501+
1502+ # Bundle dependencies using dylibbundler when packaging
1503+ find_program (DYLIBBUNDLER_EXECUTABLE dylibbundler)
1504+ if (DYLIBBUNDLER_EXECUTABLE)
1505+ install (CODE "
1506+ execute_process(
1507+ COMMAND ${DYLIBBUNDLER_EXECUTABLE} -od -b
1508+ -x \"\$ {CMAKE_INSTALL_PREFIX}/${VERSIONED_APP_NAME} /Contents/MacOS/HDRView\"
1509+ -d \"\$ {CMAKE_INSTALL_PREFIX}/${VERSIONED_APP_NAME} /Contents/libs/\"
1510+ RESULT_VARIABLE DYLIB_RESULT
1511+ )
1512+ if(NOT DYLIB_RESULT EQUAL 0)
1513+ message(WARNING \" dylibbundler failed with code \$ {DYLIB_RESULT}\" )
1514+ endif()
1515+ " COMPONENT Runtime)
1516+ else ()
1517+ message (STATUS "dylibbundler not found - DMG will not include bundled dependencies" )
1518+ endif ()
1519+
1520+ # CPack DragNDrop settings
1521+ set (CPACK_DMG_VOLUME_NAME "HDRView Installer" )
1522+ set (CPACK_DMG_FORMAT "UDBZ" )
1523+
1524+ # Determine architecture suffix for DMG filename
1525+ if (CMAKE_OSX_ARCHITECTURES MATCHES "arm64" OR CMAKE_SYSTEM_PROCESSOR MATCHES "arm64|aarch64" )
1526+ set (ARCH_SUFFIX "Apple-Silicon" )
1527+ elseif (CMAKE_OSX_ARCHITECTURES MATCHES "x86_64" OR CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64|AMD64" )
1528+ set (ARCH_SUFFIX "Intel" )
1529+ elseif (CMAKE_OSX_ARCHITECTURES MATCHES "arm64;x86_64|x86_64;arm64" )
1530+ set (ARCH_SUFFIX "Universal" )
1531+ else ()
1532+ set (ARCH_SUFFIX "macOS" )
1533+ endif ()
1534+
1535+ # Set custom DMG filename: e.g. HDRView-v2.7.0-Apple-Silicon.dmg
1536+ set (CPACK_PACKAGE_FILE_NAME "HDRView-${VERSION} -${ARCH_SUFFIX} " )
1537+
1538+ # Configure the AppleScript with the versioned app name
1539+ configure_file (
1540+ "${CMAKE_SOURCE_DIR} /cmake/DMGSetup.scpt.in"
1541+ "${CMAKE_BINARY_DIR} /DMGSetup.scpt"
1542+ @ONLY
1543+ )
1544+ set (CPACK_DMG_DS_STORE_SETUP_SCRIPT "${CMAKE_BINARY_DIR} /DMGSetup.scpt" )
1545+
1546+ # Only install Runtime component to avoid dependency files
1547+ set (CPACK_COMPONENTS_ALL Runtime)
1548+ set (CPACK_INSTALL_CMAKE_PROJECTS "${CMAKE_BINARY_DIR} ;${PROJECT_NAME} ;Runtime;/" )
14841549endif ()
14851550
14861551include (CPack)
0 commit comments