Name: surelog Version: 1.84 %global forgeurl https://github.com/chipsalliance/Surelog %forgemeta Release: %autorelease Summary: SystemVerilog 2017 Pre-processor, Parser, Elaborator, UHDM Compiler License: Apache-2.0 URL: https://github.com/chipsalliance/Surelog Source0: %forgesource Patch0: antlr.patch BuildRequires: %{toolchain} BuildRequires: gcc-c++ git cmake pkgconfig swig python3 python3-devel ninja-build BuildRequires: libuuid-devel uhdm-devel java-headless gperftools-devel BuildRequires: gtest-devel capnproto capnproto-devel gmock-devel gtest-devel BuildRequires: json-devel antlr4 antlr4-cpp-runtime-devel zlib-devel %description SystemVerilog 2017 Pre-processor, Parser, Elaborator, UHDM Compiler. Provides IEEE Design/TB C/C++ VPI and Python AST API. %package devel Summary: Development library of %{name} Requires: %{name} = %{version}-%{release} %description devel Development %{name} library %prep %forgesetup %patch 0 -p1 # missing stds sed -i -e '1i #include ' src/roundtrip.cpp sed -i -e '1i #include ' src/ErrorReporting/Report.cpp sed -i -e '1i #include ' src/Common/PlatformFileSystem.cpp sed -i -e '1i #include ' include/Surelog/ErrorReporting/Waiver.h sed -i -e '1i #include ' src/Utils/StringUtils.cpp # shared sed -i -e 's|surelog STATIC|surelog SHARED|g' CMakeLists.txt # ext libs sed -i -e '/(third_party\/UHDM/d' CMakeLists.txt sed -i -e '/(third_party\/googletest/d' CMakeLists.txt sed -i -e '/GenerateSerializer uhdm/d' CMakeLists.txt sed -i -e '/uhdm PRIVATE/d' CMakeLists.txt sed -i -e 's|TARGETS capnp kj|TARGETS |' CMakeLists.txt sed -i -e 's|TARGETS uhdm|TARGETS |' CMakeLists.txt sed -i -e 's|>=2.0.7|>=2.0.0|' CMakeLists.txt # ext antlr4 %if 0%{?ext_antlr} sed -i -e '/GenerateParser antlr4_static/d' CMakeLists.txt sed -i -e 's|surelog PUBLIC antlr4_static|surelog PUBLIC antlr4-runtime|' CMakeLists.txt sed -i -e 's|TARGETS surelog antlr4_static|TARGETS surelog |' CMakeLists.txt %endif # fix sed -i '1i #include ' src/Common/FileSystem.cpp sed -i '1i #include ' src/SourceCompile/SV3_1aPpTreeShapeListener.cpp # sover sed -i 's|surelog PROPERTIES|surelog PROPERTIES SOVERSION 1 VERSION 1.0|' CMakeLists.txt %if 0%{?rhel} # old c++17 sed -i 's|\[\[maybe_unused\]\]||g' include/Surelog/Design/ClockingBlock.h sed -i 's|\[\[maybe_unused\]\]||g' include/Surelog/DesignCompile/CompileFileContent.h %endif # install path sed -i 's|DESTINATION cmake|DESTINATION %{_libdir}/cmake|' CMakeLists.txt sed -i 's|${CMAKE_INSTALL_LIBDIR}/surelog-python|${CMAKE_INSTALL_LIBDIR}/surelog|' CMakeLists.txt sed -i 's|DESTINATION lib/|DESTINATION ${CMAKE_INSTALL_PREFIX}/%{_lib}/|' CMakeLists.txt sed -i 's|${CMAKE_INSTALL_PREFIX}/lib/surelog|${CMAKE_INSTALL_PREFIX}/%{_lib}/surelog|' CMakeLists.txt sed -i 's|${Java_JAVA_EXECUTABLE} -jar ${ANTLR_JAR_LOCATION}|${ANTLR_BIN}|' CMakeLists.txt sed -i '/Java/d' CMakeLists.txt sed -i '/PyEval_ReleaseLock/d' src/API/PythonAPI.cpp %build ##cat %{_bindir}/antlr4 | sed -e '/^run/d' > antlr4.sh ##echo 'echo $CLASSPATH' >> antlr4.sh ##chmod +x antlr4.sh ##export CLASSPATH="$(bash ./antlr4.sh)" %if 0 %global optflags $(echo "%{optflags} -fPIC -I/usr/include/uhdm") export LD_LIBRARY_PATH=%{_builddir}/%{name}/build/bin export LD_LIBRARY_PATH="$PWD/lib/" %endif %cmake . -GNinja -Wno-dev \ -DSURELOG_USE_HOST_ALL=ON\ %if 0 -DCMAKE_SKIP_RPATH=ON \ -DCMAKE_SKIP_BUILD_RPATH=ON \ -DCMAKE_VERBOSE_MAKEFILE=OFF \ %endif -DCMAKE_INSTALL_BINDIR=%{_bindir} \ -DCMAKE_BUILD_TYPE=RelWithDebInfo \ -DCMAKE_INSTALL_LIBDIR=%{_libdir} \ -DCMAKE_INSTALL_INCLUDEDIR=%{_includedir} \ -DSURELOG_USE_HOST_UHDM=ON \ -DUHDM_LIBRARY=%{_libdir}/libuhdm.so \ -DSURELOG_USE_HOST_ANTLR=ON \ %if 0%{?rhel} -DSURELOG_BUILD_TESTS=OFF \ -DSURELOG_USE_HOST_GTEST=OFF \ %else -DSURELOG_USE_HOST_GTEST=ON \ %endif -DSURELOG_WITH_PYTHON=ON \ -DANTLR_LIBRARY=%{_libdir}/libantlr4-runtime.so \ -DANTLR_BIN=%{_bindir}/antlr4 \ -DANTLR_JAR_LOCATION=%{_javadir}/antlr4/antlr4.jar %cmake_build %install %cmake_install # fix path #mv -f %{buildroot}/%{_libdir}/*python %{buildroot}/%{_libdir}/%{name} # clean spurious find %{buildroot} -name '*.a' -exec rm -rf {} \; %files %doc README.md %license LICENSE %{_bindir}/* %{_libdir}/*.so.* %{_libdir}/%{name}/* %{_datadir}/* %files devel %{_includedir}/* %{_libdir}/*.so %{_libdir}/cmake/* %{_libdir}/pkgconfig/* %changelog * Sat Mar 12 2022 Balint Cristian - github update releases