From 82d8351f98f8e7e765c6fa8fc0957931718a1379 Mon Sep 17 00:00:00 2001 From: Paulo Abreu Date: Fri, 27 Mar 2026 16:01:46 +0100 Subject: [PATCH 1/2] Adding UDA support for macOS --- .github/workflows/wheels.yml | 25 +++++++++++++++---------- CMakeLists.txt | 3 --- pyproject.toml | 9 +++++++-- 3 files changed, 22 insertions(+), 15 deletions(-) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index 4430d290..24bda5f5 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -86,7 +86,7 @@ jobs: cibw_archs: arm64 AL_BACKEND_HDF5: AL_BACKEND_HDF5=ON AL_BACKEND_MDSPLUS: AL_BACKEND_MDSPLUS=OFF - AL_BACKEND_UDA: AL_BACKEND_UDA=OFF + AL_BACKEND_UDA: AL_BACKEND_UDA=ON UDA_REF: "2.9.3" - os: macos-14 @@ -97,7 +97,7 @@ jobs: cibw_archs: arm64 AL_BACKEND_HDF5: AL_BACKEND_HDF5=ON AL_BACKEND_MDSPLUS: AL_BACKEND_MDSPLUS=OFF - AL_BACKEND_UDA: AL_BACKEND_UDA=OFF + AL_BACKEND_UDA: AL_BACKEND_UDA=ON UDA_REF: "2.9.3" - os: macos-14 @@ -108,7 +108,7 @@ jobs: cibw_archs: arm64 AL_BACKEND_HDF5: AL_BACKEND_HDF5=ON AL_BACKEND_MDSPLUS: AL_BACKEND_MDSPLUS=OFF - AL_BACKEND_UDA: AL_BACKEND_UDA=OFF + AL_BACKEND_UDA: AL_BACKEND_UDA=ON UDA_REF: "2.9.3" - os: macos-14 @@ -119,7 +119,7 @@ jobs: cibw_archs: arm64 AL_BACKEND_HDF5: AL_BACKEND_HDF5=ON AL_BACKEND_MDSPLUS: AL_BACKEND_MDSPLUS=OFF - AL_BACKEND_UDA: AL_BACKEND_UDA=OFF + AL_BACKEND_UDA: AL_BACKEND_UDA=ON UDA_REF: "2.9.3" - os: macos-14 @@ -130,7 +130,7 @@ jobs: cibw_archs: arm64 AL_BACKEND_HDF5: AL_BACKEND_HDF5=ON AL_BACKEND_MDSPLUS: AL_BACKEND_MDSPLUS=OFF - AL_BACKEND_UDA: AL_BACKEND_UDA=OFF + AL_BACKEND_UDA: AL_BACKEND_UDA=ON UDA_REF: "2.9.3" - os: windows-2022 @@ -347,10 +347,15 @@ jobs: cmake.define.${{ matrix.AL_BACKEND_MDSPLUS }} cmake.define.${{ matrix.AL_BACKEND_UDA }} - # Dependency installationinto /tmp + # Dependency installation into /tmp/imas-core-install CIBW_BEFORE_ALL_MACOS: > brew update >&2; - brew install cmake pkg-config boost hdf5 libomp ninja fmt spdlog libxml2 openssl capnp libmemcached >&2; + brew install cmake pkg-config boost hdf5 libomp ninja fmt spdlog libxml2 openssl libmemcached >&2; + git clone -b master https://github.com/capnproto/capnproto.git >&2 && + cd capnproto >&2; + cmake -B build . \ + -DCMAKE_INSTALL_PREFIX=/tmp/imas-core-install >&2 && + cmake --build build --target install -j >&2; git clone --depth 1 --branch ${{ matrix.UDA_REF }} https://github.com/ukaea/UDA.git >&2 && cd UDA >&2; cmake -G Ninja -B build . \ @@ -359,14 +364,14 @@ jobs: -DCLIENT_ONLY=ON \ -DENABLE_CAPNP=ON \ -DMACOSX_DEPLOYMENT_TARGET=14.0 \ - -DCMAKE_INSTALL_PREFIX=/tmp/uda-install >&2 && + -DCMAKE_INSTALL_PREFIX=/tmp/imas-core-install >&2 && cmake --build build --target install -j >&2; # Where to find the dependencies CIBW_ENVIRONMENT_MACOS: > MACOSX_DEPLOYMENT_TARGET=14.0 - CMAKE_PREFIX_PATH="/tmp/uda-install:/opt/homebrew:/usr/local" - PKG_CONFIG_PATH="/tmp/uda-install/lib/pkgconfig:/opt/homebrew/lib/pkgconfig:/usr/local/lib/pkgconfig" + CMAKE_PREFIX_PATH="/tmp/imas-core-install:/opt/homebrew:/usr/local" + PKG_CONFIG_PATH="/tmp/imas-core-install/lib/pkgconfig:/opt/homebrew/lib/pkgconfig:/usr/local/lib/pkgconfig" with: package-dir: . diff --git a/CMakeLists.txt b/CMakeLists.txt index e35f6e6e..918d0c93 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -77,9 +77,6 @@ if(APPLE) # Disable MDSPlus: message(STATUS "Disabling MDSPlus backend on macOS") set(AL_BACKEND_MDSPLUS OFF CACHE BOOL "MDSPlus backend" FORCE) - # Disable UDA: - message(STATUS "Disabling UDA backend on macOS") - set(AL_BACKEND_UDA OFF CACHE BOOL "UDA backend" FORCE) endif() diff --git a/pyproject.toml b/pyproject.toml index 9a6d0ee5..e0ce230c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -62,9 +62,14 @@ before-build = "bash ./ci/wheels/cibw_before_build_win.sh" repair-wheel-command = "bash ./ci/wheels/repair_windows.sh {wheel} {dest_dir}" [tool.cibuildwheel.macos.environment] -CMAKE_PREFIX_PATH = "/opt/homebrew;/usr/local" -PKG_CONFIG_PATH = "/opt/homebrew/lib/pkgconfig:/usr/local/lib/pkgconfig" +CMAKE_PREFIX_PATH = "/tmp/imas-core-install:/opt/homebrew:/usr/local" +PKG_CONFIG_PATH = "/tmp/imas-core-install/lib/pkgconfig:/opt/homebrew/lib/pkgconfig:/usr/local/lib/pkgconfig" MACOSX_DEPLOYMENT_TARGET = "14.0" +AL_BACKEND_HDF5 = { env = "AL_BACKEND_HDF5", default = "ON" } +AL_BACKEND_UDA = { env = "AL_BACKEND_UDA", default = "ON" } +AL_BACKEND_MDSPLUS = { env = "AL_BACKEND_MDSPLUS", default = "OFF" } +AL_BUILD_MDSPLUS_MODELS = { env = "AL_BUILD_MDSPLUS_MODELS", default = "OFF" } +AL_PYTHON_BINDINGS = "ON" [tool.cibuildwheel.macos] archs = ["arm64"] From bec449416d77642e6c5794c8b237655a2634ba3a Mon Sep 17 00:00:00 2001 From: Paulo Abreu Date: Mon, 30 Mar 2026 10:44:47 +0200 Subject: [PATCH 2/2] Improving macos detection in CMake, adding arm achitecture --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 918d0c93..a7eb46a0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -73,7 +73,7 @@ if(NOT PROJECT_VERSION_TWEAK EQUAL 0) message("Building a development version of the Access Layer core") endif() -if(APPLE) +if(APPLE AND CMAKE_OSX_ARCHITECTURES MATCHES "arm64") # Disable MDSPlus: message(STATUS "Disabling MDSPlus backend on macOS") set(AL_BACKEND_MDSPLUS OFF CACHE BOOL "MDSPlus backend" FORCE)