diff --git a/.azure-pipelines/azure-pipelines-linux.yml b/.azure-pipelines/azure-pipelines-linux.yml index 7fdc9894..25dda213 100755 --- a/.azure-pipelines/azure-pipelines-linux.yml +++ b/.azure-pipelines/azure-pipelines-linux.yml @@ -11,12 +11,11 @@ jobs: linux_64_c_compiler_version7cuda_compiler_version9.2cxx_compiler_version7fortran_compiler_version7: CONFIG: linux_64_c_compiler_version7cuda_compiler_version9.2cxx_compiler_version7fortran_compiler_version7 UPLOAD_PACKAGES: 'True' - DOCKER_IMAGE: condaforge/linux-anvil-cuda:9.2 + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cuda:9.2 linux_64_c_compiler_version9cuda_compiler_version9.2cxx_compiler_version9fortran_compiler_version9: CONFIG: linux_64_c_compiler_version9cuda_compiler_version9.2cxx_compiler_version9fortran_compiler_version9 UPLOAD_PACKAGES: 'True' - DOCKER_IMAGE: condaforge/linux-anvil-cuda:9.2 - maxParallel: 8 + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cuda:9.2 timeoutInMinutes: 360 steps: diff --git a/.azure-pipelines/azure-pipelines-osx.yml b/.azure-pipelines/azure-pipelines-osx.yml index 33073344..c5aee7fd 100755 --- a/.azure-pipelines/azure-pipelines-osx.yml +++ b/.azure-pipelines/azure-pipelines-osx.yml @@ -14,7 +14,9 @@ jobs: osx_64_fortran_compiler_version9: CONFIG: osx_64_fortran_compiler_version9 UPLOAD_PACKAGES: 'True' - maxParallel: 8 + osx_arm64_: + CONFIG: osx_arm64_ + UPLOAD_PACKAGES: 'True' timeoutInMinutes: 360 steps: diff --git a/.ci_support/linux_64_c_compiler_version7cuda_compiler_version9.2cxx_compiler_version7fortran_compiler_version7.yaml b/.ci_support/linux_64_c_compiler_version7cuda_compiler_version9.2cxx_compiler_version7fortran_compiler_version7.yaml index e905f755..43d9cac5 100644 --- a/.ci_support/linux_64_c_compiler_version7cuda_compiler_version9.2cxx_compiler_version7fortran_compiler_version7.yaml +++ b/.ci_support/linux_64_c_compiler_version7cuda_compiler_version9.2cxx_compiler_version7fortran_compiler_version7.yaml @@ -2,6 +2,8 @@ c_compiler: - gcc c_compiler_version: - '7' +cdt_name: +- cos6 channel_sources: - conda-forge,defaults channel_targets: @@ -15,7 +17,7 @@ cxx_compiler: cxx_compiler_version: - '7' docker_image: -- condaforge/linux-anvil-cuda:9.2 +- quay.io/condaforge/linux-anvil-cuda:9.2 fortran_compiler: - gfortran fortran_compiler_version: diff --git a/.ci_support/linux_64_c_compiler_version9cuda_compiler_version9.2cxx_compiler_version9fortran_compiler_version9.yaml b/.ci_support/linux_64_c_compiler_version9cuda_compiler_version9.2cxx_compiler_version9fortran_compiler_version9.yaml index 933d9504..b30b44f9 100644 --- a/.ci_support/linux_64_c_compiler_version9cuda_compiler_version9.2cxx_compiler_version9fortran_compiler_version9.yaml +++ b/.ci_support/linux_64_c_compiler_version9cuda_compiler_version9.2cxx_compiler_version9fortran_compiler_version9.yaml @@ -2,6 +2,8 @@ c_compiler: - gcc c_compiler_version: - '9' +cdt_name: +- cos6 channel_sources: - conda-forge,defaults channel_targets: @@ -15,7 +17,7 @@ cxx_compiler: cxx_compiler_version: - '9' docker_image: -- condaforge/linux-anvil-cuda:9.2 +- quay.io/condaforge/linux-anvil-cuda:9.2 fortran_compiler: - gfortran fortran_compiler_version: diff --git a/.ci_support/linux_aarch64_c_compiler_version7cxx_compiler_version7fortran_compiler_version7.yaml b/.ci_support/linux_aarch64_c_compiler_version7cxx_compiler_version7fortran_compiler_version7.yaml index 653afff4..dacb28df 100644 --- a/.ci_support/linux_aarch64_c_compiler_version7cxx_compiler_version7fortran_compiler_version7.yaml +++ b/.ci_support/linux_aarch64_c_compiler_version7cxx_compiler_version7fortran_compiler_version7.yaml @@ -19,7 +19,7 @@ cxx_compiler: cxx_compiler_version: - '7' docker_image: -- condaforge/linux-anvil-aarch64 +- quay.io/condaforge/linux-anvil-aarch64 fortran_compiler: - gfortran fortran_compiler_version: diff --git a/.ci_support/linux_aarch64_c_compiler_version9cxx_compiler_version9fortran_compiler_version9.yaml b/.ci_support/linux_aarch64_c_compiler_version9cxx_compiler_version9fortran_compiler_version9.yaml index 954a6773..5846a8bc 100644 --- a/.ci_support/linux_aarch64_c_compiler_version9cxx_compiler_version9fortran_compiler_version9.yaml +++ b/.ci_support/linux_aarch64_c_compiler_version9cxx_compiler_version9fortran_compiler_version9.yaml @@ -19,7 +19,7 @@ cxx_compiler: cxx_compiler_version: - '9' docker_image: -- condaforge/linux-anvil-aarch64 +- quay.io/condaforge/linux-anvil-aarch64 fortran_compiler: - gfortran fortran_compiler_version: diff --git a/.ci_support/linux_ppc64le_c_compiler_version8cxx_compiler_version8fortran_compiler_version8.yaml b/.ci_support/linux_ppc64le_c_compiler_version8cxx_compiler_version8fortran_compiler_version8.yaml index ffcdf46e..e3e2a441 100644 --- a/.ci_support/linux_ppc64le_c_compiler_version8cxx_compiler_version8fortran_compiler_version8.yaml +++ b/.ci_support/linux_ppc64le_c_compiler_version8cxx_compiler_version8fortran_compiler_version8.yaml @@ -2,6 +2,8 @@ c_compiler: - gcc c_compiler_version: - '8' +cdt_name: +- cos7 channel_sources: - conda-forge,defaults channel_targets: @@ -13,7 +15,7 @@ cxx_compiler: cxx_compiler_version: - '8' docker_image: -- condaforge/linux-anvil-ppc64le +- quay.io/condaforge/linux-anvil-ppc64le fortran_compiler: - gfortran fortran_compiler_version: diff --git a/.ci_support/linux_ppc64le_c_compiler_version9cxx_compiler_version9fortran_compiler_version9.yaml b/.ci_support/linux_ppc64le_c_compiler_version9cxx_compiler_version9fortran_compiler_version9.yaml index 0a4f76b0..f3342b51 100644 --- a/.ci_support/linux_ppc64le_c_compiler_version9cxx_compiler_version9fortran_compiler_version9.yaml +++ b/.ci_support/linux_ppc64le_c_compiler_version9cxx_compiler_version9fortran_compiler_version9.yaml @@ -2,6 +2,8 @@ c_compiler: - gcc c_compiler_version: - '9' +cdt_name: +- cos7 channel_sources: - conda-forge,defaults channel_targets: @@ -13,7 +15,7 @@ cxx_compiler: cxx_compiler_version: - '9' docker_image: -- condaforge/linux-anvil-ppc64le +- quay.io/condaforge/linux-anvil-ppc64le fortran_compiler: - gfortran fortran_compiler_version: diff --git a/.ci_support/osx_arm64_.yaml b/.ci_support/osx_arm64_.yaml new file mode 100644 index 00000000..5b6a4a4f --- /dev/null +++ b/.ci_support/osx_arm64_.yaml @@ -0,0 +1,33 @@ +MACOSX_DEPLOYMENT_TARGET: +- '11.0' +c_compiler: +- clang +c_compiler_version: +- '11' +channel_sources: +- conda-forge/label/rust_dev,conda-forge,https://conda-web.anaconda.org/conda-forge +channel_targets: +- conda-forge main +cuda_compiler_version: +- None +cxx_compiler: +- clangxx +cxx_compiler_version: +- '11' +fortran_compiler: +- gfortran +fortran_compiler_version: +- '11' +macos_machine: +- arm64-apple-darwin20.0.0 +pin_run_as_build: + zlib: + max_pin: x.x +target_platform: +- osx-arm64 +zip_keys: +- - c_compiler_version + - cxx_compiler_version + - fortran_compiler_version +zlib: +- '1.2' diff --git a/.drone.yml b/.drone.yml index c4dc9322..535911d2 100644 --- a/.drone.yml +++ b/.drone.yml @@ -8,7 +8,7 @@ platform: steps: - name: Install and build - image: condaforge/linux-anvil-aarch64 + image: quay.io/condaforge/linux-anvil-aarch64 environment: CONFIG: linux_aarch64_c_compiler_version7cxx_compiler_version7fortran_compiler_version7 UPLOAD_PACKAGES: True @@ -39,7 +39,7 @@ platform: steps: - name: Install and build - image: condaforge/linux-anvil-aarch64 + image: quay.io/condaforge/linux-anvil-aarch64 environment: CONFIG: linux_aarch64_c_compiler_version9cxx_compiler_version9fortran_compiler_version9 UPLOAD_PACKAGES: True diff --git a/.scripts/build_steps.sh b/.scripts/build_steps.sh index aa9727b9..8a4b0d37 100755 --- a/.scripts/build_steps.sh +++ b/.scripts/build_steps.sh @@ -29,6 +29,10 @@ source run_conda_forge_build_setup # make the build number clobber make_build_number "${FEEDSTOCK_ROOT}" "${RECIPE_ROOT}" "${CONFIG_FILE}" +if [[ "${HOST_PLATFORM}" != "${BUILD_PLATFORM}" ]]; then + EXTRA_CB_OPTIONS="${EXTRA_CB_OPTIONS:-} --no-test" +fi + if [[ "${BUILD_WITH_CONDA_DEBUG:-0}" == 1 ]]; then if [[ "x${BUILD_OUTPUT_ID:-}" != "x" ]]; then diff --git a/.scripts/run_osx_build.sh b/.scripts/run_osx_build.sh index c299b792..3675dacf 100755 --- a/.scripts/run_osx_build.sh +++ b/.scripts/run_osx_build.sh @@ -48,6 +48,10 @@ set -e echo -e "\n\nMaking the build clobber file and running the build." make_build_number ./ ./recipe ./.ci_support/${CONFIG}.yaml +if [[ "${HOST_PLATFORM}" != "${BUILD_PLATFORM}" ]]; then + EXTRA_CB_OPTIONS="${EXTRA_CB_OPTIONS:-} --no-test" +fi + conda build ./recipe -m ./.ci_support/${CONFIG}.yaml --suppress-variables --clobber-file ./.ci_support/clobber_${CONFIG}.yaml ${EXTRA_CB_OPTIONS:-} validate_recipe_outputs "${FEEDSTOCK_NAME}" diff --git a/.travis.yml b/.travis.yml index eda8ff93..7bc76d42 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,11 +7,11 @@ language: generic matrix: include: - - env: CONFIG=linux_ppc64le_c_compiler_version8cxx_compiler_version8fortran_compiler_version8 UPLOAD_PACKAGES=True PLATFORM=linux-ppc64le DOCKER_IMAGE=condaforge/linux-anvil-ppc64le + - env: CONFIG=linux_ppc64le_c_compiler_version8cxx_compiler_version8fortran_compiler_version8 UPLOAD_PACKAGES=True PLATFORM=linux-ppc64le DOCKER_IMAGE=quay.io/condaforge/linux-anvil-ppc64le os: linux arch: ppc64le - - env: CONFIG=linux_ppc64le_c_compiler_version9cxx_compiler_version9fortran_compiler_version9 UPLOAD_PACKAGES=True PLATFORM=linux-ppc64le DOCKER_IMAGE=condaforge/linux-anvil-ppc64le + - env: CONFIG=linux_ppc64le_c_compiler_version9cxx_compiler_version9fortran_compiler_version9 UPLOAD_PACKAGES=True PLATFORM=linux-ppc64le DOCKER_IMAGE=quay.io/condaforge/linux-anvil-ppc64le os: linux arch: ppc64le diff --git a/README.md b/README.md index f1cf9429..4ecb7e75 100644 --- a/README.md +++ b/README.md @@ -105,6 +105,13 @@ Current build status variant + + osx_arm64 + + + variant + + diff --git a/build-locally.py b/build-locally.py index d92f4edc..3453cfe6 100755 --- a/build-locally.py +++ b/build-locally.py @@ -61,7 +61,7 @@ def main(args=None): help="Setup debug environment using `conda debug`", ) p.add_argument( - "--output-id", help="If running debug, specifiy the output to setup." + "--output-id", help="If running debug, specify the output to setup." ) ns = p.parse_args(args=args) diff --git a/conda-forge.yml b/conda-forge.yml index b8178c7f..cea5359f 100644 --- a/conda-forge.yml +++ b/conda-forge.yml @@ -1,4 +1,4 @@ -provider: - linux_aarch64: default - linux_ppc64le: default +build_platform: {osx_arm64: osx_64} conda_forge_output_validation: true +provider: {linux_aarch64: default, linux_ppc64le: default} +test_on_native_only: true diff --git a/recipe/build-mpi.sh b/recipe/build-mpi.sh index 3b844a65..c53b245a 100755 --- a/recipe/build-mpi.sh +++ b/recipe/build-mpi.sh @@ -12,12 +12,13 @@ export CC=$(basename "$CC") export CXX=$(basename "$CXX") export FC=$(basename "$FC") -if [ $(uname) == Darwin ]; then +./autogen.pl --force + +if [[ "$target_platform" == osx-* ]]; then if [[ ! -z "$CONDA_BUILD_SYSROOT" ]]; then export CFLAGS="$CFLAGS -isysroot $CONDA_BUILD_SYSROOT" export CXXFLAGS="$CXXFLAGS -isysroot $CONDA_BUILD_SYSROOT" fi - export LDFLAGS="$LDFLAGS -Wl,-rpath,$PREFIX/lib" fi if [ $cuda_compiler_version == '9.2' ]; then @@ -26,6 +27,109 @@ else build_with_cuda="" fi +if [[ $CONDA_BUILD_CROSS_COMPILATION == "1" && $target_platform == osx-arm64 ]]; then + export ompi_cv_fortran_abstract=yes + export ompi_cv_fortran_alignment_CHARACTER=1 + export ompi_cv_fortran_alignment_COMPLEX=4 + export ompi_cv_fortran_alignment_COMPLEXp16=8 + export ompi_cv_fortran_alignment_COMPLEXp8=4 + export ompi_cv_fortran_alignment_DOUBLE_COMPLEX=8 + export ompi_cv_fortran_alignment_DOUBLE_PRECISION=8 + export ompi_cv_fortran_alignment_INTEGER=4 + export ompi_cv_fortran_alignment_INTEGERp1=1 + export ompi_cv_fortran_alignment_INTEGERp2=2 + export ompi_cv_fortran_alignment_INTEGERp4=4 + export ompi_cv_fortran_alignment_INTEGERp8=8 + export ompi_cv_fortran_alignment_LOGICAL=4 + export ompi_cv_fortran_alignment_LOGICALp1=1 + export ompi_cv_fortran_alignment_LOGICALp2=2 + export ompi_cv_fortran_alignment_LOGICALp4=4 + export ompi_cv_fortran_alignment_LOGICALp8=8 + export ompi_cv_fortran_alignment_REAL=4 + export ompi_cv_fortran_alignment_REALp4=4 + export ompi_cv_fortran_alignment_REALp8=8 + export ompi_cv_fortran_alignment_type_test_mpi_handle_=' 8' + export ompi_cv_fortran_asynchronous=yes + export ompi_cv_fortran_c_funloc=yes + export ompi_cv_fortran_external_symbol='single underscore' + export ompi_cv_fortran_f08_assumed_rank=yes + export ompi_cv_fortran_handle_max=2147483647 + export ompi_cv_fortran_have_CHARACTER=yes + export ompi_cv_fortran_have_COMPLEX=yes + export ompi_cv_fortran_have_COMPLEXp16=yes + export ompi_cv_fortran_have_COMPLEXp32=no + export ompi_cv_fortran_have_COMPLEXp4=no + export ompi_cv_fortran_have_COMPLEXp8=yes + export ompi_cv_fortran_have_DOUBLE_COMPLEX=yes + export ompi_cv_fortran_have_DOUBLE_PRECISION=yes + export ompi_cv_fortran_have_INTEGER=yes + export ompi_cv_fortran_have_INTEGERp16=yes + export ompi_cv_fortran_have_INTEGERp1=yes + export ompi_cv_fortran_have_INTEGERp2=yes + export ompi_cv_fortran_have_INTEGERp4=yes + export ompi_cv_fortran_have_INTEGERp8=yes + export ompi_cv_fortran_have_LOGICAL=yes + export ompi_cv_fortran_have_LOGICALp1=yes + export ompi_cv_fortran_have_LOGICALp2=yes + export ompi_cv_fortran_have_LOGICALp4=yes + export ompi_cv_fortran_have_LOGICALp8=yes + export ompi_cv_fortran_have_REAL=yes + export ompi_cv_fortran_have_REALp16=no + export ompi_cv_fortran_have_REALp2=no + export ompi_cv_fortran_have_REALp4=yes + export ompi_cv_fortran_have_REALp8=yes + export ompi_cv_fortran_have_bind_c_sub=yes + export ompi_cv_fortran_have_bind_c_type=yes + export ompi_cv_fortran_have_bind_c_type_name=yes + export ompi_cv_fortran_have_iso_c_binding=yes + export ompi_cv_fortran_have_iso_fortran_env=yes + export ompi_cv_fortran_have_storage_size=yes + export ompi_cv_fortran_ignore_tkr_data='1:type(*), dimension(*):!GCC$ ATTRIBUTES NO_ARG_CHECK ::' + export ompi_cv_fortran_interface=yes + export ompi_cv_fortran_kind_value_0=0 + export ompi_cv_fortran_kind_value_C_DOUBLE=8 + export ompi_cv_fortran_kind_value_C_DOUBLE_COMPLEX=8 + export ompi_cv_fortran_kind_value_C_FLOAT=4 + export ompi_cv_fortran_kind_value_C_FLOAT_COMPLEX=4 + export ompi_cv_fortran_kind_value_C_INT16_T=2 + export ompi_cv_fortran_kind_value_C_INT32_T=4 + export ompi_cv_fortran_kind_value_C_INT64_T=8 + export ompi_cv_fortran_kind_value_C_INT=4 + export ompi_cv_fortran_kind_value_C_LONG_LONG=8 + export ompi_cv_fortran_kind_value_C_SHORT=2 + export ompi_cv_fortran_kind_value_C_SIGNED_CHAR=1 + export ompi_cv_fortran_logical_array_correct=yes + export ompi_cv_fortran_max_array_rank=15 + export ompi_cv_fortran_module_include_flag=-I + export ompi_cv_fortran_optional=yes + export ompi_cv_fortran_private=yes + export ompi_cv_fortran_procedure=yes + export ompi_cv_fortran_protected=yes + export ompi_cv_fortran_sizeof_CHARACTER=1 + export ompi_cv_fortran_sizeof_COMPLEX=8 + export ompi_cv_fortran_sizeof_COMPLEXp16=16 + export ompi_cv_fortran_sizeof_COMPLEXp8=8 + export ompi_cv_fortran_sizeof_DOUBLE_COMPLEX=16 + export ompi_cv_fortran_sizeof_DOUBLE_PRECISION=8 + export ompi_cv_fortran_sizeof_INTEGER=4 + export ompi_cv_fortran_sizeof_INTEGERp16=16 + export ompi_cv_fortran_sizeof_INTEGERp1=1 + export ompi_cv_fortran_sizeof_INTEGERp2=2 + export ompi_cv_fortran_sizeof_INTEGERp4=4 + export ompi_cv_fortran_sizeof_INTEGERp8=8 + export ompi_cv_fortran_sizeof_LOGICAL=4 + export ompi_cv_fortran_sizeof_LOGICALp1=1 + export ompi_cv_fortran_sizeof_LOGICALp2=2 + export ompi_cv_fortran_sizeof_LOGICALp4=4 + export ompi_cv_fortran_sizeof_LOGICALp8=8 + export ompi_cv_fortran_sizeof_REAL=4 + export ompi_cv_fortran_sizeof_REALp4=4 + export ompi_cv_fortran_sizeof_REALp8=8 + export ompi_cv_fortran_sizeof_type_test_mpi_handle_=4 + export ompi_cv_fortran_true_value=1 + export ompi_cv_fortran_use_only=yes +fi + export LIBRARY_PATH="$PREFIX/lib" ./configure --prefix=$PREFIX \ @@ -54,7 +158,7 @@ if [ ! -z "$build_with_cuda" ]; then chmod +x $POST_LINK fi -if [ $(uname) == Darwin ]; then +if [[ "$target_platform" == osx-* ]]; then # workaround for open-mpi/ompi#7516 echo "setting the mca gds to hash..." echo "gds = hash" >> $PREFIX/etc/pmix-mca-params.conf diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 3ed15863..234e3d76 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -29,6 +29,9 @@ outputs: - {{ compiler('cxx') }} - {{ compiler('fortran') }} - {{ compiler('cuda') }} # [linux64] + - autoconf # [unix] + - automake # [unix] + - libtool # [unix] - make # [unix] - perl 5.26.2 host: