Antonio Trande 914334a
## This SPEC file compiles NativeJIT library including specific modifications for
Antonio Trande 914334a
# COPASI project (see COPASI package).
Antonio Trande 914334a
## NativeJIT code (fork) repository from COPASI team: https://github.com/copasi/copasi-dependencies/tree/master/src/NativeJIT
Antonio Trande 914334a
## Original NativeJIT repository: https://github.com/BitFunnel/NativeJIT
Antonio Trande 914334a
Antonio Trande 914334a
# This library works specifically on x86_64 systems with SSE4 (Streaming SIMD Extensions 4) 
Antonio Trande 914334a
# See https://pagure.io/packaging-committee/issue/1044
Antonio Trande 914334a
ExclusiveArch: x86_64
Antonio Trande 914334a
Antonio Trande 914334a
Name:    nativejit
Antonio Trande 914334a
Version: 0.1
61b3496
Release: 9%{?dist}
Antonio Trande 914334a
Summary: Library for high-performance just-in-time compilation
Antonio Trande 914334a
License: MIT
Antonio Trande 914334a
URL:     https://github.com/copasi/copasi-dependencies/tree/master/src/NativeJIT
Antonio Trande 914334a
Source0: https://gitlab.com/anto.trande/nativejit/-/archive/v%{version}/nativejit-v%{version}.tar.bz2
Antonio Trande 914334a
Antonio Trande 914334a
BuildRequires: cmake3, gcc, gcc-c++, make
Antonio Trande 914334a
BuildRequires: gtest-devel
Antonio Trande 914334a
Antonio Trande 914334a
Provides: NativeJIT = 0:%{version}-%{release}
Antonio Trande 914334a
Antonio Trande 914334a
%description
Antonio Trande 914334a
NativeJIT is an open-source cross-platform library for high-performance
Antonio Trande 914334a
just-in-time compilation of expressions involving C data structures.
Antonio Trande 914334a
The compiler is light weight and fast and it takes no dependencies
Antonio Trande 914334a
beyond the standard C++ runtime. It runs on Linux, OSX, and Windows.
Antonio Trande 914334a
The generated code is optimized with particular attention paid to
Antonio Trande 914334a
register allocation.
Antonio Trande 914334a
It requires CPUs with SSE4 (Streaming SIMD Extensions 4).
Antonio Trande 914334a
Antonio Trande 914334a
%package devel
Antonio Trande 914334a
Summary: NativeJIT headers and development-related files
Antonio Trande 914334a
Requires: %{name}%{?_isa} = %{version}-%{release}
Antonio Trande 914334a
Requires: cmake%{?_isa}
Antonio Trande 914334a
%description devel
Antonio Trande 914334a
NativeJIT headers and development-related files, CMake config files.
Antonio Trande 914334a
Antonio Trande 914334a
%prep
Antonio Trande 914334a
%autosetup -n %{name}-v%{version}
Antonio Trande 914334a
Antonio Trande 914334a
%build
Antonio Trande 914334a
%cmake \
Antonio Trande 914334a
 -DCMAKE_BUILD_TYPE:STRING=Release \
Antonio Trande 914334a
 -DCMAKE_CXX_FLAGS_RELEASE:STRING="%{build_cxxflags} -DNDEBUG" \
Antonio Trande 914334a
 -DCMAKE_C_FLAGS_RELEASE:STRING="%{build_cflags} -DNDEBUG" \
Antonio Trande 914334a
 -DCMAKE_SKIP_INSTALL_RPATH:BOOL=YES \
Antonio Trande 914334a
 -DNATIVEJIT_VERSION_MAJOR=0 -DNATIVEJIT_VERSION=0
Antonio Trande 914334a
%cmake_build
Antonio Trande 914334a
Antonio Trande 914334a
%install
Antonio Trande 914334a
%cmake_install
Antonio Trande 914334a
Antonio Trande 914334a
%check
Antonio Trande 914334a
if grep -E '\bsse4_2\b' /proc/cpuinfo >/dev/null
Antonio Trande 914334a
then
Antonio Trande 914334a
  %ctest -- -VV
Antonio Trande 914334a
else
Antonio Trande 914334a
  echo 'No SSE4.2 support on build host; skipping tests' 1>&2
Antonio Trande 914334a
fi
Antonio Trande 914334a
Antonio Trande 914334a
Antonio Trande 914334a
%files
Antonio Trande 914334a
%license LICENSE.txt
Antonio Trande 914334a
%doc README.md
Antonio Trande 914334a
%{_libdir}/libCodeGen.so.0
Antonio Trande 914334a
%{_libdir}/libNativeJIT.so.0
Antonio Trande 914334a
Antonio Trande 914334a
%files devel
Antonio Trande 914334a
%{_libdir}/libCodeGen.so
Antonio Trande 914334a
%{_libdir}/libNativeJIT.so
Antonio Trande 914334a
%{_includedir}/NativeJIT/
Antonio Trande 914334a
%{_includedir}/Temporary/
Antonio Trande 914334a
%{_libdir}/cmake/nativejit*.cmake
Antonio Trande 914334a
Antonio Trande 914334a
%changelog
61b3496
* Thu Jan 25 2024 Fedora Release Engineering <releng@fedoraproject.org> - 0.1-9
61b3496
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
61b3496
4952b1c
* Sun Jan 21 2024 Fedora Release Engineering <releng@fedoraproject.org> - 0.1-8
4952b1c
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
4952b1c
13acf57
* Thu Jul 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 0.1-7
13acf57
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
13acf57
6f2aad1
* Thu Jan 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 0.1-6
6f2aad1
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
6f2aad1
c36cc08
* Fri Jul 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 0.1-5
c36cc08
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
c36cc08
33f66e5
* Sun Jan 30 2022 Antonio Trande <sagitter@fedoraproject.org> - 0.1-4
33f66e5
- Rebuild
33f66e5
3336318
* Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 0.1-3
3336318
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
3336318
f79455c
* Thu Jul 22 2021 Fedora Release Engineering <releng@fedoraproject.org> - 0.1-2
f79455c
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
f79455c
Antonio Trande 914334a
* Fri Mar 05 2021 Antonio Trande <sagitter@fedoraproject.org> - 0.1-1
Antonio Trande 914334a
- Fix links to CodeGen library
Antonio Trande 914334a
Antonio Trande 914334a
* Thu Mar 04 2021 Antonio Trande <sagitter@fedoraproject.org> - 0.0-2
Antonio Trande 914334a
- Conditional test when SSE4 in available
Antonio Trande 914334a
- Add explicit comments about SSE4
Antonio Trande 914334a
Antonio Trande 914334a
* Tue Mar 02 2021 Antonio Trande <sagitter@fedoraproject.org> - 0.0-1
Antonio Trande 914334a
- Initial package