diff --git a/dev-lang/ispc/Manifest b/dev-lang/ispc/Manifest index baf634df3bd27..a82ddca61f380 100644 --- a/dev-lang/ispc/Manifest +++ b/dev-lang/ispc/Manifest @@ -1 +1,2 @@ DIST ispc-1.25.3.gh.tar.gz 19805596 BLAKE2B 6e98d2297b2b9b7da32c74328c0b3883a7bd7dc997624ed5c5eff1193779b28a29b6e505ec09f6ba471f0b3ba4b3c603561717311a370bad5350d7e898b9d5f1 SHA512 12bbf7b15d6ec97658d46d65d1c02103bdada4101dcaa2ebb5c8477c39934a588d1035371ae09636c0fa73267f4d714579b8fffcd8690d4f3d95eb12436908ab +DIST ispc-1.26.0.gh.tar.gz 19849065 BLAKE2B db4f287dc0e2a6292875223dfe7b799cdd020384d505b60c13811b782bafd564a2adde4a5d1ca222efac77bfa218670af57dbd129e0d47db001b2c71e5f9aa61 SHA512 bb24cab35d3463b181da2b47ebf6c0836e82a5daff18b2edfccb0d83a066d2c70c30038391b4bcade5e3177bd004068c9ae8c523f09dcecb94d02a8b9e38a2c9 diff --git a/dev-lang/ispc/ispc-1.26.0.ebuild b/dev-lang/ispc/ispc-1.26.0.ebuild new file mode 100644 index 0000000000000..907a6ee9849a3 --- /dev/null +++ b/dev-lang/ispc/ispc-1.26.0.ebuild @@ -0,0 +1,95 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +LLVM_COMPAT=( {17..19} ) +PYTHON_COMPAT=( python3_{10..13} ) + +inherit cmake llvm-r1 multiprocessing python-any-r1 toolchain-funcs + +DESCRIPTION="Intel SPMD Program Compiler" +HOMEPAGE=" + https://ispc.github.io/ + https://github.com/ispc/ispc/ +" +SRC_URI=" + https://github.com/ispc/ispc/archive/v${PV}.tar.gz + -> ${P}.gh.tar.gz +" + +LICENSE="BSD BSD-2 UoI-NCSA" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86" +IUSE="examples gpu openmp test" +RESTRICT="!test? ( test )" + +DEPEND=" + $(llvm_gen_dep ' + llvm-core/clang:${LLVM_SLOT} + ') + sys-libs/ncurses:= + gpu? ( dev-libs/level-zero:= ) + !openmp? ( dev-cpp/tbb:= ) +" +RDEPEND=" + ${DEPEND} +" +BDEPEND=" + app-alternatives/yacc + app-alternatives/lex + ${PYTHON_DEPS} +" + +pkg_pretend() { + [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp +} + +pkg_setup() { + [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp + llvm-r1_pkg_setup + python-any-r1_pkg_setup +} + +src_prepare() { + # do not require bundled gtest + mkdir -p ispcrt/tests/vendor/google/googletest || die + cat > ispcrt/tests/vendor/google/googletest/CMakeLists.txt <<-EOF || die + find_package(GTest) + EOF + # remove hacks that break unbundling + sed -i -e '/gmock/d' -e '/install/,$d' ispcrt/tests/CMakeLists.txt || die + + cmake_src_prepare +} + +src_configure() { + local mycmakeargs=( + -DARM_ENABLED=$(usex arm) + -DCMAKE_SKIP_RPATH=ON + -DISPC_INCLUDE_EXAMPLES=OFF + -DISPC_INCLUDE_TESTS=$(usex test) + -DISPC_INCLUDE_UTILS=OFF + -DISPCRT_BUILD_GPU=$(usex gpu) + -DISPCRT_BUILD_TASK_MODEL=$(usex openmp OpenMP TBB) + # prevent it from trying to find the git repo + -DGIT_BINARY=GIT_BINARY-NOTFOUND + ) + cmake_src_configure +} + +src_test() { + # Inject path to prevent using system ispc + local -x PATH="${BUILD_DIR}/bin:${PATH}" + "${EPYTHON}" ./scripts/run_tests.py "-j$(makeopts_jobs)" -v || + die "Testing failed under ${EPYTHON}" +} + +src_install() { + cmake_src_install + + if use examples; then + docompress -x /usr/share/doc/${PF}/examples + dodoc -r examples + fi +}