From 5e06e59ac688a64f82c050a7877bf4abc6e13541 Mon Sep 17 00:00:00 2001 From: Paulo Abreu Date: Thu, 8 Jan 2026 10:49:27 +0100 Subject: [PATCH 01/17] Adding config for macos, still untested. --- .github/workflows/wheels.yml | 44 +++++++++++++++++++++++++++++++++--- CMakeLists.txt | 9 ++++++++ pyproject.toml | 8 +++++++ 3 files changed, 58 insertions(+), 3 deletions(-) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index b6e859eb..cd29399b 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -65,10 +65,26 @@ jobs: UDA_REF: "2.9.3" FMT_REF: "11.1.4" - # # - os: macos-13 - # # python: 311 - # # platform_id: macosx_x86_64 + - os: macos-13 + triplet: x64-osx + python: 311 + platform_id: macosx_x86_64 + cibw_platform: macos + cibw_archs: x86_64 + AL_BACKEND_HDF5: AL_BACKEND_HDF5=ON + AL_BACKEND_MDSPLUS: AL_BACKEND_MDSPLUS=OFF + AL_BACKEND_UDA: AL_BACKEND_UDA=OFF + - os: macos-14 + triplet: arm64-osx + python: 311 + platform_id: macosx_arm64 + cibw_platform: macos + cibw_archs: arm64 + AL_BACKEND_HDF5: AL_BACKEND_HDF5=ON + AL_BACKEND_MDSPLUS: AL_BACKEND_MDSPLUS=OFF + AL_BACKEND_UDA: AL_BACKEND_UDA=OFF + - os: windows-2022 triplet: x64-windows python: 310 @@ -255,6 +271,28 @@ jobs: output-dir: wheelhouse config-file: "{package}/pyproject.toml" + - uses: pypa/cibuildwheel@v3.0.0 + if: startsWith(matrix.os, 'macos-') + env: + CIBW_BUILD: cp${{ matrix.python }}-${{ matrix.platform_id }} + CIBW_PLATFORM: macos + CIBW_ARCHS: ${{ matrix.cibw_archs }} + + CIBW_CONFIG_SETTINGS: > + cmake.define.${{ matrix.AL_BACKEND_HDF5 }} + cmake.define.${{ matrix.AL_BACKEND_MDSPLUS }} + cmake.define.${{ matrix.AL_BACKEND_UDA }} + + # Dependency installation + CIBW_BEFORE_ALL_MACOS: > + brew update; + brew install cmake pkg-config boost hdf5 libomp; + + with: + package-dir: . + output-dir: wheelhouse + config-file: "{package}/pyproject.toml" + - uses: actions/upload-artifact@v4 with: name: cibw-wheels-cp${{ matrix.python }}-${{ matrix.platform_id }} diff --git a/CMakeLists.txt b/CMakeLists.txt index 7be9f9d4..baad7c86 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -69,6 +69,15 @@ if(NOT PROJECT_VERSION_TWEAK EQUAL 0) message("Building a development version of the Access Layer core") endif() +# macOS RPATH handling +# ############################################################################## + +if(APPLE) + set(CMAKE_MACOSX_RPATH ON) + set(CMAKE_INSTALL_RPATH "@loader_path") + set(CMAKE_BUILD_WITH_INSTALL_RPATH ON) +endif() + # Dependencies # ############################################################################## diff --git a/pyproject.toml b/pyproject.toml index d6e383c8..0aa54fac 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -61,6 +61,14 @@ VCPKG_KEEP_ENV_VARS = "VCPKG_ROOT;CMAKE_PREFIX_PATH;CMAKE_TOOLCHAIN_FILE;CMAKE_P 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" +MACOSX_DEPLOYMENT_TARGET = "11.0" + +[tool.cibuildwheel.macos] +repair-wheel-command = "delocate-wheel -w {dest_dir} {wheel}" + [tool.scikit-build.cmake.define] BUILD_SHARED_LIBS = "ON" DOCS_ONLY = { env = "DOCS_ONLY", default = "OFF" } From a1e0d32c6237d388e2086b53f956ec41979fd311 Mon Sep 17 00:00:00 2001 From: Paulo Abreu Date: Mon, 12 Jan 2026 09:57:43 +0100 Subject: [PATCH 02/17] Fixing RPATH issues --- CMakeLists.txt | 5 ++++- python/CMakeLists.txt | 30 +++++++++++++++++++++++++++--- 2 files changed, 31 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index baad7c86..57dbbb75 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -74,8 +74,11 @@ endif() if(APPLE) set(CMAKE_MACOSX_RPATH ON) - set(CMAKE_INSTALL_RPATH "@loader_path") + set(CMAKE_INSTALL_RPATH "@loader_path/../imas_core.libs") set(CMAKE_BUILD_WITH_INSTALL_RPATH ON) + # force UDA off for now: + message(STATUS "Disabling UDA backend on macOS") + set(AL_BACKEND_UDA OFF CACHE BOOL "UDA backend" FORCE) endif() diff --git a/python/CMakeLists.txt b/python/CMakeLists.txt index 0f213273..07267e48 100644 --- a/python/CMakeLists.txt +++ b/python/CMakeLists.txt @@ -7,8 +7,32 @@ python_add_library(_al_lowlevel MODULE ${_al_lowlevel_source} WITH_SOABI) python_add_library(al_defs MODULE ${al_defs_source} WITH_SOABI) target_link_libraries(_al_lowlevel PRIVATE Python::NumPy al) target_link_libraries(al_defs PRIVATE Python::NumPy al) -set_target_properties(al PROPERTIES INSTALL_RPATH $ORIGIN) -set_target_properties(_al_lowlevel al_defs PROPERTIES INSTALL_RPATH $ORIGIN/../imas_core.libs) + +# Handling RPATH in Linux and macOS: +if(APPLE) + set(_IMAS_RPATH_SELF "@loader_path") + set(_IMAS_RPATH_LIBS "@loader_path/../imas_core.libs") +elseif(UNIX) + set(_IMAS_RPATH_SELF "$ORIGIN") + set(_IMAS_RPATH_LIBS "$ORIGIN/../imas_core.libs") +else() + # Windows: no RPATH + set(_IMAS_RPATH_SELF "") + set(_IMAS_RPATH_LIBS "") +endif() + +if(_IMAS_RPATH_SELF) + set_target_properties(al PROPERTIES + INSTALL_RPATH "${_IMAS_RPATH_SELF}" + ) +endif() + +if(_IMAS_RPATH_LIBS) + set_target_properties(_al_lowlevel al_defs PROPERTIES + INSTALL_RPATH "${_IMAS_RPATH_LIBS}" + ) +endif() + install(FILES $ DESTINATION imas_core.libs) install(FILES $ DESTINATION imas_core.libs) install(FILES $ DESTINATION imas_core.libs) @@ -48,4 +72,4 @@ install( "ext-ms-" # Windows extension DLLs POST_EXCLUDE_REGEXES ${POST_EXCLUDE_PATTERNS} ) -install(TARGETS _al_lowlevel al_defs DESTINATION imas_core) \ No newline at end of file +install(TARGETS _al_lowlevel al_defs DESTINATION imas_core) From c96598b764a9e695daeaad0375272d547f41ac7d Mon Sep 17 00:00:00 2001 From: Paulo Abreu Date: Mon, 12 Jan 2026 10:27:00 +0100 Subject: [PATCH 03/17] Cleaning main CMakeLists. Seems to work on macOS now. --- CMakeLists.txt | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 57dbbb75..f7ff0378 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -69,16 +69,11 @@ if(NOT PROJECT_VERSION_TWEAK EQUAL 0) message("Building a development version of the Access Layer core") endif() -# macOS RPATH handling -# ############################################################################## - if(APPLE) - set(CMAKE_MACOSX_RPATH ON) - set(CMAKE_INSTALL_RPATH "@loader_path/../imas_core.libs") - set(CMAKE_BUILD_WITH_INSTALL_RPATH ON) - # force UDA off for now: - message(STATUS "Disabling UDA backend on macOS") + # Disable extra backends for now: + message(STATUS "Disabling UDA and MDSPlus backends on macOS") set(AL_BACKEND_UDA OFF CACHE BOOL "UDA backend" FORCE) + set(AL_BACKEND_MDSPLUS OFF CACHE BOOL "MDSPlus backend" FORCE) endif() From 5d51fa9884be4739eec0ab240d47509b77e1cc23 Mon Sep 17 00:00:00 2001 From: Paulo Abreu Date: Mon, 12 Jan 2026 10:57:11 +0100 Subject: [PATCH 04/17] ensuring arm64 when building the wheel on macos --- pyproject.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/pyproject.toml b/pyproject.toml index 0aa54fac..51dd98e0 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -67,6 +67,7 @@ PKG_CONFIG_PATH = "/opt/homebrew/lib/pkgconfig:/usr/local/lib/pkgconfig" MACOSX_DEPLOYMENT_TARGET = "11.0" [tool.cibuildwheel.macos] +archs = ["arm64"] repair-wheel-command = "delocate-wheel -w {dest_dir} {wheel}" [tool.scikit-build.cmake.define] From 38d42e12d6db70dd3e0fa22dbc36c83e78ed5765 Mon Sep 17 00:00:00 2001 From: Paulo Abreu Date: Mon, 12 Jan 2026 11:06:05 +0100 Subject: [PATCH 05/17] Removing github actions for macOS x86 for now, will be added later on request. --- .github/workflows/wheels.yml | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index cd29399b..f8c39e50 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -65,16 +65,6 @@ jobs: UDA_REF: "2.9.3" FMT_REF: "11.1.4" - - os: macos-13 - triplet: x64-osx - python: 311 - platform_id: macosx_x86_64 - cibw_platform: macos - cibw_archs: x86_64 - AL_BACKEND_HDF5: AL_BACKEND_HDF5=ON - AL_BACKEND_MDSPLUS: AL_BACKEND_MDSPLUS=OFF - AL_BACKEND_UDA: AL_BACKEND_UDA=OFF - - os: macos-14 triplet: arm64-osx python: 311 From c63d4f4d4c823298cce38e06529ac692afb9ed45 Mon Sep 17 00:00:00 2001 From: Paulo Abreu Date: Mon, 12 Jan 2026 11:18:56 +0100 Subject: [PATCH 06/17] Fixing macOS version from 11 to 14 to ensure arm only, no x86 --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 51dd98e0..9a6d0ee5 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -64,7 +64,7 @@ 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" -MACOSX_DEPLOYMENT_TARGET = "11.0" +MACOSX_DEPLOYMENT_TARGET = "14.0" [tool.cibuildwheel.macos] archs = ["arm64"] From 1ece6005bc64a9e07fdeaa8479a3d4cd4949b384 Mon Sep 17 00:00:00 2001 From: Paulo Abreu Date: Mon, 12 Jan 2026 18:51:02 +0100 Subject: [PATCH 07/17] Improving legibility in macOS section in cmake --- python/CMakeLists.txt | 28 ++++++---------------------- 1 file changed, 6 insertions(+), 22 deletions(-) diff --git a/python/CMakeLists.txt b/python/CMakeLists.txt index 07267e48..71f8b780 100644 --- a/python/CMakeLists.txt +++ b/python/CMakeLists.txt @@ -8,31 +8,15 @@ python_add_library(al_defs MODULE ${al_defs_source} WITH_SOABI) target_link_libraries(_al_lowlevel PRIVATE Python::NumPy al) target_link_libraries(al_defs PRIVATE Python::NumPy al) -# Handling RPATH in Linux and macOS: +# Handling RPATH in macOS: if(APPLE) - set(_IMAS_RPATH_SELF "@loader_path") - set(_IMAS_RPATH_LIBS "@loader_path/../imas_core.libs") -elseif(UNIX) - set(_IMAS_RPATH_SELF "$ORIGIN") - set(_IMAS_RPATH_LIBS "$ORIGIN/../imas_core.libs") + set_target_properties(al PROPERTIES INSTALL_RPATH "@loader_path") + set_target_properties(_al_lowlevel al_defs PROPERTIES INSTALL_RPATH "@loader_path/../imas_core.libs") else() - # Windows: no RPATH - set(_IMAS_RPATH_SELF "") - set(_IMAS_RPATH_LIBS "") + set_target_properties(al PROPERTIES INSTALL_RPATH $ORIGIN) + set_target_properties(_al_lowlevel al_defs PROPERTIES INSTALL_RPATH $ORIGIN/../imas_core.libs) endif() - -if(_IMAS_RPATH_SELF) - set_target_properties(al PROPERTIES - INSTALL_RPATH "${_IMAS_RPATH_SELF}" - ) -endif() - -if(_IMAS_RPATH_LIBS) - set_target_properties(_al_lowlevel al_defs PROPERTIES - INSTALL_RPATH "${_IMAS_RPATH_LIBS}" - ) -endif() - + install(FILES $ DESTINATION imas_core.libs) install(FILES $ DESTINATION imas_core.libs) install(FILES $ DESTINATION imas_core.libs) From b44579c617abfb6b34a14bccccb8976caaa6aa38 Mon Sep 17 00:00:00 2001 From: Paulo Abreu Date: Mon, 12 Jan 2026 19:00:54 +0100 Subject: [PATCH 08/17] Fixing missing override warnings --- src/no_backend.h | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/no_backend.h b/src/no_backend.h index d3f8d3ac..8b46e6b2 100644 --- a/src/no_backend.h +++ b/src/no_backend.h @@ -29,14 +29,14 @@ class IMAS_CORE_LIBRARY_API NoBackend : public Backend ~NoBackend() {}; void openPulse(DataEntryContext *ctx, - int mode); + int mode) override; void closePulse(DataEntryContext *ctx, - int mode); + int mode) override; - void beginAction(OperationContext *ctx); + void beginAction(OperationContext *ctx) override; - void endAction(Context *ctx); + void endAction(Context *ctx) override; void writeData(Context *ctx, std::string fieldname, @@ -44,7 +44,7 @@ class IMAS_CORE_LIBRARY_API NoBackend : public Backend void* data, int datatype, int dim, - int* size); + int* size) override; int readData(Context *ctx, std::string fieldname, @@ -52,26 +52,26 @@ class IMAS_CORE_LIBRARY_API NoBackend : public Backend void** data, int* datatype, int* dim, - int* size); + int* size) override; void deleteData(OperationContext *ctx, - std::string path); + std::string path) override; void beginArraystructAction(ArraystructContext *ctx, - int *size); + int *size) override; - std::pair getVersion(DataEntryContext *ctx); + std::pair getVersion(DataEntryContext *ctx) override; void get_occurrences(Context* ctx, const char* ids_name, int** occurrences_list, int* size) override; - bool supportsTimeDataInterpolation() { + bool supportsTimeDataInterpolation() override { return false; } - void initDataInterpolationComponent() { + void initDataInterpolationComponent() override { } - bool supportsTimeRangeOperation() { + bool supportsTimeRangeOperation() override { return false; } From a34ef25db7c9332b4b74ed8cef815fc26b7bad19 Mon Sep 17 00:00:00 2001 From: Paulo Abreu Date: Thu, 15 Jan 2026 15:32:41 +0100 Subject: [PATCH 09/17] Adding support for python versions 3.10 to 3.13, like the other architectures. --- .github/workflows/wheels.yml | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index f8c39e50..6c6f0703 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -65,6 +65,16 @@ jobs: UDA_REF: "2.9.3" FMT_REF: "11.1.4" + - os: macos-14 + triplet: arm64-osx + python: 310 + platform_id: macosx_arm64 + cibw_platform: macos + cibw_archs: arm64 + AL_BACKEND_HDF5: AL_BACKEND_HDF5=ON + AL_BACKEND_MDSPLUS: AL_BACKEND_MDSPLUS=OFF + AL_BACKEND_UDA: AL_BACKEND_UDA=OFF + - os: macos-14 triplet: arm64-osx python: 311 @@ -74,6 +84,26 @@ jobs: AL_BACKEND_HDF5: AL_BACKEND_HDF5=ON AL_BACKEND_MDSPLUS: AL_BACKEND_MDSPLUS=OFF AL_BACKEND_UDA: AL_BACKEND_UDA=OFF + + - os: macos-14 + triplet: arm64-osx + python: 312 + platform_id: macosx_arm64 + cibw_platform: macos + cibw_archs: arm64 + AL_BACKEND_HDF5: AL_BACKEND_HDF5=ON + AL_BACKEND_MDSPLUS: AL_BACKEND_MDSPLUS=OFF + AL_BACKEND_UDA: AL_BACKEND_UDA=OFF + + - os: macos-14 + triplet: arm64-osx + python: 313 + platform_id: macosx_arm64 + cibw_platform: macos + cibw_archs: arm64 + AL_BACKEND_HDF5: AL_BACKEND_HDF5=ON + AL_BACKEND_MDSPLUS: AL_BACKEND_MDSPLUS=OFF + AL_BACKEND_UDA: AL_BACKEND_UDA=OFF - os: windows-2022 triplet: x64-windows From c6ce7a5f08b4d4c0992a3fc2fc39b60d6f3cd7de Mon Sep 17 00:00:00 2001 From: Paulo Abreu Date: Fri, 16 Jan 2026 11:16:30 +0100 Subject: [PATCH 10/17] Adding missing override modifiers to avoid compilation warnings --- src/uda/uda_backend.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/uda/uda_backend.h b/src/uda/uda_backend.h index faa32f4b..0869aa3c 100644 --- a/src/uda/uda_backend.h +++ b/src/uda/uda_backend.h @@ -184,13 +184,13 @@ class IMAS_CORE_LIBRARY_API UDABackend : public Backend void get_occurrences(Context* ctx, const char* ids_name, int** occurrences_list, int* size) override; - bool supportsTimeDataInterpolation(); + bool supportsTimeDataInterpolation() override; // Do nothing, UDA plugin will need to initDataInterpolationComponent on data backend when it knows which backend // is being used, i.e. when a URI is given. - void initDataInterpolationComponent() {} + void initDataInterpolationComponent() override {} - bool supportsTimeRangeOperation() { + bool supportsTimeRangeOperation() override { return this->supportsTimeDataInterpolation(); } From 72dffdd5b0a00eab278756c6aa12a5dfb5eebb14 Mon Sep 17 00:00:00 2001 From: Paulo Abreu Date: Fri, 16 Jan 2026 13:07:46 +0100 Subject: [PATCH 11/17] macOS ARM: all python versions available and UDA enabled. --- .github/workflows/wheels.yml | 32 +++++++++++++++++++++++++------- CMakeLists.txt | 5 ++--- 2 files changed, 27 insertions(+), 10 deletions(-) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index 6c6f0703..8a811dd0 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -73,7 +73,8 @@ 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 triplet: arm64-osx @@ -83,7 +84,8 @@ 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 triplet: arm64-osx @@ -93,7 +95,8 @@ 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 triplet: arm64-osx @@ -103,7 +106,8 @@ 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 triplet: x64-windows @@ -303,10 +307,24 @@ jobs: cmake.define.${{ matrix.AL_BACKEND_MDSPLUS }} cmake.define.${{ matrix.AL_BACKEND_UDA }} - # Dependency installation + # Dependency installationinto /tmp CIBW_BEFORE_ALL_MACOS: > - brew update; - brew install cmake pkg-config boost hdf5 libomp; + brew update >&2; + brew install cmake pkg-config boost hdf5 libomp ninja fmt spdlog libxml2 openssl capnp libmemcached >&2; + git clone --depth 1 --branch ${{ matrix.UDA_REF }} https://github.com/ukaea/UDA.git >&2 && + cd UDA >&2; + cmake -G Ninja -B build . \ + -DBUILD_SHARED_LIBS=ON \ + -DSSLAUTHENTICATION=ON \ + -DCLIENT_ONLY=ON \ + -DENABLE_CAPNP=ON \ + -DCMAKE_INSTALL_PREFIX=/tmp/uda-install >&2 && + cmake --build build --target install -j >&2; + + # Where to find the dependencies + CIBW_ENVIRONMENT_MACOS: > + 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" with: package-dir: . diff --git a/CMakeLists.txt b/CMakeLists.txt index f7ff0378..d7ad6ee1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -70,9 +70,8 @@ if(NOT PROJECT_VERSION_TWEAK EQUAL 0) endif() if(APPLE) - # Disable extra backends for now: - message(STATUS "Disabling UDA and MDSPlus backends on macOS") - set(AL_BACKEND_UDA OFF CACHE BOOL "UDA backend" FORCE) + # Disable MDSPlus: + message(STATUS "Disabling MDSPlus backend on macOS") set(AL_BACKEND_MDSPLUS OFF CACHE BOOL "MDSPlus backend" FORCE) endif() From c9e92a11d5e44829f65fb1c8bc65850e3adad012 Mon Sep 17 00:00:00 2001 From: Paulo Abreu Date: Fri, 16 Jan 2026 13:39:07 +0100 Subject: [PATCH 12/17] Adding missing override to virtual functions implementations. --- src/ascii_backend.h | 6 +++--- src/hdf5/hdf5_backend.h | 6 +++--- src/memory_backend.h | 6 +++--- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/ascii_backend.h b/src/ascii_backend.h index ef3df61c..fe884e5c 100644 --- a/src/ascii_backend.h +++ b/src/ascii_backend.h @@ -92,15 +92,15 @@ class IMAS_CORE_LIBRARY_API AsciiBackend : public Backend void get_occurrences(Context* ctx, const char* ids_name, int** occurrences_list, int* size) override; - bool supportsTimeDataInterpolation() { + bool supportsTimeDataInterpolation() override { return false; } - void initDataInterpolationComponent() { + void initDataInterpolationComponent() override { throw ALBackendException("ASCII backend does not support time range and time slices operations",LOG); } - bool supportsTimeRangeOperation() { + bool supportsTimeRangeOperation() override { return false; } diff --git a/src/hdf5/hdf5_backend.h b/src/hdf5/hdf5_backend.h index 21ce3511..26bdc001 100644 --- a/src/hdf5/hdf5_backend.h +++ b/src/hdf5/hdf5_backend.h @@ -132,14 +132,14 @@ class HDF5Backend:public Backend { void get_occurrences(Context* ctx, const char* ids_name, int** occurrences_list, int* size) override; - bool supportsTimeDataInterpolation() { + bool supportsTimeDataInterpolation() override { return true; } - void initDataInterpolationComponent() { + void initDataInterpolationComponent() override { } - bool supportsTimeRangeOperation() { + bool supportsTimeRangeOperation() override { return true; } diff --git a/src/memory_backend.h b/src/memory_backend.h index 97c3d24d..e74bcb92 100644 --- a/src/memory_backend.h +++ b/src/memory_backend.h @@ -674,15 +674,15 @@ class IMAS_CORE_LIBRARY_API MemoryBackend:public Backend void get_occurrences(Context* ctx, const char* ids_name, int** occurrences_list, int* size) override; - bool supportsTimeDataInterpolation() { + bool supportsTimeDataInterpolation() override { return false; } - void initDataInterpolationComponent() { + void initDataInterpolationComponent() override { throw ALBackendException("Memory backend does not support time range and time slices operations",LOG); } - bool supportsTimeRangeOperation() { + bool supportsTimeRangeOperation() override { return false; } From 0817e7bde29f7a0fe041d3e0db304db2ee8d472e Mon Sep 17 00:00:00 2001 From: Paulo Abreu Date: Fri, 16 Jan 2026 13:54:56 +0100 Subject: [PATCH 13/17] Adding minimal MACOSX_DEPLOYMENT_TARGET --- .github/workflows/wheels.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index 8a811dd0..bba42dd6 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -318,11 +318,13 @@ jobs: -DSSLAUTHENTICATION=ON \ -DCLIENT_ONLY=ON \ -DENABLE_CAPNP=ON \ + -DMACOSX_DEPLOYMENT_TARGET=11.0 \ -DCMAKE_INSTALL_PREFIX=/tmp/uda-install >&2 && cmake --build build --target install -j >&2; # Where to find the dependencies CIBW_ENVIRONMENT_MACOS: > + MACOSX_DEPLOYMENT_TARGET=11.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" From d2d7ec9b454ea4fe0a5759c52c0caedda7e539a6 Mon Sep 17 00:00:00 2001 From: Paulo Abreu Date: Tue, 27 Jan 2026 11:42:18 +0100 Subject: [PATCH 14/17] Removing UDA again, to create a commit with just several python versions. --- .github/workflows/wheels.yml | 8 ++++---- CMakeLists.txt | 3 +++ 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index bba42dd6..576efe35 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -73,7 +73,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=ON + AL_BACKEND_UDA: AL_BACKEND_UDA=OFF UDA_REF: "2.9.3" - os: macos-14 @@ -84,7 +84,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=ON + AL_BACKEND_UDA: AL_BACKEND_UDA=OFF UDA_REF: "2.9.3" - os: macos-14 @@ -95,7 +95,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=ON + AL_BACKEND_UDA: AL_BACKEND_UDA=OFF UDA_REF: "2.9.3" - os: macos-14 @@ -106,7 +106,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=ON + AL_BACKEND_UDA: AL_BACKEND_UDA=OFF UDA_REF: "2.9.3" - os: windows-2022 diff --git a/CMakeLists.txt b/CMakeLists.txt index d7ad6ee1..4adecc7e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -73,6 +73,9 @@ 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() From df82138b37eff0de08509dcb1ffb2bcc3866b715 Mon Sep 17 00:00:00 2001 From: Paulo Abreu Date: Fri, 6 Feb 2026 17:10:31 +0100 Subject: [PATCH 15/17] adding python 3.14 to macos-arm --- .github/workflows/wheels.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index 7ebb3d33..c543a459 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -122,6 +122,17 @@ jobs: AL_BACKEND_UDA: AL_BACKEND_UDA=OFF UDA_REF: "2.9.3" + - os: macos-14 + triplet: arm64-osx + python: 314 + platform_id: macosx_arm64 + cibw_platform: macos + cibw_archs: arm64 + AL_BACKEND_HDF5: AL_BACKEND_HDF5=ON + AL_BACKEND_MDSPLUS: AL_BACKEND_MDSPLUS=OFF + AL_BACKEND_UDA: AL_BACKEND_UDA=OFF + UDA_REF: "2.9.3" + - os: windows-2022 triplet: x64-windows python: 310 From c741b42d8804bf0de638a28df081d7c71cfdc989 Mon Sep 17 00:00:00 2001 From: Paulo Abreu Date: Fri, 6 Feb 2026 17:19:38 +0100 Subject: [PATCH 16/17] macos target is now 14 everywhere to ensure ARM processors only. --- .github/workflows/wheels.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index c543a459..4430d290 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -358,13 +358,13 @@ jobs: -DSSLAUTHENTICATION=ON \ -DCLIENT_ONLY=ON \ -DENABLE_CAPNP=ON \ - -DMACOSX_DEPLOYMENT_TARGET=11.0 \ + -DMACOSX_DEPLOYMENT_TARGET=14.0 \ -DCMAKE_INSTALL_PREFIX=/tmp/uda-install >&2 && cmake --build build --target install -j >&2; # Where to find the dependencies CIBW_ENVIRONMENT_MACOS: > - MACOSX_DEPLOYMENT_TARGET=11.0 + 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" From 0f8d4a2dd978cd95b7e7a8effb650b1fc07f33aa Mon Sep 17 00:00:00 2001 From: prasad-sawantdesai Date: Mon, 9 Feb 2026 11:50:06 +0100 Subject: [PATCH 17/17] search logic for hdf libraries --- src/hdf5/CMakeLists.txt | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/hdf5/CMakeLists.txt b/src/hdf5/CMakeLists.txt index 9bc92385..f9a19479 100644 --- a/src/hdf5/CMakeLists.txt +++ b/src/hdf5/CMakeLists.txt @@ -24,9 +24,15 @@ target_compile_definitions( al PRIVATE -DHDF5 ) if(WIN32) # Use modern CMake targets if available (vcpkg), otherwise legacy variables if( TARGET hdf5::hdf5-shared ) - target_link_libraries( al PRIVATE hdf5::hdf5-shared hdf5::hdf5_hl-shared ) + target_link_libraries( al PRIVATE hdf5::hdf5-shared ) + if( TARGET hdf5::hdf5_hl-shared ) + target_link_libraries( al PRIVATE hdf5::hdf5_hl-shared ) + endif() elseif( TARGET hdf5::hdf5-static ) - target_link_libraries( al PRIVATE hdf5::hdf5-static hdf5::hdf5_hl-static ) + target_link_libraries( al PRIVATE hdf5::hdf5-static ) + if( TARGET hdf5::hdf5_hl-static ) + target_link_libraries( al PRIVATE hdf5::hdf5_hl-static ) + endif() else() # Legacy FindHDF5 module target_include_directories( al PRIVATE ${HDF5_C_INCLUDE_DIRS} )