diff options
author | Willem Jan Palenstijn <Willem.Jan.Palenstijn@cwi.nl> | 2019-09-25 13:55:23 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-09-25 13:55:23 +0200 |
commit | 1fec36f7ccadd5f7dcf2bb59b0654dc53653b0f3 (patch) | |
tree | d326f7936b3dec5c0d61349047516a67127da7a6 /python/conda | |
parent | 6e9fb3ec670863b62006288cd8bba5b773530a53 (diff) | |
parent | d621b2ceed23f4ecc945b00ffd6e859b70b89b50 (diff) | |
download | astra-1fec36f7ccadd5f7dcf2bb59b0654dc53653b0f3.tar.gz astra-1fec36f7ccadd5f7dcf2bb59b0654dc53653b0f3.tar.bz2 astra-1fec36f7ccadd5f7dcf2bb59b0654dc53653b0f3.tar.xz astra-1fec36f7ccadd5f7dcf2bb59b0654dc53653b0f3.zip |
Merge pull request #214 from ahendriksen/CI-use-conda-c-compiler-toolchain
Use conda compiler toolchain for conda builds
Diffstat (limited to 'python/conda')
-rw-r--r-- | python/conda/astra-toolbox/conda_build_config_py27.yaml | 5 | ||||
-rw-r--r-- | python/conda/astra-toolbox/conda_build_config_py35.yaml | 4 | ||||
-rw-r--r-- | python/conda/astra-toolbox/conda_build_config_py36.yaml | 4 | ||||
-rw-r--r-- | python/conda/astra-toolbox/conda_build_config_py37.yaml | 4 | ||||
-rw-r--r-- | python/conda/astra-toolbox/meta.yaml | 8 | ||||
-rwxr-xr-x[-rw-r--r--] | python/conda/libastra/build.sh | 26 | ||||
-rw-r--r-- | python/conda/libastra/linux_build_config.yaml | 4 | ||||
-rw-r--r-- | python/conda/libastra/meta.yaml | 13 | ||||
-rwxr-xr-x[-rw-r--r--] | python/conda/linux_release/buildenv/build.sh | 13 |
9 files changed, 52 insertions, 29 deletions
diff --git a/python/conda/astra-toolbox/conda_build_config_py27.yaml b/python/conda/astra-toolbox/conda_build_config_py27.yaml index f119b61..869d22e 100644 --- a/python/conda/astra-toolbox/conda_build_config_py27.yaml +++ b/python/conda/astra-toolbox/conda_build_config_py27.yaml @@ -8,3 +8,8 @@ numpy: - 1.14 - 1.15 - 1.16 + +c_compiler_version: + - 7.3 +cxx_compiler_version: + - 7.3 diff --git a/python/conda/astra-toolbox/conda_build_config_py35.yaml b/python/conda/astra-toolbox/conda_build_config_py35.yaml index 8dd963c..72d4cef 100644 --- a/python/conda/astra-toolbox/conda_build_config_py35.yaml +++ b/python/conda/astra-toolbox/conda_build_config_py35.yaml @@ -3,3 +3,7 @@ python: numpy: - 1.15 +c_compiler_version: + - 7.3 +cxx_compiler_version: + - 7.3 diff --git a/python/conda/astra-toolbox/conda_build_config_py36.yaml b/python/conda/astra-toolbox/conda_build_config_py36.yaml index f043435..996e22c 100644 --- a/python/conda/astra-toolbox/conda_build_config_py36.yaml +++ b/python/conda/astra-toolbox/conda_build_config_py36.yaml @@ -5,3 +5,7 @@ numpy: - 1.14 - 1.15 - 1.16 +c_compiler_version: + - 7.3 +cxx_compiler_version: + - 7.3 diff --git a/python/conda/astra-toolbox/conda_build_config_py37.yaml b/python/conda/astra-toolbox/conda_build_config_py37.yaml index ebbf44a..4282407 100644 --- a/python/conda/astra-toolbox/conda_build_config_py37.yaml +++ b/python/conda/astra-toolbox/conda_build_config_py37.yaml @@ -6,3 +6,7 @@ numpy: - 1.14 - 1.15 - 1.16 +c_compiler_version: + - 7.3 +cxx_compiler_version: + - 7.3 diff --git a/python/conda/astra-toolbox/meta.yaml b/python/conda/astra-toolbox/meta.yaml index 054751b..b3c036b 100644 --- a/python/conda/astra-toolbox/meta.yaml +++ b/python/conda/astra-toolbox/meta.yaml @@ -8,8 +8,7 @@ source: build: number: 0 - script_env: - - CC # [linux] + string: py_{{ python }}_numpy_{{ numpy }} test: imports: @@ -24,14 +23,17 @@ test: requirements: build: + - {{ compiler('c') }} # [win or linux] + - {{ compiler('cxx') }} # [linux] + host: - python - cython >=0.13 + - boost # [osx or linux] - nomkl # [not win] - numpy {{ numpy }} - scipy - six - libastra ==1.9.0.dev11 - run: - python - {{ pin_compatible('numpy', min_pin='x.x', max_pin='x.x') }} diff --git a/python/conda/libastra/build.sh b/python/conda/libastra/build.sh index d19c7af..4e48ba6 100644..100755 --- a/python/conda/libastra/build.sh +++ b/python/conda/libastra/build.sh @@ -18,35 +18,27 @@ cd $SRC_DIR/build/linux $SRC_DIR/build/linux/autogen.sh -# Add C++11 to compiler flags if nvcc supports it, mostly to work around a boost bug +# Add C++11 to compiler flags, mostly to work around a boost bug. +# Since we require cudatoolkit>=8.0 nvcc supports this. NVCC=$CUDA_ROOT/bin/nvcc -echo "int main(){return 0;}" > $CONDA_PREFIX/test.cu -$NVCC $CONDA_PREFIX/test.cu -ccbin $CC --std=c++11 -o $CONDA_PREFIX/test.out > /dev/null 2>&1 && EXTRA_NVCCFLAGS="--std=c++11" || true -rm -f $CONDA_PREFIX/test.out $CONDA_PREFIX/test.cu +EXTRA_NVCCFLAGS="--std=c++11" -$SRC_DIR/build/linux/configure --with-install-type=prefix --with-cuda=$CUDA_ROOT --prefix=$CONDA_PREFIX NVCCFLAGS="-ccbin $CC -I$CONDA_PREFIX/include $EXTRA_NVCCFLAGS" CC=$CC CXX=$CXX CPPFLAGS="-I$CONDA_PREFIX/include" + +$SRC_DIR/build/linux/configure --with-install-type=prefix --with-cuda=$CUDA_ROOT --prefix=$PREFIX NVCCFLAGS="-ccbin $CC -I$PREFIX/include $EXTRA_NVCCFLAGS" CC=$CC CXX=$CXX CPPFLAGS="-I$PREFIX/include" # Clean, because we may be re-using this source tree when building # multiple variants of this conda package. make clean -make -j $CPU_COUNT install-libraries +make -j $CPU_COUNT +make -j $CPU_COUNT install-dev test -d $CUDA_ROOT/lib64 && LIBPATH="$CUDA_ROOT/lib64" || LIBPATH="$CUDA_ROOT/lib" case `uname` in Darwin*) - cp -P $LIBPATH/libcudart.*.dylib $CONDA_PREFIX/lib - cp -P $LIBPATH/libcufft.*.dylib $CONDA_PREFIX/lib - ;; - Linux*) - if [ "$cudatoolkit" = "7.0" ]; then - # For some reason conda-build adds these symlinks automatically for - # cudatoolkit-5.5 and 6.0, but not 7.0. For 7.5 these symlinks are not - # necessary, and for 8.0 the cudatoolkit packages includes them. - ln -T -s libcudart.so.7.0.28 $CONDA_PREFIX/lib/libcudart.so.7.0 - ln -T -s libcufft.so.7.0.35 $CONDA_PREFIX/lib/libcufft.so.7.0 - fi + cp -P $LIBPATH/libcudart.*.dylib $PREFIX/lib + cp -P $LIBPATH/libcufft.*.dylib $PREFIX/lib ;; esac diff --git a/python/conda/libastra/linux_build_config.yaml b/python/conda/libastra/linux_build_config.yaml index 41db828..b415b4a 100644 --- a/python/conda/libastra/linux_build_config.yaml +++ b/python/conda/libastra/linux_build_config.yaml @@ -4,3 +4,7 @@ cudatoolkit: - 9.2 - 10.0 - 10.1 +c_compiler_version: # [linux or win] + - 5.4 # [linux or win] +cxx_compiler_version: # [linux or win] + - 5.4 # [linux or win] diff --git a/python/conda/libastra/meta.yaml b/python/conda/libastra/meta.yaml index 59c3a09..407929b 100644 --- a/python/conda/libastra/meta.yaml +++ b/python/conda/libastra/meta.yaml @@ -8,21 +8,22 @@ source: build: number: 0 - script_env: - - CC # [linux] - - CXX # [linux] + string: cuda_{{ cudatoolkit }} # [linux] requirements: build: - - {{compiler('c')}} # [win] + - {{ compiler('c') }} # [win or linux] + - {{ compiler('cxx') }} # [linux] - boost # [osx] - automake # [osx] - autoconf # [osx] - libtool # [osx] + host: + - boost # [osx or linux] - cudatoolkit {{ cudatoolkit }} # [linux] - run: - - cudatoolkit {{ cudatoolkit }} # [linux] + # See: https://github.com/conda-forge/conda-forge.github.io/issues/687#issuecomment-460095230 + - {{ pin_compatible('cudatoolkit', max_pin='x.x') }} # [linux] about: home: http://www.astra-toolbox.com diff --git a/python/conda/linux_release/buildenv/build.sh b/python/conda/linux_release/buildenv/build.sh index cc6dc31..158c1d5 100644..100755 --- a/python/conda/linux_release/buildenv/build.sh +++ b/python/conda/linux_release/buildenv/build.sh @@ -1,16 +1,23 @@ #!/bin/sh -export CC=gcc -export CXX=g++ +set -e + +BRANCH=master +URL=https://github.com/astra-toolbox/astra-toolbox + +echo "Cloning from ${URL}" +echo " branch: ${BRANCH}" cd /root -git clone --depth 1 --branch master https://github.com/astra-toolbox/astra-toolbox +git clone --depth 1 --branch ${BRANCH} ${URL} + [ $# -eq 0 ] || perl -pi -e "s/^(\s*version:\s*)[0-9a-z+\.']+$/\${1}'$1'/" astra-toolbox/python/conda/libastra/meta.yaml astra-toolbox/python/conda/astra-toolbox/meta.yaml [ $# -eq 0 ] || perl -pi -e "s/^(\s*number:\s*)[0-9]+$/\${1}$2/" astra-toolbox/python/conda/libastra/meta.yaml astra-toolbox/python/conda/astra-toolbox/meta.yaml [ $# -eq 0 ] || perl -pi -e "s/^(\s*-\s*libastra\s*==\s*)[0-9a-z+\.]+$/\${1}$1/" astra-toolbox/python/conda/astra-toolbox/meta.yaml conda-build -m astra-toolbox/python/conda/libastra/linux_build_config.yaml astra-toolbox/python/conda/libastra + for i in 27 35 36 37; do conda-build -m astra-toolbox/python/conda/astra-toolbox/conda_build_config_py$i.yaml astra-toolbox/python/conda/astra-toolbox done |