diff --git a/.github/workflows/conda-package-cf.yml b/.github/workflows/conda-package-cf.yml
index 524136f..16e645f 100644
--- a/.github/workflows/conda-package-cf.yml
+++ b/.github/workflows/conda-package-cf.yml
@@ -88,7 +88,7 @@ jobs:
strategy:
matrix:
- python_ver: ["3.10", "3.11", "3.12", "3.13", "3.14"]
+ python: ["3.10", "3.11", "3.12", "3.13", "3.14"]
numpy: ['numpy">=2"']
experimental: [false]
runner: [ubuntu-latest]
@@ -100,7 +100,7 @@ jobs:
- name: Download artifact
uses: actions/download-artifact@70fc10c6e5e1ce46ad2ea6f2b72d43f7d47b13c3 # v8.0.0
with:
- name: ${{ env.PACKAGE_NAME }} ${{ runner.os }} Python ${{ matrix.python_ver }}
+ name: ${{ env.PACKAGE_NAME }} ${{ runner.os }} Python ${{ matrix.python }}
- name: Add conda to system path
run: echo "$CONDA"/bin >> "$GITHUB_PATH"
@@ -119,7 +119,7 @@ jobs:
- name: Collect dependencies
run: |
CHANNELS=(-c "$GITHUB_WORKSPACE"/channel ${{ env.CHANNELS }})
- conda create -n ${{ env.TEST_ENV_NAME }} "$PACKAGE_NAME" python=${{ matrix.python_ver }} ${{ matrix.numpy }} "${CHANNELS[@]}" --only-deps --dry-run > lockfile
+ conda create -n ${{ env.TEST_ENV_NAME }} "$PACKAGE_NAME" python=${{ matrix.python }} ${{ matrix.numpy }} "${CHANNELS[@]}" --only-deps --dry-run > lockfile
- name: Display lockfile
run: cat lockfile
@@ -135,15 +135,15 @@ jobs:
with:
path: ~/.conda/pkgs
key:
- ${{ runner.os }}-conda-${{ env.CACHE_NUMBER }}-python-${{ matrix.python_ver }}-${{hashFiles('lockfile') }}
+ ${{ runner.os }}-conda-${{ env.CACHE_NUMBER }}-python-${{ matrix.python }}-${{hashFiles('lockfile') }}
restore-keys: |
- ${{ runner.os }}-conda-${{ env.CACHE_NUMBER }}-python-${{ matrix.python_ver }}-
+ ${{ runner.os }}-conda-${{ env.CACHE_NUMBER }}-python-${{ matrix.python }}-
${{ runner.os }}-conda-${{ env.CACHE_NUMBER }}-
- name: Install mkl_fft
run: |
CHANNELS=(-c "$GITHUB_WORKSPACE"/channel ${{ env.CHANNELS }})
- conda create -n ${{ env.TEST_ENV_NAME }} python=${{ matrix.python_ver }} ${{ matrix.numpy }} "$PACKAGE_NAME" pytest scipy "${CHANNELS[@]}"
+ conda create -n ${{ env.TEST_ENV_NAME }} python=${{ matrix.python }} ${{ matrix.numpy }} "$PACKAGE_NAME" pytest scipy "${CHANNELS[@]}"
# Test installed packages
conda list -n ${{ env.TEST_ENV_NAME }}
@@ -182,11 +182,13 @@ jobs:
- uses: conda-incubator/setup-miniconda@fc2d68f6413eb2d87b895e92f8584b5b94a10167 # v3.3.0
with:
+ miniforge-variant: Miniforge3
miniforge-version: latest
- activate-environment: build
- python-version: ${{ matrix.python }}
+ auto-activate: true
+ activate-environment: base
channels: conda-forge
- conda-remove-defaults: 'true'
+ conda-remove-defaults: true
+ python-version: ${{ matrix.python }}
- name: Install conda-build
run: conda install -n base conda-build
@@ -203,9 +205,6 @@ jobs:
${{ runner.os }}-conda-${{ env.CACHE_NUMBER }}-python-${{ matrix.python }}-
${{ runner.os }}-conda-${{ env.CACHE_NUMBER }}-
- - name: Setup MSVC
- uses: ilammy/msvc-dev-cmd@0b201ec74fa43914dc39ae48a89fd1d8cb592756 # v1.13.0
-
- name: Build conda package with NumPy 2.x
run: |
conda activate
@@ -231,7 +230,7 @@ jobs:
strategy:
matrix:
- python_ver: ["3.10", "3.11", "3.12", "3.13", "3.14"]
+ python: ["3.10", "3.11", "3.12", "3.13", "3.14"]
numpy: ['numpy">=2"']
experimental: [false]
runner: [windows-latest]
@@ -244,15 +243,15 @@ jobs:
- name: Download artifact
uses: actions/download-artifact@70fc10c6e5e1ce46ad2ea6f2b72d43f7d47b13c3 # v8.0.0
with:
- name: ${{ env.PACKAGE_NAME }} ${{ runner.os }} Python ${{ matrix.python_ver }}
+ name: ${{ env.PACKAGE_NAME }} ${{ runner.os }} Python ${{ matrix.python }}
- uses: conda-incubator/setup-miniconda@fc2d68f6413eb2d87b895e92f8584b5b94a10167 # v3.3.0
with:
miniforge-version: latest
- activate-environment: ${{ env.TEST_ENV_NAME }}
- python-version: ${{ matrix.python_ver }}
channels: conda-forge
- conda-remove-defaults: 'true'
+ conda-remove-defaults: true
+ activate-environment: ${{ env.TEST_ENV_NAME }}
+ python-version: ${{ matrix.python }}
- name: Create conda channel with the artifact bit
shell: cmd /C CALL {0}
@@ -291,7 +290,7 @@ jobs:
FOR /F "tokens=* USEBACKQ" %%F IN (`python -c "%SCRIPT%"`) DO (
SET PACKAGE_VERSION=%%F
)
- conda install -n ${{ env.TEST_ENV_NAME }} ${{ env.PACKAGE_NAME }}=%PACKAGE_VERSION% python=${{ matrix.python_ver }} ${{ matrix.numpy }} -c ${{ env.workdir }}/channel ${{ env.CHANNELS }} --only-deps --dry-run > lockfile
+ conda install -n ${{ env.TEST_ENV_NAME }} ${{ env.PACKAGE_NAME }}=%PACKAGE_VERSION% python=${{ matrix.python }} ${{ matrix.numpy }} -c ${{ env.workdir }}/channel ${{ env.CHANNELS }} --only-deps --dry-run > lockfile
- name: Display lockfile content
shell: pwsh
@@ -304,9 +303,9 @@ jobs:
with:
path: /home/runner/conda_pkgs_dir
key:
- ${{ runner.os }}-conda-${{ env.CACHE_NUMBER }}-python-${{ matrix.python_ver }}-${{hashFiles('lockfile') }}
+ ${{ runner.os }}-conda-${{ env.CACHE_NUMBER }}-python-${{ matrix.python }}-${{hashFiles('lockfile') }}
restore-keys: |
- ${{ runner.os }}-conda-${{ env.CACHE_NUMBER }}-python-${{ matrix.python_ver }}-
+ ${{ runner.os }}-conda-${{ env.CACHE_NUMBER }}-python-${{ matrix.python }}-
${{ runner.os }}-conda-${{ env.CACHE_NUMBER }}-
- name: Install mkl_fft
@@ -321,7 +320,7 @@ jobs:
SET PACKAGE_VERSION=%%F
)
SET "TEST_DEPENDENCIES=pytest scipy"
- conda install -n ${{ env.TEST_ENV_NAME }} ${{ env.PACKAGE_NAME }}=%PACKAGE_VERSION% %TEST_DEPENDENCIES% python=${{ matrix.python_ver }} ${{ matrix.numpy }} -c ${{ env.workdir }}/channel ${{ env.CHANNELS }}
+ conda install -n ${{ env.TEST_ENV_NAME }} ${{ env.PACKAGE_NAME }}=%PACKAGE_VERSION% %TEST_DEPENDENCIES% python=${{ matrix.python }} ${{ matrix.numpy }} -c ${{ env.workdir }}/channel ${{ env.CHANNELS }}
- name: Report content of test environment
shell: cmd /C CALL {0}
diff --git a/.github/workflows/conda-package.yml b/.github/workflows/conda-package.yml
index 8f64dda..e1fd932 100644
--- a/.github/workflows/conda-package.yml
+++ b/.github/workflows/conda-package.yml
@@ -171,11 +171,13 @@ jobs:
- uses: conda-incubator/setup-miniconda@fc2d68f6413eb2d87b895e92f8584b5b94a10167 # v3.3.0
with:
+ miniforge-variant: Miniforge3
miniforge-version: latest
- activate-environment: build
- python-version: ${{ matrix.python }}
+ auto-activate: true
+ activate-environment: base
channels: conda-forge
- conda-remove-defaults: 'true'
+ conda-remove-defaults: true
+ python-version: ${{ matrix.python }}
- name: Install conda-build
run: |
@@ -194,9 +196,6 @@ jobs:
${{ runner.os }}-conda-${{ env.CACHE_NUMBER }}-python-${{ matrix.python }}-
${{ runner.os }}-conda-${{ env.CACHE_NUMBER }}-
- - name: Setup MSVC
- uses: ilammy/msvc-dev-cmd@0b201ec74fa43914dc39ae48a89fd1d8cb592756 # v1.13.0
-
- name: Build conda package
run: |
conda activate
@@ -239,10 +238,10 @@ jobs:
- uses: conda-incubator/setup-miniconda@fc2d68f6413eb2d87b895e92f8584b5b94a10167 # v3.3.0
with:
miniforge-version: latest
+ channels: conda-forge
+ conda-remove-defaults: true
activate-environment: ${{ env.TEST_ENV_NAME }}
python-version: ${{ matrix.python }}
- channels: conda-forge
- conda-remove-defaults: 'true'
- name: Create conda channel with the artifact bit
shell: cmd /C CALL {0}
diff --git a/conda-recipe-cf/bld.bat b/conda-recipe-cf/bld.bat
index becc8af..3a1cbb8 100644
--- a/conda-recipe-cf/bld.bat
+++ b/conda-recipe-cf/bld.bat
@@ -1,3 +1,13 @@
set MKLROOT=%PREFIX%
-%PYTHON% -m pip install --no-build-isolation --no-deps .
-if errorlevel 1 exit 1
+
+rem Build wheel package
+if NOT "%WHEELS_OUTPUT_FOLDER%"=="" (
+ %PYTHON% -m pip wheel --no-build-isolation --no-deps .
+ if errorlevel 1 exit 1
+ copy mkl_fft*.whl %WHEELS_OUTPUT_FOLDER%
+ if errorlevel 1 exit 1
+) ELSE (
+ rem Build conda package
+ %PYTHON% -m pip install --no-build-isolation --no-deps .
+ if errorlevel 1 exit 1
+)
diff --git a/conda-recipe-cf/build.sh b/conda-recipe-cf/build.sh
index d2a9c69..f55643d 100644
--- a/conda-recipe-cf/build.sh
+++ b/conda-recipe-cf/build.sh
@@ -2,4 +2,17 @@
export MKLROOT=$PREFIX
export CFLAGS="-I$PREFIX/include $CFLAGS"
-$PYTHON -m pip install --no-build-isolation --no-deps .
+export LDFLAGS="-Wl,-rpath,\$ORIGIN/../.. -Wl,-rpath,\$ORIGIN/../../.. -L${PREFIX}/lib ${LDFLAGS}"
+
+read -r GLIBC_MAJOR GLIBC_MINOR <<<"$(conda list '^sysroot_linux-64$' \
+ | tail -n 1 | awk '{print $2}' | grep -oP '\d+' | head -n 2 | tr '\n' ' ')"
+
+# Build wheel package
+if [ -n "${WHEELS_OUTPUT_FOLDER}" ]; then
+ $PYTHON -m pip wheel --no-build-isolation --no-deps .
+ ${PYTHON} -m wheel tags --remove --platform-tag "manylinux_${GLIBC_MAJOR}_${GLIBC_MINOR}_x86_64" mkl_fft*.whl
+ cp mkl_fft*.whl "${WHEELS_OUTPUT_FOLDER}"
+else
+ # Build conda package
+ $PYTHON -m pip install --no-build-isolation --no-deps .
+fi
diff --git a/conda-recipe-cf/conda_build_config.yaml b/conda-recipe-cf/conda_build_config.yaml
new file mode 100644
index 0000000..822fd77
--- /dev/null
+++ b/conda-recipe-cf/conda_build_config.yaml
@@ -0,0 +1,16 @@
+c_compiler: # [linux]
+ - gcc # [linux]
+cxx_compiler: # [linux]
+ - gxx # [linux]
+cxx_compiler_version: # [linux]
+ - '14' # [linux]
+c_stdlib: # [linux]
+ - sysroot # [linux]
+c_stdlib_version: # [linux]
+ - '2.28' # [linux]
+c_stdlib: # [win]
+ - vs # [win]
+cxx_compiler: # [win]
+ - vs2022 # [win]
+c_compiler: # [win]
+ - vs2022 # [win]
diff --git a/conda-recipe-cf/meta.yaml b/conda-recipe-cf/meta.yaml
index 5943880..9e2602c 100644
--- a/conda-recipe-cf/meta.yaml
+++ b/conda-recipe-cf/meta.yaml
@@ -1,29 +1,33 @@
-{% set version = "2.2.0dev1" %}
-{% set buildnumber = 0 %}
-
package:
name: mkl_fft
- version: {{ version }}
+ version: {{ GIT_DESCRIBE_TAG }}
source:
path: ../
build:
- number: {{ buildnumber }}
+ number: {{ GIT_DESCRIBE_NUMBER }}
+ script_env:
+ - WHEELS_OUTPUT_FOLDER
ignore_run_exports:
- blas
requirements:
build:
- {{ compiler('c') }}
+ - {{ stdlib('c') }}
host:
- python
+ - python-gil # [py>=314]
+ - pip
- setuptools >=77
- mkl-devel
- cython
- numpy
+ - wheel >=0.41.3
run:
- python
+ - python-gil # [py>=314]
- mkl-service
- numpy
@@ -36,11 +40,18 @@ test:
imports:
- mkl_fft
- mkl_fft.interfaces
- - mkl_fft.interfaces.numpy_fft
- - mkl_fft.interfaces.scipy_fft
about:
home: http://github.com/IntelPython/mkl_fft
license: BSD-3-Clause
license_file: LICENSE.txt
- summary: NumPy-based implementation of Fast Fourier Transform using IntelĀ® oneAPI Math Kernel Library (OneMKL)
+ summary: NumPy-based implementation of Fast Fourier Transform using IntelĀ® oneAPI Math Kernel Library (oneMKL)
+ description: |
+ LEGAL NOTICE: Use of this software package is subject to the
+ software license agreement (as set forth above, in the license section of
+ the installed Conda package and/or the README file) and all notices,
+ disclaimers or license terms for third party or open source software
+ included in or with the software.
+
+ EULA: BSD-3-Clause
+
diff --git a/conda-recipe/conda_build_config.yaml b/conda-recipe/conda_build_config.yaml
index d6b54bb..822fd77 100644
--- a/conda-recipe/conda_build_config.yaml
+++ b/conda-recipe/conda_build_config.yaml
@@ -11,6 +11,6 @@ c_stdlib_version: # [linux]
c_stdlib: # [win]
- vs # [win]
cxx_compiler: # [win]
- - vs2017 # [win]
+ - vs2022 # [win]
c_compiler: # [win]
- - vs2017 # [win]
+ - vs2022 # [win]