%global commit_simde fefc7857ff3e785b988a61a8f5f3c5bd5eb24342 %global hedley_version 14 %global debug_package %{nil} Name: simde Version: 0.7.6 Release: 1 Summary: Implementations of SIMD instruction sets for systems which don't natively support them License: MIT and CC0-1.0 URL: https://github.com/simd-everywhere/simde Source0: https://github.com/simd-everywhere/%{name}/archive/%{commit_simde}.tar.gz Source1: ci.sh BuildRequires: clang BuildRequires: cmake BuildRequires: gcc BuildRequires: gcc-c++ BuildRequires: meson time # simde/hedley.h # https://github.com/nemequ/hedley Provides: bundled(hedley) = %{hedley_version} %description %{summary} The SIMDe header-only library provides fast, portable implementations of SIMD intrinsics on hardware which doesn't natively support them, such as calling SSE functions on ARM. There is no performance penalty if the hardware supports the native implementation (e.g., SSE/AVX runs at full speed on x86, NEON on ARM, etc.). %package devel Summary: Header files for SIMDe development Provides: %{name}-static = %{version}-%{release} %description devel The simde-devel package contains the header files needed to develop programs that use the SIMDe. %prep %autosetup -n %{name}-%{commit_simde} -p1 %build %install mkdir -p %{buildroot}%{_includedir} cp -a simde %{buildroot}%{_includedir} %check # Check version. version_major=$(grep '^#define SIMDE_VERSION_MAJOR ' simde/simde-common.h | cut -d ' ' -f 3) version_minor=$(grep '^#define SIMDE_VERSION_MINOR ' simde/simde-common.h | cut -d ' ' -f 3) version_micro=$(grep '^#define SIMDE_VERSION_MICRO ' simde/simde-common.h | cut -d ' ' -f 3) test "%{version}" = "${version_major}.${version_minor}.${version_micro}" for file in $(find simde/ -type f); do if ! [[ "${file}" =~ \.h$ ]]; then echo "${file} is not a header file." false elif [ -x "${file}" ]; then echo "${file} has executable bit." false fi done # Only test the GCC and Clang cases with RPM build flags. # If you find test failures on the cases, reproduce it in the upstream CI. # in the O2 or RPM build flags cases, and report it. # See . # Copy to use the modified script. cp -p "%{SOURCE1}" ci.sh sed -i -e '/^cat \/proc\/cpuinfo/ s/^/#/' ci.sh sed -i -e '/^cat \/proc\/meminfo/ s/^/#/' ci.sh sed -i -e '/^pip3 install meson/ s/^/#/' ci.sh sed -i -e '/^IGNORE_EXIT_STATUS=/,/^SKIP_i686_GCC_DEFAULT=/ s/^/#/' ci.sh diff -u "%{SOURCE1}" ci.sh || : cp -p ci.sh ci_gcc.sh IGNORE_EXIT_STATUS= # Prepare the configuration. cat > config.txt < config.txt < [%E]' ./ci_gcc.sh /bin/time -f '=> [%E]' ./ci_clang.sh %files devel %license COPYING %doc README.md %{_includedir}/%{name} %changelog * Sat Jul 15 2023 yaoxin - 0.7.6-1 - Update to 0.7.6 for fix build error caused by clang-15 * Tue Mar 8 2022 yaoxin - 0.7.3-1 - Upgrade simde to 0.7.3 to resolve compilation failures. * Fri Jan 8 2021 chengzihan - 0.5.0-1 - Package init