Skip to content

Commit

Permalink
Merge pull request #89 from minrk/770
Browse files Browse the repository at this point in the history
7.7.0
  • Loading branch information
minrk authored May 2, 2024
2 parents 516c571 + e40d733 commit 2733897
Show file tree
Hide file tree
Showing 15 changed files with 91 additions and 94 deletions.
1 change: 1 addition & 0 deletions .azure-pipelines/azure-pipelines-linux.yml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 2 additions & 1 deletion .azure-pipelines/azure-pipelines-osx.yml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

11 changes: 11 additions & 0 deletions .ci_support/linux_64_.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@ c_compiler:
- gcc
c_compiler_version:
- '12'
c_stdlib:
- sysroot
c_stdlib_version:
- '2.12'
cdt_name:
- cos6
channel_sources:
Expand All @@ -14,6 +18,10 @@ cxx_compiler_version:
- '12'
docker_image:
- quay.io/condaforge/linux-anvil-cos7-x86_64
fortran_compiler:
- gfortran
fortran_compiler_version:
- '12'
libblas:
- 3.9 *netlib
libcblas:
Expand All @@ -31,3 +39,6 @@ tbb_devel:
zip_keys:
- - c_compiler_version
- cxx_compiler_version
- fortran_compiler_version
- - c_stdlib_version
- cdt_name
11 changes: 11 additions & 0 deletions .ci_support/linux_aarch64_.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@ c_compiler:
- gcc
c_compiler_version:
- '12'
c_stdlib:
- sysroot
c_stdlib_version:
- '2.17'
cdt_arch:
- aarch64
cdt_name:
Expand All @@ -18,6 +22,10 @@ cxx_compiler_version:
- '12'
docker_image:
- quay.io/condaforge/linux-anvil-cos7-x86_64
fortran_compiler:
- gfortran
fortran_compiler_version:
- '12'
libblas:
- 3.9 *netlib
libcblas:
Expand All @@ -35,3 +43,6 @@ tbb_devel:
zip_keys:
- - c_compiler_version
- cxx_compiler_version
- fortran_compiler_version
- - c_stdlib_version
- cdt_name
11 changes: 11 additions & 0 deletions .ci_support/linux_ppc64le_.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@ c_compiler:
- gcc
c_compiler_version:
- '12'
c_stdlib:
- sysroot
c_stdlib_version:
- '2.17'
cdt_name:
- cos7
channel_sources:
Expand All @@ -14,6 +18,10 @@ cxx_compiler_version:
- '12'
docker_image:
- quay.io/condaforge/linux-anvil-ppc64le
fortran_compiler:
- gfortran
fortran_compiler_version:
- '12'
libblas:
- 3.9 *netlib
libcblas:
Expand All @@ -31,3 +39,6 @@ tbb_devel:
zip_keys:
- - c_compiler_version
- cxx_compiler_version
- fortran_compiler_version
- - c_stdlib_version
- cdt_name
9 changes: 9 additions & 0 deletions .ci_support/osx_64_.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@ c_compiler:
- clang
c_compiler_version:
- '16'
c_stdlib:
- macosx_deployment_target
c_stdlib_version:
- '10.9'
channel_sources:
- conda-forge
channel_targets:
Expand All @@ -12,6 +16,10 @@ cxx_compiler:
- clangxx
cxx_compiler_version:
- '16'
fortran_compiler:
- gfortran
fortran_compiler_version:
- '12'
libblas:
- 3.9 *netlib
libcblas:
Expand All @@ -31,3 +39,4 @@ tbb_devel:
zip_keys:
- - c_compiler_version
- cxx_compiler_version
- fortran_compiler_version
9 changes: 9 additions & 0 deletions .ci_support/osx_arm64_.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@ c_compiler:
- clang
c_compiler_version:
- '16'
c_stdlib:
- macosx_deployment_target
c_stdlib_version:
- '11.0'
channel_sources:
- conda-forge
channel_targets:
Expand All @@ -12,6 +16,10 @@ cxx_compiler:
- clangxx
cxx_compiler_version:
- '16'
fortran_compiler:
- gfortran
fortran_compiler_version:
- '12'
libblas:
- 3.9 *netlib
libcblas:
Expand All @@ -31,3 +39,4 @@ tbb_devel:
zip_keys:
- - c_compiler_version
- cxx_compiler_version
- fortran_compiler_version
6 changes: 3 additions & 3 deletions .scripts/build_steps.sh

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 3 additions & 3 deletions .scripts/run_osx_build.sh

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion README.md

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 3 additions & 2 deletions build-locally.py

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 0 additions & 2 deletions recipe/Makefile.empty

This file was deleted.

62 changes: 15 additions & 47 deletions recipe/build.sh
Original file line number Diff line number Diff line change
@@ -1,13 +1,5 @@
#!/bin/bash

if [ "$(uname)" == "Darwin" ]
then
export DYLD_FALLBACK_LIBRARY_PATH="${PREFIX}/lib"
DYNAMIC_EXT=".dylib"
else
export LD_LIBRARY_PATH="${PREFIX}/lib"
DYNAMIC_EXT=".so"
fi

# conda compilers strip links that aren't used by default,
# even if explicitly given.
Expand All @@ -17,44 +9,20 @@ fi
export LDFLAGS=${LDFLAGS/-Wl,--as-needed/}
export LDFLAGS=${LDFLAGS/-Wl,-dead_strip_dylibs/}

export INSTALL="${PREFIX}"
# continue to ignore docs
export INSTALL_DOC="${SRC_DIR}/doc"
# make sure CMake install goes in the right place
export CMAKE_OPTIONS="-DCMAKE_INSTALL_PREFIX=${PREFIX} -DCMAKE_INSTALL_LIBDIR=lib"

export BLAS="-lblas -llapack"
export LAPACK="-lblas -llapack"

export CUDA="no"

# export environment variable so SuiteSparse will use the METIS built above
export MY_METIS_LIB="-L${PREFIX}/lib -lmetis -Wl,-rpath,$PREFIX/lib"
export MY_METIS_INC="-I${PREFIX}/include"
export CMAKE_ARGS="${CMAKE_ARGS} -DSUITESPARSE_USE_CUDA=OFF"

# (optional) write out various make variables for easier build debugging
make config 2>&1 | tee make_config.txt

# skip graphblas, mongoose by giving them a no-op makefile
cp -v ${RECIPE_DIR}/Makefile.empty GraphBLAS/Makefile
cp -v ${RECIPE_DIR}/Makefile.empty Mongoose/Makefile

# make SuiteSparse
make library static VERBOSE=1
make install
if [[ "${target_platform}" != "${build_platform}" ]]; then
export CMAKE_ARGS="${CMAKE_ARGS} -DCMAKE_CROSSCOMPILING=ON"
fi

# manually install the static libraries
cp ${SRC_DIR}/AMD/Lib/libamd.a ${PREFIX}/lib
cp ${SRC_DIR}/BTF/Lib/libbtf.a ${PREFIX}/lib
cp ${SRC_DIR}/CAMD/Lib/libcamd.a ${PREFIX}/lib
cp ${SRC_DIR}/CCOLAMD/Lib/libccolamd.a ${PREFIX}/lib
cp ${SRC_DIR}/CHOLMOD/Lib/libcholmod.a ${PREFIX}/lib
cp ${SRC_DIR}/COLAMD/Lib/libcolamd.a ${PREFIX}/lib
cp ${SRC_DIR}/CSparse/Lib/libcsparse.a ${PREFIX}/lib
cp ${SRC_DIR}/CXSparse/Lib/libcxsparse.a ${PREFIX}/lib
cp ${SRC_DIR}/KLU/Lib/libklu.a ${PREFIX}/lib
cp ${SRC_DIR}/LDL/Lib/libldl.a ${PREFIX}/lib
cp ${SRC_DIR}/RBio/Lib/librbio.a ${PREFIX}/lib
cp ${SRC_DIR}/SPQR/Lib/libspqr.a ${PREFIX}/lib
cp ${SRC_DIR}/SuiteSparse_config/libsuitesparseconfig.a ${PREFIX}/lib
cp ${SRC_DIR}/UMFPACK/Lib/libumfpack.a ${PREFIX}/lib
# add
# can add lagraph and -DSUITESPARSE_USE_SYSTEM_GRAPHBLAS after packaging 9.1
cmake -B build \
-DSUITESPARSE_ENABLE_PROJECTS="suitesparse_config;amd;btf;camd;ccolamd;colamd;cholmod;cxsparse;ldl;klu;umfpack;paru;rbio;spqr;spex" \
-DBLA_VENDOR="Generic" \
-DBLAS_LIBRARIES="$PREFIX/lib/libblas${SHLIB_EXT};$PREFIX/lib/libcblas${SHLIB_EXT}" \
-DBUILD_SHARED_LIBS=ON \
-DBUILD_STATIC_LIBS=OFF \
${CMAKE_ARGS}
cmake --build build --parallel "${CPU_COUNT:-1}" --verbose
cmake --install build --verbose
45 changes: 11 additions & 34 deletions recipe/meta.yaml
Original file line number Diff line number Diff line change
@@ -1,23 +1,25 @@
{% set version = "5.10.1" %}
{% set version = "7.7.0" %}

package:
name: suitesparse
version: {{ version }}

source:
url: https://github.com/DrTimothyAldenDavis/SuiteSparse/archive/v{{ version }}.tar.gz
sha256: acb4d1045f48a237e70294b950153e48dce5b5f9ca8190e86c2b8c54ce00a7ee
sha256: 529b067f5d80981f45ddf6766627b8fc5af619822f068f342aab776e683df4f3

build:
skip: true # [win]
number: 3
number: 0
run_exports:
- {{ pin_subpackage("suitesparse") }}

requirements:
build:
- {{ compiler('c') }}
- {{ stdlib('c') }}
- {{ compiler('cxx') }}
- {{ compiler('fortran') }}
- cmake
- make
host:
Expand All @@ -27,8 +29,6 @@ requirements:
- tbb-devel
- metis
- mpfr
run:
- metis

test:
commands:
Expand All @@ -41,35 +41,12 @@ test:
- test ! -f ${PREFIX}/lib/libgraphblas.a
- test ! -f ${PREFIX}/lib/libmongoose.a

- test -f ${PREFIX}/include/amd.h
- test -f ${PREFIX}/include/umfpack.h
- test -f ${PREFIX}/lib/libamd${SHLIB_EXT}
- test -f ${PREFIX}/lib/libbtf${SHLIB_EXT}
- test -f ${PREFIX}/lib/libcamd${SHLIB_EXT}
- test -f ${PREFIX}/lib/libccolamd${SHLIB_EXT}
- test -f ${PREFIX}/lib/libcholmod${SHLIB_EXT}
- test -f ${PREFIX}/lib/libcolamd${SHLIB_EXT}
- test -f ${PREFIX}/lib/libcxsparse${SHLIB_EXT}
- test -f ${PREFIX}/lib/libklu${SHLIB_EXT}
- test -f ${PREFIX}/lib/libldl${SHLIB_EXT}
- test -f ${PREFIX}/lib/librbio${SHLIB_EXT}
- test -f ${PREFIX}/lib/libspqr${SHLIB_EXT}
- test -f ${PREFIX}/lib/libsuitesparseconfig${SHLIB_EXT}
- test -f ${PREFIX}/lib/libumfpack${SHLIB_EXT}
- test -f ${PREFIX}/lib/libumfpack${SHLIB_EXT}
- test -f ${PREFIX}/lib/libamd.a
- test -f ${PREFIX}/lib/libbtf.a
- test -f ${PREFIX}/lib/libcamd.a
- test -f ${PREFIX}/lib/libccolamd.a
- test -f ${PREFIX}/lib/libcholmod.a
- test -f ${PREFIX}/lib/libcolamd.a
- test -f ${PREFIX}/lib/libcxsparse.a
- test -f ${PREFIX}/lib/libklu.a
- test -f ${PREFIX}/lib/libldl.a
- test -f ${PREFIX}/lib/librbio.a
- test -f ${PREFIX}/lib/libspqr.a
- test -f ${PREFIX}/lib/libsuitesparseconfig.a
- test -f ${PREFIX}/lib/libumfpack.a
- test -f ${PREFIX}/include/suitesparse/amd.h
- test -f ${PREFIX}/include/suitesparse/umfpack.h
{% for name in ['amd', 'btf', 'camd', 'ccolamd', 'cholmod', 'colamd', 'cxsparse', 'klu', 'ldl', 'rbio', 'spqr', 'suitesparseconfig', 'umfpack'] %}
- test -f ${PREFIX}/lib/lib{{ name }}${SHLIB_EXT}
- test ! -f ${PREFIX}/lib/lib{{ name }}.a
{% endfor %}

about:
home: http://faculty.cse.tamu.edu/davis/suitesparse.html
Expand Down
2 changes: 1 addition & 1 deletion recipe/run_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ def check_install_name(name):
otool = check_output(["otool", "-L", path]).decode("utf8")
self_line = otool.splitlines()[1]
install_name = self_line.strip().split()[0]
pat = "@rpath/lib{}\.\d+\.dylib".format(name)
pat = r"@rpath/lib{}\.\d+\.dylib".format(name)
assert re.match(pat, install_name), "{} != {}".format(install_name, pat)


Expand Down

0 comments on commit 2733897

Please sign in to comment.