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
11 changes: 6 additions & 5 deletions .github/workflows/wheels.yml
Original file line number Diff line number Diff line change
Expand Up @@ -94,8 +94,8 @@ jobs:
# deploy: 14.0
env:
CIBW_BUILD: cp${{ matrix.python }}-${{ matrix.builder }}_${{ matrix.arch }}
CIBW_MANYLINUX_X86_64_IMAGE: ${{ matrix.builder }}2014
CIBW_MANYLINUX_I686_IMAGE: ${{ matrix.builder }}2014
CIBW_MANYLINUX_X86_64_IMAGE: ${{ matrix.builder }}_2_28
CIBW_MANYLINUX_I686_IMAGE: ${{ matrix.builder }}_2_28
CIBW_BUILD_VERBOSITY: 3
CIBW_ENVIRONMENT_LINUX: >
CC=gcc
Expand All @@ -121,8 +121,9 @@ jobs:
./wheels/install_deps_osx.sh
CIBW_REPAIR_WHEEL_COMMAND_LINUX: ./wheels/repair_wheel_linux.sh {dest_dir} {wheel}
CIBW_REPAIR_WHEEL_COMMAND_MACOS: ./wheels/repair_wheel_macos.sh {dest_dir} {wheel} {delocate_archs}
CIBW_BEFORE_TEST: export OMP_NUM_THREADS=2
CIBW_TEST_REQUIRES: pytest pixell
CIBW_BEFORE_TEST: >
python -m pip install -r test-requirements.txt &&
export OMP_NUM_THREADS=2
CIBW_TEST_COMMAND: >
python -c 'import so3g.smurf.reader; from spt3g import core' &&
python -m pytest {package}/test
Expand All @@ -137,7 +138,7 @@ jobs:

- name: Install cibuildwheel
run: |
python -m pip install cibuildwheel==2.22.0
python -m pip install cibuildwheel==2.23.3

- name: Build wheel
run: |
Expand Down
2 changes: 0 additions & 2 deletions test-requirements.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
# testing
pytest
pytest-cov
# Required for full pointing support and testing
pixell
100 changes: 99 additions & 1 deletion wheels/install_deps_linux.sh
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ python3 -m pip install -v cmake wheel setuptools
pyver=$(python3 --version 2>&1 | awk '{print $2}' | sed -e "s#\(.*\)\.\(.*\)\..*#\1.\2#")

# Install build requirements.
CC="${CC}" CFLAGS="${CFLAGS}" python3 -m pip install -v -r "${scriptdir}/../requirements.txt"
CC="${CC}" CFLAGS="${CFLAGS}" python3 -m pip install -v -r "${scriptdir}/../requirements.txt" --prefer-binary

# Install Openblas

Expand Down Expand Up @@ -159,6 +159,104 @@ tar xzf ${gsl_pkg} \
&& CC="${CC}" CFLAGS="-O3 -fPIC" ../configure --prefix="${PREFIX}" \
&& make -j ${MAKEJ} \
&& make install \
&& popd >/dev/null 2>&1 \
&& popd >/dev/null 2>&1

# Build Eigen

eigen_version=3.4.0
eigen_dir=eigen-${eigen_version}
eigen_pkg=${eigen_dir}.tar.gz

echo "Fetching Eigen..."

if [ ! -e ${eigen_pkg} ]; then
curl -SL "https://gitlab.com/libeigen/eigen/-/archive/${eigen_version}/eigen-${eigen_version}.tar.bz2" -o "${eigen_pkg}"
fi

echo "Building Eigen..."

rm -rf ${eigen_dir}
tar xjf ${eigen_pkg} \
&& pushd ${eigen_dir} >/dev/null 2>&1 \
&& mkdir -p build \
&& pushd build >/dev/null 2>&1 \
&& cmake \
-DCMAKE_INSTALL_PREFIX="${PREFIX}" \
.. \
&& make install \
&& popd >/dev/null 2>&1 \
&& popd >/dev/null 2>&1

# Build GLOG

glog_version=0.7.1
glog_dir=glog-${glog_version}
glog_pkg=${glog_dir}.tar.gz

echo "Fetching GLOG..."

if [ ! -e ${glog_pkg} ]; then
curl -SL "https://github.com/google/glog/archive/refs/tags/v${glog_version}.tar.gz" -o "${glog_pkg}"
fi

echo "Building GLOG..."

rm -rf ${glog_dir}
tar xzf ${glog_pkg} \
&& pushd ${glog_dir} >/dev/null 2>&1 \
&& mkdir -p build \
&& pushd build >/dev/null 2>&1 \
&& cmake \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_C_COMPILER="${CC}" \
-DCMAKE_C_FLAGS="${CFLAGS}" \
-DCMAKE_CXX_COMPILER="${CXX}" \
-DCMAKE_CXX_FLAGS="${CXXFLAGS}" \
-DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \
-DCMAKE_INSTALL_PREFIX="${PREFIX}" \
.. \
&& make -j ${MAKEJ} install \
&& popd >/dev/null 2>&1 \
&& popd >/dev/null 2>&1

# Build Ceres

ceres_version=2.2.0
ceres_dir=ceres-solver-${ceres_version}
ceres_pkg=${ceres_dir}.tar.gz

echo "Fetching ceres-solver..."

if [ ! -e ${ceres_pkg} ]; then
curl -SL "http://ceres-solver.org/ceres-solver-${ceres_version}.tar.gz" -o "${ceres_pkg}"
fi

echo "Building ceres-solver..."

rm -rf ${ceres_dir}
tar xzf ${ceres_pkg} \
&& pushd ${ceres_dir} >/dev/null 2>&1 \
&& mkdir -p build_dir \
&& pushd build_dir >/dev/null 2>&1 \
&& cmake \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_C_COMPILER="${CC}" \
-DCMAKE_C_FLAGS="${CFLAGS}" \
-DCMAKE_CXX_COMPILER="${CXX}" \
-DCMAKE_CXX_FLAGS="${CXXFLAGS}" \
-DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \
-DCMAKE_INSTALL_PREFIX="${PREFIX}" \
-DBUILD_EXAMPLES=OFF \
-DBUILD_BENCHMARKS=OFF \
-DBUILD_SHARED_LIBS=ON \
-DBUILD_TESTING=OFF \
-DGFLAGS=OFF \
-DSUITESPARSE=OFF \
-DBLAS_LIBRARIES='-L/usr/local/lib -lopenblas -fopenmp -lm -lgfortran' \
.. \
&& make -j ${MAKEJ} install \
&& popd >/dev/null 2>&1 \
&& popd >/dev/null 2>&1

# Astropy caching...
Expand Down
100 changes: 99 additions & 1 deletion wheels/install_deps_osx.sh
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ python3 -m pip install cmake wheel setuptools
pyver=$(python3 --version 2>&1 | awk '{print $2}' | sed -e "s#\(.*\)\.\(.*\)\..*#\1.\2#")

# Install build requirements.
CC="${CC}" CFLAGS="${CFLAGS}" python3 -m pip install -v -r "${scriptdir}/../requirements.txt" scipy_openblas32
CC="${CC}" CFLAGS="${CFLAGS}" python3 -m pip install -v -r "${scriptdir}/../requirements.txt" --prefer-binary

# Install Openblas

Expand Down Expand Up @@ -157,6 +157,7 @@ tar xzf ${gsl_pkg} \
&& CC="${CC}" CFLAGS="-O3 -fPIC" ../configure --prefix="${PREFIX}" \
&& make -j ${MAKEJ} \
&& make install \
&& popd >/dev/null 2>&1 \
&& popd >/dev/null 2>&1

# Install boost
Expand Down Expand Up @@ -199,6 +200,103 @@ tar xjf ${boost_pkg} \
variant=release threading=multi link=shared runtime-link=shared install \
&& popd >/dev/null 2>&1

# Build Eigen

eigen_version=3.4.0
eigen_dir=eigen-${eigen_version}
eigen_pkg=${eigen_dir}.tar.gz

echo "Fetching Eigen..."

if [ ! -e ${eigen_pkg} ]; then
curl -SL "https://gitlab.com/libeigen/eigen/-/archive/${eigen_version}/eigen-${eigen_version}.tar.bz2" -o "${eigen_pkg}"
fi

echo "Building Eigen..."

rm -rf ${eigen_dir}
tar xjf ${eigen_pkg} \
&& pushd ${eigen_dir} >/dev/null 2>&1 \
&& mkdir -p build \
&& pushd build >/dev/null 2>&1 \
&& cmake \
-DCMAKE_INSTALL_PREFIX="${PREFIX}" \
.. \
&& make install \
&& popd >/dev/null 2>&1 \
&& popd >/dev/null 2>&1

# Build GLOG

glog_version=0.7.1
glog_dir=glog-${glog_version}
glog_pkg=${glog_dir}.tar.gz

echo "Fetching GLOG..."

if [ ! -e ${glog_pkg} ]; then
curl -SL "https://github.com/google/glog/archive/refs/tags/v${glog_version}.tar.gz" -o "${glog_pkg}"
fi

echo "Building GLOG..."

rm -rf ${glog_dir}
tar xzf ${glog_pkg} \
&& pushd ${glog_dir} >/dev/null 2>&1 \
&& mkdir -p build \
&& pushd build >/dev/null 2>&1 \
&& cmake \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_C_COMPILER="${CC}" \
-DCMAKE_C_FLAGS="${CFLAGS}" \
-DCMAKE_CXX_COMPILER="${CXX}" \
-DCMAKE_CXX_FLAGS="${CXXFLAGS}" \
-DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \
-DCMAKE_INSTALL_PREFIX="${PREFIX}" \
.. \
&& make -j ${MAKEJ} install \
&& popd >/dev/null 2>&1 \
&& popd >/dev/null 2>&1

# Build Ceres

ceres_version=2.2.0
ceres_dir=ceres-solver-${ceres_version}
ceres_pkg=${ceres_dir}.tar.gz

echo "Fetching ceres-solver..."

if [ ! -e ${ceres_pkg} ]; then
curl -SL "http://ceres-solver.org/ceres-solver-${ceres_version}.tar.gz" -o "${ceres_pkg}"
fi

echo "Building ceres-solver..."

rm -rf ${ceres_dir}
tar xzf ${ceres_pkg} \
&& pushd ${ceres_dir} >/dev/null 2>&1 \
&& mkdir -p build_dir \
&& pushd build_dir >/dev/null 2>&1 \
&& cmake \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_C_COMPILER="${CC}" \
-DCMAKE_C_FLAGS="${CFLAGS}" \
-DCMAKE_CXX_COMPILER="${CXX}" \
-DCMAKE_CXX_FLAGS="${CXXFLAGS}" \
-DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \
-DCMAKE_INSTALL_PREFIX="${PREFIX}" \
-DBUILD_EXAMPLES=OFF \
-DBUILD_BENCHMARKS=OFF \
-DBUILD_SHARED_LIBS=ON \
-DBUILD_TESTING=OFF \
-DGFLAGS=OFF \
-DSUITESPARSE=OFF \
-DBLAS_LIBRARIES='/usr/local/lib/libopenblas.dylib' \
.. \
&& make -j ${MAKEJ} install \
&& popd >/dev/null 2>&1 \
&& popd >/dev/null 2>&1

# Astropy caching...

echo "Attempting to trigger astropy IERS download..."
Expand Down
5 changes: 2 additions & 3 deletions wheels/test_local_cibuildwheel.sh
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,12 @@
export CIBW_DEBUG_KEEP_CONTAINER=TRUE

export CIBW_BUILD="cp312-manylinux_x86_64"
export CIBW_MANYLINUX_X86_64_IMAGE="manylinux2014"
export CIBW_MANYLINUX_X86_64_IMAGE="manylinux_2_28"
export CIBW_BUILD_VERBOSITY=3
export CIBW_ENVIRONMENT_LINUX="CC=gcc CXX=g++ CFLAGS='-O3 -fPIC' CXXFLAGS='-O3 -fPIC -std=c++14'"
export CIBW_BEFORE_BUILD_LINUX="./wheels/install_deps_linux.sh"
export CIBW_REPAIR_WHEEL_COMMAND_LINUX="./wheels/repair_wheel_linux.sh {dest_dir} {wheel}"
export CIBW_BEFORE_TEST="export OMP_NUM_THREADS=2"
export CIBW_TEST_REQUIRES="pytest"
export CIBW_BEFORE_TEST="python -m pip install -r test-requirements.txt && export OMP_NUM_THREADS=2"
export CIBW_TEST_COMMAND="python -c 'import so3g.smurf.reader; from spt3g import core' && python -m pytest {package}/test"

# Get the current date for logging
Expand Down