From 0da522fc7a8609d7d3f3d2be6468ee5dee49374c Mon Sep 17 00:00:00 2001 From: Lehman Garrison Date: Fri, 6 Jun 2025 16:19:06 -0400 Subject: [PATCH 1/5] ci: build wheels while debugging --- .github/workflows/wheels.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index 1cc1478..caca70a 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -4,6 +4,7 @@ on: push: tags: - "*" + pull_request: jobs: build_wheels: From 6ecf9495cf5d0ad75447a83179edd1b5e903d898 Mon Sep 17 00:00:00 2001 From: Lehman Garrison Date: Fri, 6 Jun 2025 16:19:24 -0400 Subject: [PATCH 2/5] ci: fix twine check --- .github/workflows/wheels.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index caca70a..487d8d9 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -38,7 +38,7 @@ jobs: - name: Build sdist run: uv build --sdist - name: Check the sdist - run: python -m twine check dist/*.tar.gz + run: uvx twine check dist/*.tar.gz - uses: actions/upload-artifact@v4 with: name: sdist From 03a3a23635e945b5390058d726449a98054df54f Mon Sep 17 00:00:00 2001 From: Lehman Garrison Date: Fri, 6 Jun 2025 16:19:49 -0400 Subject: [PATCH 3/5] ci: attempt to have finufft build fftw from source on macos --- pyproject.toml | 3 --- 1 file changed, 3 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index bd43380..983658d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -45,9 +45,6 @@ config-settings = {"cmake.define.FINUFFT_ARCH_FLAGS" = ""} [tool.cibuildwheel.linux] before-all = "yum install -y fftw-devel" -[tool.cibuildwheel.macos] -before-all = "brew install fftw" - # Needed for full C++17 support [tool.cibuildwheel.macos.environment] MACOSX_DEPLOYMENT_TARGET = "10.14" From 50e5bf88022788e1c78a879a3ce4757b1126fde5 Mon Sep 17 00:00:00 2001 From: Lehman Garrison Date: Fri, 6 Jun 2025 17:29:41 -0400 Subject: [PATCH 4/5] cmake: detect fftw include dir even when using finufft's vendored fftw --- CMakeLists.txt | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index d85cfc9..edbc820 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -72,6 +72,11 @@ endif() # Build the CPU XLA bindings nanobind_add_module(jax_finufft_cpu ${CMAKE_CURRENT_LIST_DIR}/lib/jax_finufft_cpu.cc) target_link_libraries(jax_finufft_cpu PRIVATE finufft) + +if (NOT FFTW_INCLUDE_DIRS) + get_target_property(FFTW_INCLUDE_DIRS fftw3 INTERFACE_INCLUDE_DIRECTORIES) +endif() + target_include_directories(jax_finufft_cpu PRIVATE ${FFTW_INCLUDE_DIRS}) install(TARGETS jax_finufft_cpu LIBRARY DESTINATION .) From 0305bbb257df38d7820395c7f052ddd57282b8df Mon Sep 17 00:00:00 2001 From: Lehman Garrison Date: Fri, 6 Jun 2025 18:21:08 -0400 Subject: [PATCH 5/5] ci: try to fix fftw source build --- .github/workflows/wheels.yml | 7 +++++++ pyproject.toml | 3 +++ 2 files changed, 10 insertions(+) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index 487d8d9..d034d21 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -21,6 +21,13 @@ jobs: fetch-depth: 0 - name: Build wheels uses: pypa/cibuildwheel@v2.23.3 + env: + # from https://github.com/flatironinstitute/finufft/blob/master/.github/workflows/build_finufft_wheels.yml + CIBW_ENVIRONMENT_MACOS: > + CC=$(brew --prefix llvm)/bin/clang + CXX=$(brew --prefix llvm)/bin/clang++ + CFLAGS="-I$(brew --prefix libomp)/include" + LDFLAGS="-L$(brew --prefix libomp)/lib" - uses: actions/upload-artifact@v4 with: name: binary-${{ matrix.os }} diff --git a/pyproject.toml b/pyproject.toml index 983658d..a258c26 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -45,6 +45,9 @@ config-settings = {"cmake.define.FINUFFT_ARCH_FLAGS" = ""} [tool.cibuildwheel.linux] before-all = "yum install -y fftw-devel" +[tool.cibuildwheel.macos] +before-all = "brew install llvm libomp" + # Needed for full C++17 support [tool.cibuildwheel.macos.environment] MACOSX_DEPLOYMENT_TARGET = "10.14"