Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
47 changes: 9 additions & 38 deletions .github/workflows/build_wheels.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,19 +21,12 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
submodules: recursive

- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: ">=3.11.0"

- name: Verify QuadBLAS submodule
run: |
ls -la quaddtype/numpy_quaddtype/QBLAS/
ls -la quaddtype/numpy_quaddtype/QBLAS/include/quadblas/

- name: Install cibuildwheel
run: pip install cibuildwheel==3.1.4

Expand All @@ -56,8 +49,8 @@ jobs:
cmake --build build/ --clean-first -j
cmake --install build --prefix /usr/local
CIBW_ENVIRONMENT: >
CFLAGS="-I/usr/local/include -I{project}/numpy_quaddtype/QBLAS/include $CFLAGS"
CXXFLAGS="-I/usr/local/include -I{project}/numpy_quaddtype/QBLAS/include -fext-numeric-literals $CXXFLAGS"
CFLAGS="-I/usr/local/include $CFLAGS"
CXXFLAGS="-I/usr/local/include $CXXFLAGS"
LDFLAGS="-L/usr/local/lib64 -L/usr/local/lib -Wl,-rpath,/usr/local/lib64 -Wl,-rpath,/usr/local/lib -fopenmp $LDFLAGS"
LD_LIBRARY_PATH="/usr/local/lib64:/usr/local/lib:$LD_LIBRARY_PATH"
PKG_CONFIG_PATH="/usr/local/lib64/pkgconfig:/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH"
Expand Down Expand Up @@ -89,8 +82,6 @@ jobs:

steps:
- uses: actions/checkout@v3
with:
submodules: recursive

- name: Set up Python
uses: actions/setup-python@v4
Expand Down Expand Up @@ -123,11 +114,6 @@ jobs:
cmake --build build/ --clean-first -j
sudo cmake --install build --prefix /usr/local

- name: Verify QuadBLAS submodule
run: |
ls -la quaddtype/numpy_quaddtype/QBLAS/
ls -la quaddtype/numpy_quaddtype/QBLAS/include/quadblas/

- name: Installing Python dependencies
run: |
pip install -U pip
Expand All @@ -143,8 +129,8 @@ jobs:
CIBW_ENVIRONMENT: >
MACOSX_DEPLOYMENT_TARGET="${{ matrix.os == 'macos-13' && '13.0' || '14.0' }}"
DYLD_LIBRARY_PATH="/usr/local/lib:$DYLD_LIBRARY_PATH"
CFLAGS="-I/usr/local/include -I{project}/numpy_quaddtype/QBLAS/include $CFLAGS"
CXXFLAGS="-I/usr/local/include -I{project}/numpy_quaddtype/QBLAS/include $CXXFLAGS"
CFLAGS="-I/usr/local/include $CFLAGS"
CXXFLAGS="-I/usr/local/include $CXXFLAGS"
LDFLAGS="-L/usr/local/lib $LDFLAGS"
PKG_CONFIG_PATH="/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH"
CIBW_REPAIR_WHEEL_COMMAND: >
Expand Down Expand Up @@ -176,8 +162,6 @@ jobs:

steps:
- uses: actions/checkout@v3
with:
submodules: recursive

- name: Setup MSVC
uses: ilammy/msvc-dev-cmd@v1
Expand All @@ -193,12 +177,6 @@ jobs:
- name: Install CMake
uses: lukka/get-cmake@latest

- name: Verify QuadBLAS submodule
shell: pwsh
run: |
Get-ChildItem quaddtype/numpy_quaddtype/QBLAS/
Get-ChildItem quaddtype/numpy_quaddtype/QBLAS/include/quadblas/

- name: Clone and Build SLEEF
shell: pwsh
run: |
Expand Down Expand Up @@ -226,11 +204,11 @@ jobs:
CIBW_BEFORE_BUILD: |
pip install meson meson-python ninja numpy
CIBW_ENVIRONMENT: >
INCLUDE="C:/sleef/include;{project}/numpy_quaddtype/QBLAS/include;$INCLUDE"
INCLUDE="C:/sleef/include;$INCLUDE"
LIB="C:/sleef/lib;$LIB"
PATH="C:/sleef/bin;$PATH"
CFLAGS="/IC:/sleef/include /I{project}/numpy_quaddtype/QBLAS/include /DDISABLE_QUADBLAS $CFLAGS"
CXXFLAGS="/IC:/sleef/include /I{project}/numpy_quaddtype/QBLAS/include /DDISABLE_QUADBLAS $CXXFLAGS"
CFLAGS="/IC:/sleef/include /DDISABLE_QUADBLAS $CFLAGS"
CXXFLAGS="/IC:/sleef/include /DDISABLE_QUADBLAS $CXXFLAGS"
LDFLAGS="C:/sleef/lib/sleef.lib C:/sleef/lib/sleefquad.lib $LDFLAGS"
CIBW_REPAIR_WHEEL_COMMAND: 'delvewheel repair -w {dest_dir} {wheel} --add-path C:\sleef\bin'
CIBW_TEST_COMMAND: |
Expand Down Expand Up @@ -258,19 +236,12 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
submodules: recursive

- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: ">=3.11.0"

- name: Verify QuadBLAS submodule
run: |
ls -la quaddtype/numpy_quaddtype/QBLAS/
ls -la quaddtype/numpy_quaddtype/QBLAS/include/quadblas/

- name: Install system dependencies
run: |
sudo apt-get update -y
Expand All @@ -294,8 +265,8 @@ jobs:

- name: Build SDist
env:
CFLAGS: "-I/usr/local/include -I$(pwd)/numpy_quaddtype/QBLAS/include"
CXXFLAGS: "-I/usr/local/include -I$(pwd)/numpy_quaddtype/QBLAS/include -fext-numeric-literals"
CFLAGS: "-I/usr/local/include"
CXXFLAGS: "-I/usr/local/include"
LDFLAGS: "-L/usr/local/lib64 -L/usr/local/lib -Wl,-rpath,/usr/local/lib64 -Wl,-rpath,/usr/local/lib -fopenmp"
LD_LIBRARY_PATH: "/usr/local/lib64:/usr/local/lib:$LD_LIBRARY_PATH"
PKG_CONFIG_PATH: "/usr/local/lib64/pkgconfig:/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH"
Expand Down
8 changes: 2 additions & 6 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -73,13 +73,9 @@ jobs:
- name: Install quaddtype
working-directory: quaddtype
run: |
# Initialize submodules first
git submodule update --init --recursive
ls -la numpy_quaddtype/QBLAS/

# Set environment variables with proper export and correct paths
export CFLAGS="-I/usr/local/include -I$(pwd)/numpy_quaddtype/QBLAS/include"
export CXXFLAGS="-I/usr/local/include -I$(pwd)/numpy_quaddtype/QBLAS/include -fext-numeric-literals"
export CFLAGS="-I/usr/local/include"
export CXXFLAGS="-I/usr/local/include"
export LDFLAGS="-L/usr/local/lib64 -L/usr/local/lib -Wl,-rpath,/usr/local/lib64 -Wl,-rpath,/usr/local/lib -fopenmp"
export LD_LIBRARY_PATH="/usr/local/lib64:/usr/local/lib:$LD_LIBRARY_PATH"

Expand Down
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -137,3 +137,7 @@ compile_commands.json
*.whl
.DS_Store
.idea/

# quddtype
/quaddtype/subprojects/qblas/
.wraplock
3 changes: 0 additions & 3 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,3 +0,0 @@
[submodule "quaddtype/numpy_quaddtype/QBLAS"]
path = quaddtype/numpy_quaddtype/QBLAS
url = https://github.com/SwayamInSync/QBLAS
19 changes: 14 additions & 5 deletions quaddtype/meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -23,13 +23,23 @@ incdir_numpy = run_command(py,
check : true
).stdout().strip()

# Add OpenMP dependency (optional, for threading)
# OpenMP dependency (optional, for threading)
openmp_dep = dependency('openmp', required: false)
dependencies = [sleef_dep, py_dep]
qblas_dep = dependency('qblas', fallback: ['qblas', 'qblas_dep'])
dependencies = [sleef_dep, py_dep, qblas_dep]
if openmp_dep.found()
dependencies += openmp_dep
endif

# compiler flags for QBLAS compatibility
if not is_windows
# QBLAS requires extended numeric literals for Q suffix support
# if compiler supports (usually gcc)
if cpp.has_argument('-fext-numeric-literals')
add_project_arguments('-fext-numeric-literals', language: 'cpp')
endif
endif

# Thread-local storage detection (borrowed from NumPy)
optional_variable_attributes = [
['thread_local', 'HAVE_THREAD_LOCAL'], # C23
Expand Down Expand Up @@ -66,12 +76,11 @@ configure_file(
configuration: cdata
)

build_includes = include_directories('.')

build_includes = include_directories('.') # compile time generated headers as per system
includes = include_directories(
[
incdir_numpy,
'numpy_quaddtype/QBLAS/include',
# 'subprojects/qblas/include',
'numpy_quaddtype/src',
]
)
Expand Down
1 change: 0 additions & 1 deletion quaddtype/numpy_quaddtype/QBLAS
Submodule QBLAS deleted from 9468e2
2 changes: 1 addition & 1 deletion quaddtype/numpy_quaddtype/src/quadblas_interface.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
#include <algorithm>

#ifndef DISABLE_QUADBLAS
#include "../QBLAS/include/quadblas/quadblas.hpp"
#include "../subprojects/qblas/include/quadblas/quadblas.hpp"
#endif // DISABLE_QUADBLAS

extern "C" {
Expand Down
8 changes: 8 additions & 0 deletions quaddtype/subprojects/packagefiles/qblas/meson.build
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
project('qblas', version: '1.0.0')

qblas_inc = include_directories('include')

qblas_dep = declare_dependency(
include_directories: qblas_inc,
version: meson.project_version()
)
8 changes: 8 additions & 0 deletions quaddtype/subprojects/qblas.wrap
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
[wrap-git]
directory=qblas
url=https://github.com/SwayamInSync/QBLAS.git
revision=9468e24a02b731563eba2aee0350e9219b36c102
patch_directory = qblas

[provide]
qblas = qblas_dep
Loading