@@ -220,6 +220,60 @@ your system.
220
220
try again. The Fortran compiler should be installed as described in
221
221
this section.
222
222
223
+ .. tab-item :: Windows on ARM64
224
+ :sync: Windows on ARM64
225
+
226
+ In Windows on ARM64, the set of a compiler options that are available for
227
+ building NumPy are limited. Compilers such as GCC and GFortran are not yet
228
+ supported for Windows on ARM64. Currently, the NumPy build for Windows on ARM64
229
+ is supported with MSVC toolchain only. The use of a Fortran compiler is more
230
+ tricky than on other platforms, because MSVC does not support Fortran, and
231
+ gfortran and MSVC can't be used together. If you don't need to run the ``f2py ``
232
+ tests, simply using MSVC is easiest. Otherwise, you will need the following
233
+ set of compilers:
234
+
235
+ 1. MSVC + Flang-new (``flang-new ``)
236
+
237
+ First, install Microsoft Visual Studio - the 2022 Community Edition will
238
+ work(see the `Visual Studio download site <https://visualstudio.microsoft.com/downloads/ >`__).
239
+ In order to ensure you have the Windows Universal C Runtime (the other components
240
+ of Visual Studio can be deselected if desired, to save disk space). The
241
+ recommended version of the UCRT is >= 10.0.22621.0.
242
+
243
+ To use flang-new fortran compiler for Windows on ARM64, install Latest LLVM
244
+ toolchain for WoA from `here <https://github.com/llvm/llvm-project/releases >`__.
245
+
246
+ .. tab-set ::
247
+
248
+ .. tab-item :: MSVC
249
+
250
+ The MSVC installer does not put the compilers on the system path, and
251
+ the install location may change. To query the install location, MSVC
252
+ comes with a ``vswhere.exe `` command-line utility. And to make the
253
+ C/C++ compilers available inside the shell you are using, you need to
254
+ run a ``.bat `` file for the correct bitness and architecture (e.g., for
255
+ ARM64-based CPUs, use ``vcvarsarm64.bat ``).
256
+
257
+ For detailed guidance, see `Use the Microsoft C++ toolset from the command line
258
+ <https://learn.microsoft.com/en-us/cpp/build/building-on-the-command-line?view=msvc-170> `__.
259
+
260
+ .. note ::
261
+
262
+ Compilers should be on the system path (i.e., the ``PATH `` environment
263
+ variable should contain the directory in which the compiler executables
264
+ can be found) in order to be found, with the exception of MSVC which
265
+ will be found automatically if and only if there are no other compilers
266
+ on the ``PATH ``. You can use any shell (e.g., Powershell, ``cmd `` or
267
+ Git Bash) to invoke a build. To check that this is the case, try
268
+ invoking a Fortran compiler in the shell you use (e.g., ``flang-new
269
+ --version ``).
270
+
271
+ .. warning ::
272
+
273
+ Currently, Conda environment is not yet supported officially on `Windows
274
+ on ARM64 <https://github.com/conda-forge/conda-forge.github.io/issues/1940> `__.
275
+ The present approach uses virtualenv for building NumPy from source on
276
+ Windows on ARM64.
223
277
224
278
Building NumPy from source
225
279
--------------------------
@@ -302,7 +356,7 @@ Then you want to do the following:
302
356
1. Create a dedicated development environment (virtual environment or conda
303
357
environment),
304
358
2. Install all needed dependencies (*build *, and also *test *, *doc * and
305
- *optional * dependencies),
359
+ *optional * dependencies),
306
360
3. Build NumPy with the ``spin `` developer interface.
307
361
308
362
Step (3) is always the same, steps (1) and (2) are different between conda and
@@ -361,9 +415,25 @@ virtual environments:
361
415
python -m venv venv
362
416
.\venv\Scripts\activate
363
417
418
+ .. tab-item :: Windows on ARM64
419
+ :sync: Windows on ARM64
420
+
421
+ ::
422
+
423
+ python -m venv venv
424
+ .\venv\Scripts\activate
425
+
426
+ .. note ::
427
+
428
+ Building NumPy with BLAS and LAPACK functions requires OpenBLAS
429
+ library at Runtime. In Windows on ARM64, this can be done by setting
430
+ up pkg-config for OpenBLAS dependency. The build steps for OpenBLAS
431
+ for Windows on ARM64 can be found `here <https://github.com/OpenMathLib/OpenBLAS/blob/develop/docs/install.md#windows-on-arm >`__.
432
+
433
+
364
434
Then install the Python-level dependencies from PyPI with::
365
435
366
- python -m pip install -r requirements/all_requirements .txt
436
+ python -m pip install -r requirements/build_requirements .txt
367
437
368
438
To build NumPy in an activated development environment, run::
369
439
0 commit comments