@@ -9,6 +9,10 @@ package("mkl")
99 local mv = version :split (" %+" )
1010 return format (" win-64/mkl-static-%s-intel_%s" , mv [1 ], mv [2 ])
1111 end })
12+ add_urls (" https://software.repos.intel.com/python/conda/$(version).conda" , {alias = " conda" , version = function (version )
13+ local mv = version :split (" %+" )
14+ return format (" win-64/mkl-static-%s-intel_%s" , mv [1 ], mv [2 ])
15+ end })
1216 add_versions (" 2022.2.0+9563" , " 82ed56af423fa6f2fef46085e267695feb5fd079a5eabb6353a99598ff2a7879" )
1317 add_resources (" 2022.2.0+9563" , " headers" , " https://software.repos.intel.com/python/conda/win-64/mkl-include-2022.2.0-intel_9563.tar.bz2" , " da4458b2c8f86b7e8d2772e1d992b8913dd74fb9d0822559eb9538aa36125a45" )
1418 add_versions (" 2022.2.1+19754" , " a1c3592caeb248ec16698d2a0971b6c6fa8eae1ddfd0cc575d8ec1d02e607ee6" )
@@ -27,6 +31,8 @@ package("mkl")
2731 add_resources (" 2025.0.0+928" , " headers" , " https://software.repos.intel.com/python/conda/win-64/mkl-include-2025.0.0-intel_928.tar.bz2" , " 49c9e263a3a3cb2a6929900bfa66a19449cdaeee2da8a821aa8aa7e2fbaf9240" )
2832 add_versions (" 2025.0.1+5" , " 799d83e6d4474d52bcbee61b5697f0b32a7993b335c5cee504a0fb9e97e9b65a" )
2933 add_resources (" 2025.0.1+5" , " headers" , " https://software.repos.intel.com/python/conda/win-64/mkl-include-2025.0.1-intel_5.tar.bz2" , " 2492bf11b16bf9b911d65398bbca4f848b7b3b344a483b132a6a5aa68ff3d95c" )
34+ add_versions (" conda:2025.1.0+798" , " e7e905c58aae00b6497c3feb2208bdd83700293160703ca4371896c3a692ac93" )
35+ add_resources (" 2025.1.0+798" , " headers" , " https://software.repos.intel.com/python/conda/win-64/mkl-include-2025.1.0-intel_798.conda" , " 95f4cb0304186d6638f0033628b802d32791ba907198e32715c156f369ff67cc" )
3036 elseif is_arch (" x86" ) then
3137 add_urls (" https://software.repos.intel.com/python/conda/$(version).tar.bz2" , {version = function (version )
3238 local mv = version :split (" %+" )
@@ -64,6 +70,10 @@ package("mkl")
6470 local mv = version :split (" %+" )
6571 return format (" linux-64/mkl-static-%s-intel_%s" , mv [1 ], mv [2 ])
6672 end })
73+ add_urls (" https://software.repos.intel.com/python/conda/$(version).conda" , {alias = " conda" , version = function (version )
74+ local mv = version :split (" %+" )
75+ return format (" linux-64/mkl-static-%s-intel_%s" , mv [1 ], mv [2 ])
76+ end })
6777 add_versions (" 2022.2.0+8748" , " cbcff4024be9830a9fb7f640d4555ea4f3a9c4dd503df67a42f11b940286b7b3" )
6878 add_resources (" 2022.2.0+8748" , " headers" , " https://software.repos.intel.com/python/conda/linux-64/mkl-include-2022.2.0-intel_8748.tar.bz2" , " 9dd06c499ec890294b2909a0784303e94b14d88c6e95ae4ffee308f16fd55121" )
6979 add_versions (" 2022.2.1+16993" , " 4f1e738b7b54763a211b52702dea763d1c5dff352cb14a6155244634b58b28f9" )
@@ -80,6 +90,8 @@ package("mkl")
8090 add_resources (" 2025.0.0+939" , " headers" , " https://software.repos.intel.com/python/conda/linux-64/mkl-include-2025.0.0-intel_939.tar.bz2" , " e3c02344b0405d90c7b992493a081f1f763fa96493626a5da1fe7693040a486f" )
8191 add_versions (" 2025.0.1+14" , " aa1e600d0c26b4fe7960bae84489162efbd03ee76c1fa2865630f9303768bdbe" )
8292 add_resources (" 2025.0.1+14" , " headers" , " https://software.repos.intel.com/python/conda/linux-64/mkl-include-2025.0.1-intel_14.tar.bz2" , " a8cef2bc84c135a38031f3bb5b0ec1c42cbb8e8e969754f91c25d50a19fda22b" )
93+ add_versions (" conda:2025.1.0+801" , " 9edb8ef62d24646506dd2afc8160ea84ff9c9add8c63cbbd420d63283a16a541" )
94+ add_resources (" 2025.1.0+801" , " headers" , " https://software.repos.intel.com/python/conda/linux-64/mkl-include-2025.1.0-intel_801.conda" , " ccf54c873bb7527dc1aab08e7ab731e89d399c09f4cd94db374807a7d78f7902" )
8395 elseif is_arch (" i386" ) then
8496 add_urls (" https://software.repos.intel.com/python/conda/$(version).tar.bz2" , {version = function (version )
8597 local mv = version :split (" %+" )
@@ -158,7 +170,46 @@ package("mkl")
158170 end )
159171
160172 on_install (" windows|!arm64" , " macosx|!arm64" , " linux|x86_64" , " linux|i386" , function (package )
173+ import (" lib.detect.find_tool" )
161174 local headerdir = package :resourcedir (" headers" )
175+ -- Only proceed if library files don't already exist
176+ if not (os.exists (" lib" ) or os.exists (" Library" )) then
177+ -- Get version components for filename construction
178+ local mv = package :version ():split (" %+" )
179+ local lib_filename = format (" mkl-static-%s-intel_%s" , mv [1 ], mv [2 ])
180+ local inc_filename = format (" mkl-include-%s-intel_%s" , mv [1 ], mv [2 ])
181+ -- Find required tools
182+ local z7 = assert (find_tool (" 7z" ), " 7z tool not found!" )
183+ local zstd = assert (find_tool (" zstd" ), " zstd tool not found!" )
184+ -- Helper function to extract .conda -> .tar.zst -> .tar -> files
185+ local function extract_conda (conda_file )
186+ -- .conda -> .tar.zst
187+ os .vrunv (z7 .program , {" x" , " -y" , conda_file })
188+ local archivefile = " pkg-" .. path.basename (conda_file ) .. " .tar.zst"
189+ -- .tar.zst -> .tar
190+ local temp_tar = os .tmpfile () .. " .tar"
191+ os .vrunv (zstd .program , {" -d" , " -q" , " -o" , temp_tar , archivefile })
192+ -- .tar -> files
193+ os .vrunv (z7 .program , {" x" , " -y" , temp_tar })
194+ -- Clean up temporary files
195+ os .tryrm (temp_tar )
196+ os .tryrm (archivefile )
197+ end
198+ -- Process library files
199+ extract_conda (" ../" .. lib_filename .. " .conda" )
200+ -- Process header files
201+ extract_conda (path.join (headerdir , " ../" .. inc_filename .. " .conda" ))
202+ -- Move headers to the correct location
203+ if package :is_plat (" windows" ) then
204+ os .trymv (" Library/include" , path.join (headerdir , " Library" , " include" ))
205+ else
206+ os .trymv (" include" , headerdir )
207+ end
208+ -- Clean up remaining temporary files
209+ os .tryrm (" pkg-" .. lib_filename .. " .tar" )
210+ os .tryrm (" pkg-" .. inc_filename .. " .tar" )
211+ end
212+
162213 if package :is_plat (" windows" ) then
163214 os .trymv (path.join (" Library" , " lib" ), package :installdir ())
164215 os .trymv (path.join (headerdir , " Library" , " include" ), package :installdir ())
0 commit comments