diff --git a/.ci_support/linux_64_.yaml b/.ci_support/linux_64_.yaml index fc0a8ff..7e3d69b 100644 --- a/.ci_support/linux_64_.yaml +++ b/.ci_support/linux_64_.yaml @@ -1,7 +1,9 @@ +binutils_version: +- '2.30' c_compiler: - gcc c_compiler_version: -- '12' +- 7.5.0 c_stdlib: - sysroot c_stdlib_version: @@ -17,7 +19,7 @@ curl: cxx_compiler: - gxx cxx_compiler_version: -- '12' +- 7.5.0 docker_image: - quay.io/condaforge/linux-anvil-cos7-x86_64 libxml2: @@ -32,4 +34,4 @@ zip_keys: - - c_stdlib_version - cdt_name zlib: -- '1.2' +- '1' diff --git a/.ci_support/win_64_.yaml b/.ci_support/win_64_.yaml index 12779c9..4f684b4 100644 --- a/.ci_support/win_64_.yaml +++ b/.ci_support/win_64_.yaml @@ -25,4 +25,4 @@ python: target_platform: - win-64 zlib: -- '1.2' +- '1' diff --git a/.gitattributes b/.gitattributes index 7f32763..18f114a 100644 --- a/.gitattributes +++ b/.gitattributes @@ -20,8 +20,8 @@ bld.bat text eol=crlf .travis.yml linguist-generated=true .scripts/* linguist-generated=true .woodpecker.yml linguist-generated=true -LICENSE.txt linguist-generated=true -README.md linguist-generated=true +/LICENSE.txt linguist-generated=true +/README.md linguist-generated=true azure-pipelines.yml linguist-generated=true build-locally.py linguist-generated=true shippable.yml linguist-generated=true diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 04c1334..3bfad75 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1 +1 @@ -* @napetrov @oleksandr-pavlyk @tomashek \ No newline at end of file +* @ZzEeKkAa @napetrov @oleksandr-pavlyk @tomashek \ No newline at end of file diff --git a/.scripts/build_steps.sh b/.scripts/build_steps.sh index 2f3df6c..97dc8d9 100755 --- a/.scripts/build_steps.sh +++ b/.scripts/build_steps.sh @@ -69,6 +69,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 7491838..24ef201 100755 --- a/.scripts/run_win_build.bat +++ b/.scripts/run_win_build.bat @@ -53,6 +53,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/README.md b/README.md index ab8825d..ed18e96 100644 --- a/README.md +++ b/README.md @@ -352,6 +352,7 @@ In order to produce a uniquely identifiable distribution: Feedstock Maintainers ===================== +* [@ZzEeKkAa](https://github.com/ZzEeKkAa/) * [@napetrov](https://github.com/napetrov/) * [@oleksandr-pavlyk](https://github.com/oleksandr-pavlyk/) * [@tomashek](https://github.com/tomashek/) diff --git a/conda-forge.yml b/conda-forge.yml index 0159964..07c182b 100644 --- a/conda-forge.yml +++ b/conda-forge.yml @@ -1,5 +1,5 @@ conda_forge_output_validation: true -build_with_mambabuild: false +conda_build_tool: conda-build github: branch_name: main tooling_branch_name: main diff --git a/recipe/conda_build_config.yaml b/recipe/conda_build_config.yaml new file mode 100644 index 0000000..67f95b6 --- /dev/null +++ b/recipe/conda_build_config.yaml @@ -0,0 +1,8 @@ +# Refer version dependencies at +# https://www.intel.com/content/www/us/en/developer/articles/system-requirements/intel-oneapi-dpcpp-system-requirements.html +c_compiler_version: # [linux] + - 7.5.0 # [linux] +cxx_compiler_version: # [linux] + - 7.5.0 # [linux] +binutils_version: # [linux] + - 2.30 # [linux] diff --git a/recipe/meta.yaml b/recipe/meta.yaml index a13a314..4214a64 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -10,7 +10,7 @@ {% set intel_ch = "https://anaconda.org/intel" %} # use this if our build script changes and we need to increment beyond intel's version -{% set dst_build_number = '0' %} +{% set dst_build_number = '1' %} {% set build_number = intel_build_number|int + dst_build_number|int %} package: @@ -71,6 +71,7 @@ outputs: build: - {{ compiler('c') }} - {{ compiler('cxx') }} + - {{ stdlib('c') }} host: - ocl-icd # [linux] - khronos-opencl-icd-loader # [win] @@ -100,6 +101,7 @@ outputs: requirements: build: - {{ compiler('c') }} + - {{ stdlib('c') }} - patchelf # [linux] host: - {{ pin_subpackage('intel-cmplr-lib-rt', exact=True) }} @@ -139,7 +141,7 @@ outputs: build: - {{ compiler('c') }} - {{ compiler('cxx') }} - - sysroot_linux-64 2.17 # [linux] + - {{ stdlib('c') }} - patchelf # [linux] host: - tbb-devel {{ tbb_version.split('.')[0] }}.* @@ -190,6 +192,7 @@ outputs: build: - {{ compiler('c') }} - {{ compiler('cxx') }} + - {{ stdlib('c') }} host: - {{ pin_subpackage('intel-cmplr-lib-rt', exact=True) }} - ocl-icd # [linux] @@ -226,16 +229,20 @@ outputs: binary_relocation: False overlinking_ignore_patterns: - "**" + ignore_run_exports_from: + - {{ c_stdlib }}_{{ target_platform }} run_exports: # 1. strong so it gets added if this package is in the build requirement section. # 2. Pin to year for now, similar to MKL. strong: - {{ pin_subpackage("dpcpp-cpp-rt", max_pin="x") }} - - __glibc >=2.17,<3.0.a0 # [linux64] + - {{ pin_compatible("libgcc-ng") }} # [linux64] + - {{ pin_compatible("libstdcxx-ng") }} # [linux64] requirements: build: - {{ compiler('c') }} - {{ compiler('cxx') }} + - {{ stdlib('c') }} host: - zlib - libxml2 @@ -247,10 +254,14 @@ outputs: - llvm-openmp # [not linux] run: - {{ pin_subpackage('dpcpp-cpp-rt', exact=True) }} - - sysroot_linux-64 2.17 # [linux64] - - gcc_impl_linux-64 # [linux64] - - gxx_impl_linux-64 # [linux64] - + - binutils_impl_{{ target_platform }} >={{ binutils_version }} # [linux] + - libgcc-devel_{{ target_platform }} >={{ c_compiler_version }} # [linux] + - libstdcxx-devel_{{ target_platform }} >={{ cxx_compiler_version }} # [linux] + # None of the other compilers pin to sysroot, so we don't either. It + # also appears that sysroot version must be aligned with host system, + # e.g.: + # https://github.com/conda-forge/ctng-compiler-activation-feedstock/issues/108 + - {{ c_stdlib }}_{{ target_platform }} about: home: https://software.intel.com/content/www/us/en/develop/tools.html doc_url: https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/dpc-compiler.html @@ -282,11 +293,11 @@ outputs: # 2. Pin to year for now, similar to MKL. strong: - {{ pin_subpackage("dpcpp-cpp-rt", max_pin="x") }} - - __glibc >=2.17,<3.0.a0 # [linux64] - requirements: # [linux64 or win64] - run: # [linux64 or win64] - - {{ pin_subpackage('dpcpp_impl_linux-64', exact=True) }} # [linux64] - - {{ pin_subpackage('dpcpp_impl_win-64', exact=True) }} # [win64] + requirements: + run: + - {{ pin_subpackage('dpcpp_impl_' ~ target_platform, exact=True) }} + - binutils_{{ target_platform }} >={{ binutils_version }} # [linux] + - {{ c_stdlib }}_{{ target_platform }} about: home: https://software.intel.com/content/www/us/en/develop/tools.html doc_url: https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/dpc-compiler.html @@ -304,6 +315,7 @@ outputs: requires: - {{ compiler('c') }} - {{ compiler('cxx') }} + - {{ stdlib('c') }} files: - simple.cpp commands: @@ -328,6 +340,7 @@ outputs: build: - {{ compiler('c') }} - {{ compiler('cxx') }} + - {{ stdlib('c') }} host: - mpich # [linux] - {{ pin_subpackage('intel-cmplr-lib-rt', exact=True) }} @@ -367,3 +380,4 @@ extra: - napetrov - tomashek - oleksandr-pavlyk + - ZzEeKkAa diff --git a/recipe/repack.sh b/recipe/repack.sh index 07c39de..405b208 100644 --- a/recipe/repack.sh +++ b/recipe/repack.sh @@ -6,6 +6,15 @@ set -ex src="${SRC_DIR}/${PKG_NAME}" +# TODO: remove once fixed in the upstream +if [[ "$PKG_NAME" == "dpcpp_impl_linux-64" ]]; then + # Move intel specific headers files from the global include directory to + # allow other compilers work in the same environment. + find ${src}/include -maxdepth 1 -type f -exec mv {} ${src}/opt/compiler/include \; + # Move it to the sycl directory to much structure with /opt/intel/include + mv ${src}/lib/clang/18/include/CL ${src}/include/sycl/CL +fi + cp -av "${src}"/* "${PREFIX}/" # replace old info folder with our new regenerated one