From 4c2119ee6c10ce20dcb26f1b0092bae6122e6a20 Mon Sep 17 00:00:00 2001 From: Axel Huebl Date: Thu, 19 Oct 2023 09:14:57 -0700 Subject: [PATCH 1/4] Architectures: PPC64le, AARCH64/ARM64 Cross-compile for Power and ARM architectures. --- conda-forge.yml | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/conda-forge.yml b/conda-forge.yml index e30df6f..843da98 100644 --- a/conda-forge.yml +++ b/conda-forge.yml @@ -1,6 +1,16 @@ -github: - branch_name: main - tooling_branch_name: main +build_platform: + linux_aarch64: linux_64 + linux_ppc64le: linux_64 + osx_arm64: osx_64 conda_build: error_overlinking: true + pkg_format: '2' conda_forge_output_validation: true +github: + branch_name: main + tooling_branch_name: main +provider: + linux_aarch64: default + linux_ppc64le: azure + win: azure +test_on_native_only: true From ee2fda7025477fa1eefa122c4a2355e8bac207ad Mon Sep 17 00:00:00 2001 From: "conda-forge-webservices[bot]" <91080706+conda-forge-webservices[bot]@users.noreply.github.com> Date: Thu, 19 Oct 2023 16:18:35 +0000 Subject: [PATCH 2/4] MNT: Re-rendered with conda-build 3.27.0, conda-smithy 3.27.1, and conda-forge-pinning 2023.10.19.13.36.34 --- .azure-pipelines/azure-pipelines-linux.yml | 8 +++++++ .azure-pipelines/azure-pipelines-osx.yml | 3 +++ .ci_support/linux_aarch64_.yaml | 25 ++++++++++++++++++++++ .ci_support/linux_ppc64le_.yaml | 21 ++++++++++++++++++ .ci_support/osx_arm64_.yaml | 23 ++++++++++++++++++++ .scripts/build_steps.sh | 3 +++ .scripts/run_osx_build.sh | 4 ++++ .scripts/run_win_build.bat | 3 +++ README.md | 21 ++++++++++++++++++ 9 files changed, 111 insertions(+) create mode 100644 .ci_support/linux_aarch64_.yaml create mode 100644 .ci_support/linux_ppc64le_.yaml create mode 100644 .ci_support/osx_arm64_.yaml diff --git a/.azure-pipelines/azure-pipelines-linux.yml b/.azure-pipelines/azure-pipelines-linux.yml index a20f315..fcb0974 100755 --- a/.azure-pipelines/azure-pipelines-linux.yml +++ b/.azure-pipelines/azure-pipelines-linux.yml @@ -12,6 +12,14 @@ jobs: CONFIG: linux_64_ UPLOAD_PACKAGES: 'True' DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 + linux_aarch64_: + CONFIG: linux_aarch64_ + UPLOAD_PACKAGES: 'True' + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 + linux_ppc64le_: + CONFIG: linux_ppc64le_ + UPLOAD_PACKAGES: 'True' + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 timeoutInMinutes: 360 steps: diff --git a/.azure-pipelines/azure-pipelines-osx.yml b/.azure-pipelines/azure-pipelines-osx.yml index 9e4e167..8032e96 100755 --- a/.azure-pipelines/azure-pipelines-osx.yml +++ b/.azure-pipelines/azure-pipelines-osx.yml @@ -11,6 +11,9 @@ jobs: osx_64_: CONFIG: osx_64_ UPLOAD_PACKAGES: 'True' + osx_arm64_: + CONFIG: osx_arm64_ + UPLOAD_PACKAGES: 'True' timeoutInMinutes: 360 steps: diff --git a/.ci_support/linux_aarch64_.yaml b/.ci_support/linux_aarch64_.yaml new file mode 100644 index 0000000..26dfae8 --- /dev/null +++ b/.ci_support/linux_aarch64_.yaml @@ -0,0 +1,25 @@ +BUILD: +- aarch64-conda_cos7-linux-gnu +c_compiler: +- gcc +c_compiler_version: +- '12' +cdt_arch: +- aarch64 +cdt_name: +- cos7 +channel_sources: +- conda-forge +channel_targets: +- conda-forge main +cxx_compiler: +- gxx +cxx_compiler_version: +- '12' +docker_image: +- quay.io/condaforge/linux-anvil-cos7-x86_64 +target_platform: +- linux-aarch64 +zip_keys: +- - c_compiler_version + - cxx_compiler_version diff --git a/.ci_support/linux_ppc64le_.yaml b/.ci_support/linux_ppc64le_.yaml new file mode 100644 index 0000000..ecaba1f --- /dev/null +++ b/.ci_support/linux_ppc64le_.yaml @@ -0,0 +1,21 @@ +c_compiler: +- gcc +c_compiler_version: +- '12' +cdt_name: +- cos7 +channel_sources: +- conda-forge +channel_targets: +- conda-forge main +cxx_compiler: +- gxx +cxx_compiler_version: +- '12' +docker_image: +- quay.io/condaforge/linux-anvil-cos7-x86_64 +target_platform: +- linux-ppc64le +zip_keys: +- - c_compiler_version + - cxx_compiler_version diff --git a/.ci_support/osx_arm64_.yaml b/.ci_support/osx_arm64_.yaml new file mode 100644 index 0000000..607fba4 --- /dev/null +++ b/.ci_support/osx_arm64_.yaml @@ -0,0 +1,23 @@ +MACOSX_DEPLOYMENT_TARGET: +- '11.0' +c_compiler: +- clang +c_compiler_version: +- '16' +channel_sources: +- conda-forge +channel_targets: +- conda-forge main +cxx_compiler: +- clangxx +cxx_compiler_version: +- '16' +llvm_openmp: +- '16' +macos_machine: +- arm64-apple-darwin20.0.0 +target_platform: +- osx-arm64 +zip_keys: +- - c_compiler_version + - cxx_compiler_version diff --git a/.scripts/build_steps.sh b/.scripts/build_steps.sh index d20d8f4..bd9e671 100755 --- a/.scripts/build_steps.sh +++ b/.scripts/build_steps.sh @@ -44,6 +44,9 @@ 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}" ]] && [[ "${HOST_PLATFORM}" != linux-* ]] && [[ "${BUILD_WITH_CONDA_DEBUG:-0}" != 1 ]]; then + EXTRA_CB_OPTIONS="${EXTRA_CB_OPTIONS:-} --no-test" +fi ( endgroup "Configuring conda" ) 2> /dev/null diff --git a/.scripts/run_osx_build.sh b/.scripts/run_osx_build.sh index 4758f0d..870c49a 100755 --- a/.scripts/run_osx_build.sh +++ b/.scripts/run_osx_build.sh @@ -71,6 +71,10 @@ if [[ "${BUILD_WITH_CONDA_DEBUG:-0}" == 1 ]]; then /bin/bash else + if [[ "${HOST_PLATFORM}" != "${BUILD_PLATFORM}" ]]; then + EXTRA_CB_OPTIONS="${EXTRA_CB_OPTIONS:-} --no-test" + fi + conda mambabuild ./recipe -m ./.ci_support/${CONFIG}.yaml \ --suppress-variables ${EXTRA_CB_OPTIONS:-} \ --clobber-file ./.ci_support/clobber_${CONFIG}.yaml diff --git a/.scripts/run_win_build.bat b/.scripts/run_win_build.bat index c4486d9..07d3445 100755 --- a/.scripts/run_win_build.bat +++ b/.scripts/run_win_build.bat @@ -37,6 +37,9 @@ if EXIST LICENSE.txt ( echo Copying feedstock license copy LICENSE.txt "recipe\\recipe-scripts-license.txt" ) +if NOT [%HOST_PLATFORM%] == [%BUILD_PLATFORM%] ( + set "EXTRA_CB_OPTIONS=%EXTRA_CB_OPTIONS% --no-test" +) call :end_group diff --git a/README.md b/README.md index c291cf4..5e24bf3 100644 --- a/README.md +++ b/README.md @@ -43,6 +43,20 @@ Current build status variant + + linux_aarch64 + + + variant + + + + linux_ppc64le + + + variant + + osx_64 @@ -50,6 +64,13 @@ Current build status variant + + osx_arm64 + + + variant + + win_64 From 41f20669ad897333414d4ee55c08f046d8591280 Mon Sep 17 00:00:00 2001 From: Axel Huebl Date: Thu, 19 Oct 2023 09:17:36 -0700 Subject: [PATCH 3/4] CTest: Skip for Cross-Compiles --- recipe/build.sh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/recipe/build.sh b/recipe/build.sh index 7b1aeb3..1c81bdc 100644 --- a/recipe/build.sh +++ b/recipe/build.sh @@ -49,7 +49,11 @@ cmake \ cmake --build build --parallel ${CPU_COUNT} # test -OMP_NUM_THREADS=2 ctest --test-dir build --output-on-failure +if [[ "${CONDA_BUILD_CROSS_COMPILATION:-}" == "1" ]]; then + echo "Skipping runtime tests due to cross-compiled target..." +else + OMP_NUM_THREADS=2 ctest --test-dir build --output-on-failure +fi # install cmake --build build --target install From c40cfdb3285abea7dabe10387e0c62a6d2623ce3 Mon Sep 17 00:00:00 2001 From: Axel Huebl Date: Thu, 19 Oct 2023 10:01:50 -0700 Subject: [PATCH 4/4] [Patch] Update `3599.patch` https://github.com/AMReX-Codes/amrex/pull/3599 --- recipe/3599.patch | 70 +++++++++++++++++++++++++++++++++++++++++++++-- recipe/meta.yaml | 2 +- 2 files changed, 68 insertions(+), 4 deletions(-) diff --git a/recipe/3599.patch b/recipe/3599.patch index 99bb65d..ecd3f9d 100644 --- a/recipe/3599.patch +++ b/recipe/3599.patch @@ -1,4 +1,4 @@ -From a1accf5a6ea7468f7e223c0305cdb13c70a34fc2 Mon Sep 17 00:00:00 2001 +From a553e39ef6b93c2e9a72de6b02b98ea21a4e56e3 Mon Sep 17 00:00:00 2001 From: Axel Huebl Date: Wed, 18 Oct 2023 09:58:37 -0700 Subject: [PATCH] Install Move Tools to `shared/amrex` @@ -11,11 +11,55 @@ This moves its content in both the build directory and the install destination to `share/amrex/` and `/AMReXCMakeModules/`, respectively. --- + Tools/CMake/AMReXBuildInfo.cmake | 29 +++++++++++++++++++------ Tools/CMake/AMReXInstallHelpers.cmake | 31 ++++++++++++++++++--------- - 1 file changed, 21 insertions(+), 10 deletions(-) + Tools/CMake/AMReXTypecheck.cmake | 8 +++++-- + 3 files changed, 49 insertions(+), 19 deletions(-) +diff --git a/Tools/CMake/AMReXBuildInfo.cmake b/Tools/CMake/AMReXBuildInfo.cmake +index 36c7005787..77a90e4fd3 100644 +--- a/Tools/CMake/AMReXBuildInfo.cmake ++++ b/Tools/CMake/AMReXBuildInfo.cmake +@@ -38,15 +38,30 @@ include(AMReXTargetHelpers) + # + # Set paths + # +-string(REPLACE "/Tools/CMake" "" AMREX_TOP_DIR ${CMAKE_CURRENT_LIST_DIR}) +-set( AMREX_TOP_DIR ${AMREX_TOP_DIR} CACHE INTERNAL "Top level AMReX directory") +- +-set( AMREX_BUILDINFO_IFILE ${CMAKE_CURRENT_LIST_DIR}/AMReX_buildInfo.cpp.in ++if (AMReX_FOUND) ++ # AMReX is pre-installed and used as a library ++ string(REPLACE "/lib/cmake/AMReX/AMReXCMakeModules" "" AMREX_TOP_DIR_DEFAULT ++ ${CMAKE_CURRENT_LIST_DIR}) ++else () ++ # this is a superbuild ++ string(REPLACE "/Tools/CMake" "" AMREX_TOP_DIR_DEFAULT ++ ${CMAKE_CURRENT_LIST_DIR}) ++endif () ++set(AMREX_TOP_DIR "${AMREX_TOP_DIR_DEFAULT}" CACHE INTERNAL "Top level AMReX directory") ++ ++if (AMReX_FOUND) ++ # AMReX is pre-installed and used as a library ++ set(AMREX_C_SCRIPTS_DIR "${AMREX_TOP_DIR}/share/amrex/C_scripts" ++ CACHE INTERNAL "Path to AMReX' C_scripts dir") ++else () ++ # this is a superbuild ++ set(AMREX_C_SCRIPTS_DIR "${AMREX_TOP_DIR}/Tools/C_scripts" ++ CACHE INTERNAL "Path to AMReX' C_scripts dir") ++endif () ++ ++set(AMREX_BUILDINFO_IFILE ${CMAKE_CURRENT_LIST_DIR}/AMReX_buildInfo.cpp.in + CACHE INTERNAL "Full path and name of AMReX_buildInfo.cpp.in") + +-set( AMREX_C_SCRIPTS_DIR "${AMREX_TOP_DIR}/Tools/C_scripts" +- CACHE INTERNAL "Path to AMReX' C_scripts dir") +- + set(AMREX_BUILD_DATETIME "" CACHE STRING + "User defined build date and time. Set ONLY for reproducibly built binary distributions") + diff --git a/Tools/CMake/AMReXInstallHelpers.cmake b/Tools/CMake/AMReXInstallHelpers.cmake -index 0720efb4cf9..a01cd63301d 100644 +index 0720efb4cf..a01cd63301 100644 --- a/Tools/CMake/AMReXInstallHelpers.cmake +++ b/Tools/CMake/AMReXInstallHelpers.cmake @@ -26,7 +26,7 @@ function (install_amrex_targets) @@ -79,3 +123,23 @@ index 0720efb4cf9..a01cd63301d 100644 ) +diff --git a/Tools/CMake/AMReXTypecheck.cmake b/Tools/CMake/AMReXTypecheck.cmake +index 0b68fb8c27..c569eb5d9b 100644 +--- a/Tools/CMake/AMReXTypecheck.cmake ++++ b/Tools/CMake/AMReXTypecheck.cmake +@@ -296,9 +296,13 @@ function( add_typecheck_target _target) + # + set(_outfile "${_typecheck_dir}/${_target}_typecheck.ou" ) + +- # Find typechecker ++ # Find typechecker + find_file(_typechecker "typechecker.py" +- HINTS ${AMReX_SOURCE_DIR} ${AMReX_ROOT} ENV AMReX_ROOT PATH_SUFFIXES Tools/typechecker) ++ HINTS ${AMReX_SOURCE_DIR} ${AMReX_ROOT} ENV AMReX_ROOT ++ PATH_SUFFIXES ++ Tools/typechecker # in-source ++ share/amrex/typechecker # installed ++ ) + + add_custom_target( typecheck_${_target} + COMMAND python3 ${_typechecker} diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 2693338..c84cb17 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -14,7 +14,7 @@ source: - 3599.patch build: - number: 0 + number: 1 requirements: build: