diff --git a/.azure-pipelines/azure-pipelines-win.yml b/.azure-pipelines/azure-pipelines-win.yml index d609fcd..204327b 100755 --- a/.azure-pipelines/azure-pipelines-win.yml +++ b/.azure-pipelines/azure-pipelines-win.yml @@ -24,7 +24,7 @@ jobs: scriptSource: inline script: | import urllib.request - url = 'https://github.com/conda-forge/miniforge/releases/latest/download/Mambaforge-Windows-x86_64.exe' + url = 'https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Windows-x86_64.exe' path = r"$(Build.ArtifactStagingDirectory)/Miniforge.exe" urllib.request.urlretrieve(url, path) diff --git a/.ci_support/linux_64_mpimpich.yaml b/.ci_support/linux_64_mpimpich.yaml index a4b5063..a182db5 100644 --- a/.ci_support/linux_64_mpimpich.yaml +++ b/.ci_support/linux_64_mpimpich.yaml @@ -1,13 +1,13 @@ c_compiler: - gcc c_compiler_version: -- '12' +- '13' c_stdlib: - sysroot c_stdlib_version: -- '2.12' +- '2.17' cdt_name: -- cos6 +- cos7 channel_sources: - conda-forge channel_targets: @@ -17,7 +17,7 @@ docker_image: fortran_compiler: - gfortran fortran_compiler_version: -- '12' +- '13' hdf5: - 1.14.3 libnetcdf: diff --git a/.ci_support/linux_64_mpinompi.yaml b/.ci_support/linux_64_mpinompi.yaml index 5c9fb69..180beef 100644 --- a/.ci_support/linux_64_mpinompi.yaml +++ b/.ci_support/linux_64_mpinompi.yaml @@ -1,13 +1,13 @@ c_compiler: - gcc c_compiler_version: -- '12' +- '13' c_stdlib: - sysroot c_stdlib_version: -- '2.12' +- '2.17' cdt_name: -- cos6 +- cos7 channel_sources: - conda-forge channel_targets: @@ -17,7 +17,7 @@ docker_image: fortran_compiler: - gfortran fortran_compiler_version: -- '12' +- '13' hdf5: - 1.14.3 libnetcdf: diff --git a/.ci_support/linux_64_mpiopenmpi.yaml b/.ci_support/linux_64_mpiopenmpi.yaml index 969d9bc..ae186b1 100644 --- a/.ci_support/linux_64_mpiopenmpi.yaml +++ b/.ci_support/linux_64_mpiopenmpi.yaml @@ -1,13 +1,13 @@ c_compiler: - gcc c_compiler_version: -- '12' +- '13' c_stdlib: - sysroot c_stdlib_version: -- '2.12' +- '2.17' cdt_name: -- cos6 +- cos7 channel_sources: - conda-forge channel_targets: @@ -17,7 +17,7 @@ docker_image: fortran_compiler: - gfortran fortran_compiler_version: -- '12' +- '13' hdf5: - 1.14.3 libnetcdf: diff --git a/.ci_support/linux_aarch64_mpimpich.yaml b/.ci_support/linux_aarch64_mpimpich.yaml index 0f7c89e..644b57f 100644 --- a/.ci_support/linux_aarch64_mpimpich.yaml +++ b/.ci_support/linux_aarch64_mpimpich.yaml @@ -3,7 +3,7 @@ BUILD: c_compiler: - gcc c_compiler_version: -- '12' +- '13' c_stdlib: - sysroot c_stdlib_version: @@ -21,7 +21,7 @@ docker_image: fortran_compiler: - gfortran fortran_compiler_version: -- '12' +- '13' hdf5: - 1.14.3 libnetcdf: diff --git a/.ci_support/linux_aarch64_mpinompi.yaml b/.ci_support/linux_aarch64_mpinompi.yaml index a8bb796..3466d1c 100644 --- a/.ci_support/linux_aarch64_mpinompi.yaml +++ b/.ci_support/linux_aarch64_mpinompi.yaml @@ -3,7 +3,7 @@ BUILD: c_compiler: - gcc c_compiler_version: -- '12' +- '13' c_stdlib: - sysroot c_stdlib_version: @@ -21,7 +21,7 @@ docker_image: fortran_compiler: - gfortran fortran_compiler_version: -- '12' +- '13' hdf5: - 1.14.3 libnetcdf: diff --git a/.ci_support/linux_aarch64_mpiopenmpi.yaml b/.ci_support/linux_aarch64_mpiopenmpi.yaml index 0f1ba95..dbb9e54 100644 --- a/.ci_support/linux_aarch64_mpiopenmpi.yaml +++ b/.ci_support/linux_aarch64_mpiopenmpi.yaml @@ -3,7 +3,7 @@ BUILD: c_compiler: - gcc c_compiler_version: -- '12' +- '13' c_stdlib: - sysroot c_stdlib_version: @@ -21,7 +21,7 @@ docker_image: fortran_compiler: - gfortran fortran_compiler_version: -- '12' +- '13' hdf5: - 1.14.3 libnetcdf: diff --git a/.ci_support/linux_ppc64le_mpimpich.yaml b/.ci_support/linux_ppc64le_mpimpich.yaml index ef7094e..7caced5 100644 --- a/.ci_support/linux_ppc64le_mpimpich.yaml +++ b/.ci_support/linux_ppc64le_mpimpich.yaml @@ -1,7 +1,7 @@ c_compiler: - gcc c_compiler_version: -- '12' +- '13' c_stdlib: - sysroot c_stdlib_version: @@ -17,7 +17,7 @@ docker_image: fortran_compiler: - gfortran fortran_compiler_version: -- '12' +- '13' hdf5: - 1.14.3 libnetcdf: diff --git a/.ci_support/linux_ppc64le_mpinompi.yaml b/.ci_support/linux_ppc64le_mpinompi.yaml index e1e26ab..a2a3e66 100644 --- a/.ci_support/linux_ppc64le_mpinompi.yaml +++ b/.ci_support/linux_ppc64le_mpinompi.yaml @@ -1,7 +1,7 @@ c_compiler: - gcc c_compiler_version: -- '12' +- '13' c_stdlib: - sysroot c_stdlib_version: @@ -17,7 +17,7 @@ docker_image: fortran_compiler: - gfortran fortran_compiler_version: -- '12' +- '13' hdf5: - 1.14.3 libnetcdf: diff --git a/.ci_support/linux_ppc64le_mpiopenmpi.yaml b/.ci_support/linux_ppc64le_mpiopenmpi.yaml index 90b2671..e8b4777 100644 --- a/.ci_support/linux_ppc64le_mpiopenmpi.yaml +++ b/.ci_support/linux_ppc64le_mpiopenmpi.yaml @@ -1,7 +1,7 @@ c_compiler: - gcc c_compiler_version: -- '12' +- '13' c_stdlib: - sysroot c_stdlib_version: @@ -17,7 +17,7 @@ docker_image: fortran_compiler: - gfortran fortran_compiler_version: -- '12' +- '13' hdf5: - 1.14.3 libnetcdf: diff --git a/.ci_support/osx_64_mpimpich.yaml b/.ci_support/osx_64_mpimpich.yaml index 80b178a..518295b 100644 --- a/.ci_support/osx_64_mpimpich.yaml +++ b/.ci_support/osx_64_mpimpich.yaml @@ -5,7 +5,7 @@ MACOSX_SDK_VERSION: c_compiler: - clang c_compiler_version: -- '16' +- '17' c_stdlib: - macosx_deployment_target c_stdlib_version: @@ -17,7 +17,7 @@ channel_targets: fortran_compiler: - gfortran fortran_compiler_version: -- '12' +- '13' hdf5: - 1.14.3 libnetcdf: diff --git a/.ci_support/osx_64_mpinompi.yaml b/.ci_support/osx_64_mpinompi.yaml index a35ed75..d59dec4 100644 --- a/.ci_support/osx_64_mpinompi.yaml +++ b/.ci_support/osx_64_mpinompi.yaml @@ -5,7 +5,7 @@ MACOSX_SDK_VERSION: c_compiler: - clang c_compiler_version: -- '16' +- '17' c_stdlib: - macosx_deployment_target c_stdlib_version: @@ -17,7 +17,7 @@ channel_targets: fortran_compiler: - gfortran fortran_compiler_version: -- '12' +- '13' hdf5: - 1.14.3 libnetcdf: diff --git a/.ci_support/osx_64_mpiopenmpi.yaml b/.ci_support/osx_64_mpiopenmpi.yaml index 4481858..66b10af 100644 --- a/.ci_support/osx_64_mpiopenmpi.yaml +++ b/.ci_support/osx_64_mpiopenmpi.yaml @@ -5,7 +5,7 @@ MACOSX_SDK_VERSION: c_compiler: - clang c_compiler_version: -- '16' +- '17' c_stdlib: - macosx_deployment_target c_stdlib_version: @@ -17,7 +17,7 @@ channel_targets: fortran_compiler: - gfortran fortran_compiler_version: -- '12' +- '13' hdf5: - 1.14.3 libnetcdf: diff --git a/.ci_support/osx_arm64_mpimpich.yaml b/.ci_support/osx_arm64_mpimpich.yaml index c0dc50b..49da581 100644 --- a/.ci_support/osx_arm64_mpimpich.yaml +++ b/.ci_support/osx_arm64_mpimpich.yaml @@ -5,7 +5,7 @@ MACOSX_SDK_VERSION: c_compiler: - clang c_compiler_version: -- '16' +- '17' c_stdlib: - macosx_deployment_target c_stdlib_version: @@ -17,7 +17,7 @@ channel_targets: fortran_compiler: - gfortran fortran_compiler_version: -- '12' +- '13' hdf5: - 1.14.3 libnetcdf: diff --git a/.ci_support/osx_arm64_mpinompi.yaml b/.ci_support/osx_arm64_mpinompi.yaml index 49c8093..a0eb655 100644 --- a/.ci_support/osx_arm64_mpinompi.yaml +++ b/.ci_support/osx_arm64_mpinompi.yaml @@ -5,7 +5,7 @@ MACOSX_SDK_VERSION: c_compiler: - clang c_compiler_version: -- '16' +- '17' c_stdlib: - macosx_deployment_target c_stdlib_version: @@ -17,7 +17,7 @@ channel_targets: fortran_compiler: - gfortran fortran_compiler_version: -- '12' +- '13' hdf5: - 1.14.3 libnetcdf: diff --git a/.ci_support/osx_arm64_mpiopenmpi.yaml b/.ci_support/osx_arm64_mpiopenmpi.yaml index f61f0c2..550c3be 100644 --- a/.ci_support/osx_arm64_mpiopenmpi.yaml +++ b/.ci_support/osx_arm64_mpiopenmpi.yaml @@ -5,7 +5,7 @@ MACOSX_SDK_VERSION: c_compiler: - clang c_compiler_version: -- '16' +- '17' c_stdlib: - macosx_deployment_target c_stdlib_version: @@ -17,7 +17,7 @@ channel_targets: fortran_compiler: - gfortran fortran_compiler_version: -- '12' +- '13' hdf5: - 1.14.3 libnetcdf: diff --git a/.ci_support/win_64_.yaml b/.ci_support/win_64_.yaml index 2eb8ef5..3d5f594 100644 --- a/.ci_support/win_64_.yaml +++ b/.ci_support/win_64_.yaml @@ -7,11 +7,17 @@ hdf5: libnetcdf: - 4.9.2 m2w64_c_compiler: -- m2w64-toolchain +- gcc +m2w64_c_compiler_version: +- '13' m2w64_c_stdlib: -- m2w64-toolchain +- m2w64-sysroot +m2w64_c_stdlib_version: +- '12' m2w64_fortran_compiler: -- m2w64-toolchain +- gfortran +m2w64_fortran_compiler_version: +- '13' mpi: - nompi mpich: diff --git a/.scripts/build_steps.sh b/.scripts/build_steps.sh index 899ba03..ba4b251 100755 --- a/.scripts/build_steps.sh +++ b/.scripts/build_steps.sh @@ -72,6 +72,12 @@ else --suppress-variables ${EXTRA_CB_OPTIONS:-} \ --clobber-file "${CI_SUPPORT}/clobber_${CONFIG}.yaml" \ --extra-meta flow_run_id="${flow_run_id:-}" remote_url="${remote_url:-}" sha="${sha:-}" + ( startgroup "Inspecting artifacts" ) 2> /dev/null + + # inspect_artifacts was only added in conda-forge-ci-setup 4.6.0 + command -v inspect_artifacts >/dev/null 2>&1 && inspect_artifacts || echo "inspect_artifacts needs conda-forge-ci-setup >=4.6.0" + + ( endgroup "Inspecting artifacts" ) 2> /dev/null ( startgroup "Validating outputs" ) 2> /dev/null validate_recipe_outputs "${FEEDSTOCK_NAME}" diff --git a/.scripts/run_osx_build.sh b/.scripts/run_osx_build.sh index 07dff21..420f051 100755 --- a/.scripts/run_osx_build.sh +++ b/.scripts/run_osx_build.sh @@ -11,7 +11,7 @@ MINIFORGE_HOME=${MINIFORGE_HOME:-${HOME}/miniforge3} ( startgroup "Installing a fresh version of Miniforge" ) 2> /dev/null MINIFORGE_URL="https://github.com/conda-forge/miniforge/releases/latest/download" -MINIFORGE_FILE="Mambaforge-MacOSX-$(uname -m).sh" +MINIFORGE_FILE="Miniforge3-MacOSX-$(uname -m).sh" curl -L -O "${MINIFORGE_URL}/${MINIFORGE_FILE}" rm -rf ${MINIFORGE_HOME} bash $MINIFORGE_FILE -b -p ${MINIFORGE_HOME} @@ -85,6 +85,13 @@ else --suppress-variables ${EXTRA_CB_OPTIONS:-} \ --clobber-file ./.ci_support/clobber_${CONFIG}.yaml \ --extra-meta flow_run_id="$flow_run_id" remote_url="$remote_url" sha="$sha" + + ( startgroup "Inspecting artifacts" ) 2> /dev/null + + # inspect_artifacts was only added in conda-forge-ci-setup 4.6.0 + command -v inspect_artifacts >/dev/null 2>&1 && inspect_artifacts || echo "inspect_artifacts needs conda-forge-ci-setup >=4.6.0" + + ( endgroup "Inspecting artifacts" ) 2> /dev/null ( startgroup "Validating outputs" ) 2> /dev/null validate_recipe_outputs "${FEEDSTOCK_NAME}" diff --git a/.scripts/run_win_build.bat b/.scripts/run_win_build.bat index 6d54697..65650bf 100755 --- a/.scripts/run_win_build.bat +++ b/.scripts/run_win_build.bat @@ -58,6 +58,11 @@ echo Building recipe conda-build.exe "recipe" -m .ci_support\%CONFIG%.yaml --suppress-variables %EXTRA_CB_OPTIONS% if !errorlevel! neq 0 exit /b !errorlevel! +call :start_group "Inspecting artifacts" +:: inspect_artifacts was only added in conda-forge-ci-setup 4.6.0 +WHERE inspect_artifacts >nul 2>nul && inspect_artifacts || echo "inspect_artifacts needs conda-forge-ci-setup >=4.6.0" +call :end_group + :: Prepare some environment variables for the upload step if /i "%CI%" == "github_actions" ( set "FEEDSTOCK_NAME=%GITHUB_REPOSITORY:*/=%" diff --git a/build-locally.py b/build-locally.py index e0d408d..d78427b 100755 --- a/build-locally.py +++ b/build-locally.py @@ -3,11 +3,11 @@ # This file has been generated by conda-smithy in order to build the recipe # locally. # -import os import glob +import os +import platform import subprocess from argparse import ArgumentParser -import platform def setup_environment(ns): diff --git a/recipe/bld.bat b/recipe/bld.bat index a3874d6..a611023 100644 --- a/recipe/bld.bat +++ b/recipe/bld.bat @@ -1,7 +1,6 @@ set "cwd=%cd%" set "LIBRARY_PREFIX=%LIBRARY_PREFIX:\=/%" -set "MINGWBIN=%LIBRARY_PREFIX%/mingw-w64/bin" :: These flags cause errors during CMake; disable for now? set "LDFLAGS=-L%LIBRARY_PREFIX%/lib -Wl,-rpath,%LIBRARY_PREFIX%/lib" @@ -18,6 +17,11 @@ set PARALLEL="" :: should just work all the time. rmdir "%LIBRARY_LIB%\cmake\netCDF" /s /q +set "HOST=x86_64-w64-mingw32" +set "CC=%HOST%-gcc.exe" +set "CXX=%HOST%-g++.exe" +set "FC=%HOST%-gfortran.exe" + set BUILD_TYPE=Release :: set BUILD_TYPE=RelWithDebInfo :: set BUILD_TYPE=Debug @@ -26,13 +30,11 @@ set BUILD_TYPE=Release rmdir build_shared /s /q mkdir build_shared cd build_shared -cmake -LAH -G "MinGW Makefiles" ^ +cmake -LAH -G "Ninja" ^ %CMAKE_ARGS% ^ -D CMAKE_BUILD_TYPE=%BUILD_TYPE% ^ -D CMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ -D BUILD_SHARED_LIBS=ON ^ - -D CMAKE_C_COMPILER:PATH=%MINGWBIN%/gcc.exe ^ - -D CMAKE_Fortran_COMPILER:PATH=%MINGWBIN%/gfortran.exe ^ -D CMAKE_GNUtoMS:BOOL=ON ^ -D CMAKE_PREFIX_PATH="%LIBRARY_PREFIX%" ^ -D BUILD_V2:BOOL=OFF ^ diff --git a/recipe/conda_build_config.yaml b/recipe/conda_build_config.yaml index abd57df..05813f8 100644 --- a/recipe/conda_build_config.yaml +++ b/recipe/conda_build_config.yaml @@ -1,3 +1,20 @@ +m2w64_c_compiler: # [win] + - gcc # [win] +m2w64_c_compiler_version: # [win] + - 13 # [win] +m2w64_cxx_compiler: # [win] + - gxx # [win] +m2w64_cxx_compiler_version: # [win] + - 13 # [win] +m2w64_fortran_compiler: # [win] + - gfortran # [win] +m2w64_fortran_compiler_version: # [win] + - 13 # [win] +m2w64_c_stdlib: # [win] + - m2w64-sysroot # [win] +m2w64_c_stdlib_version: # [win] + - 12 # [win] + mpi: - nompi - openmpi # [not win] diff --git a/recipe/meta.yaml b/recipe/meta.yaml index e96d7ca..2ac6be4 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -1,5 +1,5 @@ {% set version = "4.6.1" %} -{% set build = 4 %} +{% set build = 5 %} # recipe-lint fails if mpi is undefined {% set mpi = mpi or 'nompi' %} @@ -52,20 +52,18 @@ requirements: build: # General - cmake + - pkg-config - {{ mpi }} # [mpi == 'openmpi' and build_platform != target_platform] # Unix - {{ compiler('c') }} # [unix] - {{ stdlib('c') }} # [unix] - {{ compiler('fortran') }} # [unix] - make # [unix] - - pkg-config # [unix] # Win - {{ compiler('m2w64_c') }} # [win] - {{ stdlib('m2w64_c') }} # [win] - {{ compiler('m2w64_fortran') }} # [win] - - m2-make # [win] - - m2w64-pkg-config # [win] - - m2w64-dlfcn # [win] + - ninja # [win] host: # need to list hdf5 and libnetcdf twice to get version pinning from conda_build_config # and build pinning from {{ mpi_prefix }}