aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/intel-mkl/copy-from-dmg.cmake
diff options
context:
space:
mode:
authorEthan Morgan <ethan@gweithio.com>2026-02-14 16:44:06 +0000
committerEthan Morgan <ethan@gweithio.com>2026-02-14 16:44:06 +0000
commit54409423f767d8b1cf30cb7d0efca6b4ca138823 (patch)
treed915ac7828703ce4b963efdd9728a1777ba18c1e /vcpkg/ports/intel-mkl/copy-from-dmg.cmake
move to own git serverHEADmaster
Diffstat (limited to 'vcpkg/ports/intel-mkl/copy-from-dmg.cmake')
-rw-r--r--vcpkg/ports/intel-mkl/copy-from-dmg.cmake53
1 files changed, 53 insertions, 0 deletions
diff --git a/vcpkg/ports/intel-mkl/copy-from-dmg.cmake b/vcpkg/ports/intel-mkl/copy-from-dmg.cmake
new file mode 100644
index 0000000..a5aa67c
--- /dev/null
+++ b/vcpkg/ports/intel-mkl/copy-from-dmg.cmake
@@ -0,0 +1,53 @@
+find_program(HDIUTIL NAMES hdiutil REQUIRED)
+set(dmg_path "NOTFOUND" CACHE FILEPATH "Where to find the DMG")
+set(output_dir "output_dir" CACHE FILEPATH "Where to put the packages")
+
+if(NOT EXISTS "${dmg_path}")
+ message(FATAL_ERROR "'dmg_path' (${dmg_path}) does not exist.")
+endif()
+if(NOT IS_DIRECTORY "${output_dir}")
+ message(FATAL_ERROR "'output_dir' (${output_dir}) is not a directory.")
+endif()
+
+execute_process(
+ COMMAND mktemp -d
+ RESULT_VARIABLE mktemp_result
+ OUTPUT_VARIABLE mount_point
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+)
+if(NOT mktemp_result STREQUAL "0")
+ message(FATAL_ERROR "mktemp -d failed: ${mktemp_result}")
+elseif(NOT IS_DIRECTORY "${mount_point}")
+ message(FATAL_ERROR "'mount_point' (${mount_point}) is not a directory.")
+endif()
+
+execute_process(
+ COMMAND "${HDIUTIL}" attach "${dmg_path}" -mountpoint "${mount_point}" -readonly
+ RESULT_VARIABLE mount_result
+)
+if(mount_result STREQUAL "0")
+ set(dmg_packages_dir "${mount_point}/bootstrapper.app/Contents/Resources/packages")
+ file(GLOB packages
+ "${dmg_packages_dir}/intel.oneapi.mac.mkl.devel,*"
+ "${dmg_packages_dir}/intel.oneapi.mac.mkl.runtime,*"
+ "${dmg_packages_dir}/intel.oneapi.mac.mkl.product,*"
+ "${dmg_packages_dir}/intel.oneapi.mac.openmp,*"
+ )
+ # Using execute_process to avoid direct errors
+ execute_process(
+ COMMAND cp -R ${packages} "${output_dir}/"
+ RESULT_VARIABLE copy_result
+ )
+endif()
+execute_process(
+ COMMAND "${HDIUTIL}" detach "${mount_point}"
+ RESULT_VARIABLE unmount_result
+)
+
+if(NOT mount_result STREQUAL "0")
+ message(FATAL_ERROR "Mounting ${dmg_path} failed: ${mount_result}")
+elseif(NOT copy_result STREQUAL "0")
+ message(FATAL_ERROR "Coyping packages failed: ${copy_result}")
+elseif(NOT unmount_result STREQUAL "0")
+ message(FATAL_ERROR "Unounting ${dmg_path} failed: ${unmount_result}")
+endif()