Commits


Niyas Sait authored and Yibo Cai committed 0f3e36e6b8d
ARROW-9688: [C++][Python] Enable building c++ library and pyarrow package for win/arm64 build The patch will enable building arrow c++ library and pyarrow package for windows/arm64 targets using clang-cl and ninja toolchain. The patch contains steps to build c++ library for basic configuration. Library with Python can be built similar to other platforms. MSVC cannot be yet used for win/arm64 build as some of the templates from xsimd and boost are not properly handled by MSVC. PyArrow can be built with Ninja and clang-cl by setting the following environment variables ``` set PYARROW_CMAKE_GENERATOR="Ninja" set PYARROW_CMAKE_OPTIONS="-DCMAKE_C_COMPILER=clang-cl -DCMAKE_CXX_COMPILER=clang-cl" ``` PyArrow tests are all passing ``` =============================================================================== test session starts =============================================================================== platform win32 -- Python 3.9.7, pytest-6.2.5, py-1.10.0, pluggy-1.0.0 rootdir: C:\users\niysai01\workspace\arrow\python, configfile: setup.cfg plugins: hypothesis-6.23.2, lazy-fixture-0.6.3 collected 4106 items / 3 skipped / 4103 selected pyarrow\tests\test_adhoc_memory_leak.py s [ 0%] pyarrow\tests\test_array.py ......................s...............................................................................................s......................... [ 3%] ....................................................ss........... [ 5%] pyarrow\tests\test_builder.py .... [ 5%] pyarrow\tests\test_cffi.py .......... [ 5%] pyarrow\tests\test_compute.py .............................................................................................................................................. [ 8%] ...................................sss.................... [ 10%] pyarrow\tests\test_convert_builtin.py ...................................................................................................................................... [ 13%] .............................................................................x......................................................................................x....... [ 17%] ................ssssss........................................................................................................sssssssss [ 21%] pyarrow\tests\test_csv.py ......................................................................................................sss....... [ 23%] pyarrow\tests\test_cython.py .. [ 23%] pyarrow\tests\test_dataset.py ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 27%] ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 31%] sssssssssssssssssssssssss [ 32%] pyarrow\tests\test_extension_type.py ..............................sssss.. [ 33%] pyarrow\tests\test_feather.py ............s...............ss..............s...............ss...x.....ss.s...ssss [ 34%] pyarrow\tests\test_filesystem.py .... [ 35%] pyarrow\tests\test_flight.py ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 36%] pyarrow\tests\test_fs.py s.......ssx.xsss...ssx.xsss....ss...sss...ss...sss...ss...sss...ss...sss...ss...sss...ss...sss...ss...sss....ss...sss...ss...sss...ss...sss...ss... [ 40%] sssssssssssssssssssssssssssssssssssssssssssssss...ss...sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss...ss...sss....sss........ [ 44%] .......s...........sss. [ 44%] pyarrow\tests\test_gandiva.py sssssssssss [ 45%] pyarrow\tests\test_hdfs.py ssssssssssssssssssssssss [ 45%] pyarrow\tests\test_io.py ........s..........................ssssssssssss..........s...s..............sssssss.....sssssssssss..........s..s.sss....s.s.s. [ 48%] pyarrow\tests\test_ipc.py ...............s..............s.................... [ 50%] pyarrow\tests\test_json.py .......................... [ 50%] pyarrow\tests\test_memory.py ........ [ 50%] pyarrow\tests\test_misc.py ................................................................................................ [ 53%] pyarrow\tests\test_orc.py sssss [ 53%] pyarrow\tests\test_pandas.py .............................................................s............................sss.................................................. [ 56%] ...s.........s............................................................s...................................................................s.............. [ 60%] pyarrow\tests\test_plasma.py sssssssssssssssssssssssssssssssss [ 61%] pyarrow\tests\test_plasma_tf_op.py s [ 61%] pyarrow\tests\test_scalars.py ..............................................s...s.................... [ 63%] pyarrow\tests\test_schema.py ................................ [ 64%] pyarrow\tests\test_serialization.py ........s..ss........................................................................................................................... [ 67%] .........................................................ss................................................................................................................. [ 71%] ...............................................................s............................................................................................................ [ 75%] ....................................................................s....................................................................................................... [ 79%] ............................................................................s.............. [ 82%] pyarrow\tests\test_serialization_deprecated.py .. [ 82%] pyarrow\tests\test_sparse_tensor.py ....................................................................................................................................ssss [ 85%] sssssssssssssssssssssssssssss [ 86%] pyarrow\tests\test_strategies.py ssssssss [ 86%] pyarrow\tests\test_table.py ....................s......................................................................... [ 88%] pyarrow\tests\test_tensor.py ..............s...... [ 89%] pyarrow\tests\test_types.py .....................s............................................................ss [ 91%] pyarrow\tests\test_util.py s [ 91%] pyarrow\tests\parquet\test_basic.py ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 93%] pyarrow\tests\parquet\test_compliant_nested_type.py ssssssss [ 93%] pyarrow\tests\parquet\test_data_types.py ssssssssssssssssssssssssssssssssssssssssss [ 94%] pyarrow\tests\parquet\test_dataset.py ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 97%] pyarrow\tests\parquet\test_datetime.py ssssssssssssssssss [ 97%] pyarrow\tests\parquet\test_metadata.py ssssssssssssssssssssssssss [ 98%] pyarrow\tests\parquet\test_pandas.py ssssssssssssssssssssssssssssssssssssssssssssssss [ 99%] pyarrow\tests\parquet\test_parquet_file.py ssssssssssssss [ 99%] pyarrow\tests\parquet\test_parquet_writer.py ssssssssssssssss [100%] =========================================================== 2899 passed, 1203 skipped, 7 xfailed, 40 warnings in 56.11s =========================================================== ``` Closes #11383 from nsait-linaro/enable_win_arm64 Lead-authored-by: Niyas Sait <niyas.sait@linaro.org> Co-authored-by: Yibo Cai <yibo.cai@arm.com> Signed-off-by: Yibo Cai <yibo.cai@arm.com>