File gtkwave.spec of Package gtkwave

#
# spec file for package gtkwave
#
# Copyright (c) 2023 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via https://bugs.opensuse.org/
#


Name:           gtkwave
Version:        3.4.0.6b18383
Release:        0
Summary:        Waveform viewer for Ditital Signals
License:        GPL-2.0-or-later
Group:          Productivity/Scientific/Electronics
URL:            https://gtkwave.sourceforge.net/
Source0:        %{name}-%{version}.tar.gz
BuildRequires:  fdupes
BuildRequires:  flex
BuildRequires:  gcc
BuildRequires:  gcc-c++
BuildRequires:  gperf
BuildRequires:  glib2-devel
BuildRequires:  gtk3-devel
BuildRequires:  gtk4
BuildRequires:  gtk4-devel
BuildRequires:  gobject-introspection-devel
BuildRequires:  libgio-2_0-0
BuildRequires:  tcl-devel
BuildRequires:  tk-devel
BuildRequires:  update-desktop-files
BuildRequires:  xz-devel
BuildRequires:  zlib-devel
BuildRequires:  meson
BuildRequires:  ninja
BuildRequires:  cmake
Recommends:     %{name}-doc

%description
GTKWave is a waveform viewer that can view VCD files produced by most Verilog
simulation tools, as well as LXT files produced by certain Verilog simulation
tools.

%package        doc
Summary:        Documentation for GTKWave
Group:          Documentation/Other
Requires:       %{name} = %{version}
BuildArch:      noarch

%description    doc
GTKWave is a waveform viewer that can view VCD files produced by most Verilog
simulation tools, as well as LXT files produced by certain Verilog simulation
tools.

This package contains documentation for GTKWave

%package        libgtkwave-devel
Summary:        Development header for GTKWave
Group:          Development/Libraries
Requires:       %{name} = %{version}
BuildArch:      noarch

%description    libgtkwave-devel
GTKWave is a waveform viewer that can view VCD files produced by most Verilog
simulation tools, as well as LXT files produced by certain Verilog simulation
tools.

This package contains development headers for libgtkwave core dependency.

%package        examples
Summary:        Examples for GTKWave
Group:          Documentation/Other
Requires:       %{name} = %{version}
BuildArch:      noarch

%description    examples
GTKWave is a waveform viewer that can view VCD files produced by most Verilog
simulation tools, as well as LXT files produced by certain Verilog simulation
tools.

This package contains examples for GTKWave

%prep
%setup -q

%build
meson setup build
meson compile -C build

%install
# Undocumented why meson does not have an option to NOT force chown
# Open Build Service also does not state how it prefers files to be
# installed via meson when the macros clearly are dogshit and don't
# work as intended
#meson install -C build

install -Dm 755 build/lib/libgtkwave/src/libgtkwave.so ${RPM_BUILD_ROOT}/usr/local/lib64/libgtkwave.so
install -Dm 755 build/src/helpers/evcd2vcd ${RPM_BUILD_ROOT}/usr/local/bin/evcd2vcd
install -Dm 755 build/src/helpers/fst2vcd ${RPM_BUILD_ROOT}/usr/local/bin/fst2vcd
install -Dm 755 build/src/helpers/fstminer ${RPM_BUILD_ROOT}/usr/local/bin/fstminer
install -Dm 755 build/src/helpers/lxt2miner ${RPM_BUILD_ROOT}/usr/local/bin/lxt2miner
install -Dm 755 build/src/helpers/lxt2vcd ${RPM_BUILD_ROOT}/usr/local/bin/lxt2vcd
install -Dm 755 build/src/helpers/vcd2fst ${RPM_BUILD_ROOT}/usr/local/bin/vcd2fst
install -Dm 755 build/src/helpers/vcd2lxt ${RPM_BUILD_ROOT}/usr/local/bin/vcd2lxt
install -Dm 755 build/src/helpers/vcd2lxt2 ${RPM_BUILD_ROOT}/usr/local/bin/vcd2lxt2
install -Dm 755 build/src/helpers/vcd2vzt ${RPM_BUILD_ROOT}/usr/local/bin/vcd2vzt
install -Dm 755 build/src/helpers/vzt2vcd ${RPM_BUILD_ROOT}/usr/local/bin/vcd2vzt
install -Dm 755 build/src/helpers/vztminer ${RPM_BUILD_ROOT}/usr/local/bin/vztminer
install -Dm 755 build/src/gtkwave ${RPM_BUILD_ROOT}/usr/local/bin/gtkwave
install -Dm 755 build/src/twinwave ${RPM_BUILD_ROOT}/usr/local/bin/twinwave
install -Dm 755 build/contrib/rtlbrowse/rtlbrowse ${RPM_BUILD_ROOT}/usr/local/bin/rtlbrowse
install -Dm 755 build/contrib/xml2stems/xml2stems ${RPM_BUILD_ROOT}/usr/local/bin/xml2stems
install -Dm 644 lib/libgtkwave/src/gtkwave.h ${RPM_BUILD_ROOT}/usr/local/include/libgtkwave/gtkwave.h
install -Dm 644 lib/libgtkwave/src/gw-types.h ${RPM_BUILD_ROOT}/usr/local/include/libgtkwave/gw-types.h
install -Dm 644 lib/libgtkwave/src/gw-bit-vector.h ${RPM_BUILD_ROOT}/usr/local/include/libgtkwave/gw-bit-vector.h
install -Dm 644 lib/libgtkwave/src/gw-bit.h ${RPM_BUILD_ROOT}/usr/local/include/libgtkwave/gw-bit.h
install -Dm 644 lib/libgtkwave/src/gw-bits.h ${RPM_BUILD_ROOT}/usr/local/include/libgtkwave/gw-bits.h
install -Dm 644 lib/libgtkwave/src/gw-blackout-regions.h ${RPM_BUILD_ROOT}/usr/local/include/libgtkwave/gw-blackout-regions.h
install -Dm 644 lib/libgtkwave/src/gw-color-theme.h ${RPM_BUILD_ROOT}/usr/local/include/libgtkwave/gw-color-theme.h
install -Dm 644 lib/libgtkwave/src/gw-color.h ${RPM_BUILD_ROOT}/usr/local/include/libgtkwave/gw-color-theme.h
install -Dm 644 lib/libgtkwave/src/gw-dump-file-builder.h ${RPM_BUILD_ROOT}/usr/local/include/libgtkwave/gw-dump-file-builder.h
install -Dm 644 lib/libgtkwave/src/gw-dump-file.h ${RPM_BUILD_ROOT}/usr/local/include/libgtkwave/gw-dump-file.h
install -Dm 644 lib/libgtkwave/src/gw-enum-filter-list.h ${RPM_BUILD_ROOT}/usr/local/include/libgtkwave/gw-enum-filter-list.h
install -Dm 644 lib/libgtkwave/src/gw-enum-filter.h ${RPM_BUILD_ROOT}/usr/local/include/libgtkwave/gw-enum-filter.h 
install -Dm 644 lib/libgtkwave/src/gw-fac.h ${RPM_BUILD_ROOT}/usr/local/include/libgtkwave/gw-fac.h
install -Dm 644 lib/libgtkwave/src/gw-facs.h ${RPM_BUILD_ROOT}/usr/local/include/libgtkwave/gw-fac.h
install -Dm 644 lib/libgtkwave/src/gw-fst-file.h ${RPM_BUILD_ROOT}/usr/local/include/libgtkwave/gw-fst-file.h
install -Dm 644 lib/libgtkwave/src/gw-fst-loader.h ${RPM_BUILD_ROOT}/usr/local/include/libgtkwave/gw-fst-loader.h
install -Dm 644 lib/libgtkwave/src/gw-ghw-file.h ${RPM_BUILD_ROOT}/usr/local/include/libgtkwave/gw-ghw-file.h
install -Dm 644 lib/libgtkwave/src/gw-ghw-loader.h ${RPM_BUILD_ROOT}/usr/local/include/libgtkwave/gw-ghw-loader.h
install -Dm 644 lib/libgtkwave/src/gw-hash.h ${RPM_BUILD_ROOT}/usr/local/include/libgtkwave/gw-hash.h
install -Dm 644 lib/libgtkwave/src/gw-hist-ent-factory.h ${RPM_BUILD_ROOT}/usr/local/include/libgtkwave/gw-hash.h
install -Dm 644 lib/libgtkwave/src/gw-hist-ent.h ${RPM_BUILD_ROOT}/usr/local/include/libgtkwave/gw-hist-ent.h
install -Dm 644 lib/libgtkwave/src/gw-loader.h ${RPM_BUILD_ROOT}/usr/local/include/libgtkwave/gw-hist-ent.h
install -Dm 644 lib/libgtkwave/src/gw-marker.h ${RPM_BUILD_ROOT}/usr/local/include/libgtkwave/gw-loader.h
install -Dm 644 lib/libgtkwave/src/gw-named-markers.h ${RPM_BUILD_ROOT}/usr/local/include/libgtkwave/gw-named-markers.h
install -Dm 644 lib/libgtkwave/src/gw-project.h ${RPM_BUILD_ROOT}/usr/local/include/libgtkwave/gw-project.h
install -Dm 644 lib/libgtkwave/src/gw-stems.h ${RPM_BUILD_ROOT}/usr/local/include/libgtkwave/gw-stems.h
install -Dm 644 lib/libgtkwave/src/gw-string-table.h ${RPM_BUILD_ROOT}/usr/local/include/libgtkwave/gw-string-table.h
install -Dm 644 lib/libgtkwave/src/gw-symbol.h ${RPM_BUILD_ROOT}/usr/local/include/libgtkwave/gw-symbol.h
install -Dm 644 lib/libgtkwave/src/gw-time-range.h ${RPM_BUILD_ROOT}/usr/local/include/libgtkwave/gw-symbol.h
install -Dm 644 lib/libgtkwave/src/gw-time.h ${RPM_BUILD_ROOT}/usr/local/include/libgtkwave/gw-time-range.h
install -Dm 644 lib/libgtkwave/src/gw-tree-builder.h ${RPM_BUILD_ROOT}/usr/local/include/libgtkwave/gw-tree-builder.h
install -Dm 644 lib/libgtkwave/src/gw-tree.h ${RPM_BUILD_ROOT}/usr/local/include/libgtkwave/gw-tree.h
install -Dm 644 lib/libgtkwave/src/gw-var-enums.h ${RPM_BUILD_ROOT}/usr/local/include/libgtkwave/gw-tree.h
install -Dm 644 lib/libgtkwave/src/gw-vcd-file.h ${RPM_BUILD_ROOT}/usr/local/include/libgtkwave/gw-var-enums.h
install -Dm 644 lib/libgtkwave/src/gw-vcd-loader.h ${RPM_BUILD_ROOT}/usr/local/include/libgtkwave/gw-vcd-file.h
install -Dm 644 lib/libgtkwave/src/gw-vector-ent.h ${RPM_BUILD_ROOT}/usr/local/include/libgtkwave/gw-vcd-loader.h
install -Dm 644 man/evcd2vcd.1 ${RPM_BUILD_ROOT}/usr/local/share/man/man1/evcd2vcd.1
install -Dm 644 man/fst2vcd.1 ${RPM_BUILD_ROOT}/usr/local/share/man/man1/evcd2vcd.1
install -Dm 644 man/gtkwave.1 ${RPM_BUILD_ROOT}/usr/local/share/man/man1/fst2vcd.1
install -Dm 644 man/gtkwaverc.5 ${RPM_BUILD_ROOT}/usr/local/share/man/man5/gtkwave.1
install -Dm 644 man/lxt2miner.1 ${RPM_BUILD_ROOT}/usr/local/share/man/man1/gtkwaverc.5
install -Dm 644 man/lxt2vcd.1 ${RPM_BUILD_ROOT}/usr/local/share/man/man1/lxt2vcd.1
install -Dm 644 man/rtlbrowse.1 ${RPM_BUILD_ROOT}/usr/local/share/man/man1/lxt2vcd.1
install -Dm 644 man/twinwave.1 ${RPM_BUILD_ROOT}/usr/local/share/man/man1/rtlbrowse.1
install -Dm 644 man/vcd2fst.1 ${RPM_BUILD_ROOT}/usr/local/share/man/man1/vcd2fst.1
install -Dm 644 man/vcd2lxt.1 ${RPM_BUILD_ROOT}/usr/local/share/man/man1/vcd2fst.1
install -Dm 644 man/vcd2lxt2.1 ${RPM_BUILD_ROOT}/usr/local/share/man/man1/vcd2lxt.1
install -Dm 644 man/vcd2vzt.1 ${RPM_BUILD_ROOT}/usr/local/share/man/man1/vcd2lxt2.1
install -Dm 644 man/vzt2vcd.1 ${RPM_BUILD_ROOT}/usr/local/share/man/man1/vzt2vcd.1
install -Dm 644 man/vztminer.1 ${RPM_BUILD_ROOT}/usr/local/share/man/man1/vztminer.1
install -Dm 644 man/fstminer.1 ${RPM_BUILD_ROOT}/usr/local/share/man/man1/fstminer.1
install -Dm 644 man/xml2stems.1 ${RPM_BUILD_ROOT}/usr/local/share/man/man1/xml2stems.1
install -Dm 644 build/meson-private/gtkwave.pc ${RPM_BUILD_ROOT}/usr/local/lib64/pkgconfig/gtkwave.pc
install -Dm 644 share/icons/io.github.gtkwave.GTKWave.svg ${RPM_BUILD_ROOT}/usr/local/share/icons/hicolor/scalable/apps/GTKWave.svg
install -Dm 644 share/icons/io.github.gtkwave.GTKWave-symbolic.svg ${RPM_BUILD_ROOT}/usr/local/share/icons/hicolor/symbolic/apps/GTKWave-symbolic.svg
install -Dm 644 share/mime/x-gtkwave-extension-evcd.xml ${RPM_BUILD_ROOT}/usr/local/share/mime/packages/x-gtkwave-extension-evcd.xml
install -Dm 644 share/mime/x-gtkwave-extension-fst.xml ${RPM_BUILD_ROOT}/usr/local/share/mime/packages/x-gtkwave-extension-ghw.xml
install -Dm 644 share/mime/x-gtkwave-extension-ghw.xml ${RPM_BUILD_ROOT}/usr/local/share/mime/packages/x-gtkwave-extension-ghw.xml
install -Dm 644 share/mime/x-gtkwave-extension-gtkw.xml ${RPM_BUILD_ROOT}/usr/local/share/mime/packages/x-gtkwave-extension-gtkw.xml
install -Dm 644 share/mime/x-gtkwave-extension-vcd.xml ${RPM_BUILD_ROOT}/usr/local/share/mime/packages/x-gtkwave-extension-vcd.xml
install -Dm 644 share/io.github.gtkwave.GTKWave.desktop ${RPM_BUILD_ROOT}/usr/local/share/applications/gtkwave.desktop
install -Dm 644 share/io.github.gtkwave.GTKWave.metainfo.xml ${RPM_BUILD_ROOT}/usr/local/share/metainfo/gtkwave.metainfo.xml
install -Dm 644 examples/des.gtkw ${RPM_BUILD_ROOT}/usr/local/share/gtkwave3/examples/des.tcl
install -Dm 644 examples/des.tcl ${RPM_BUILD_ROOT}/usr/local/share/gtkwave3/examples/des.tcl
install -Dm 644 examples/des.v ${RPM_BUILD_ROOT}/usr/local/share/gtkwave3/examples/des.v
install -Dm 644 examples/des.fst ${RPM_BUILD_ROOT}/usr/local/share/gtkwave3/examples/des.fst
install -Dm 644 examples/transaction.fst ${RPM_BUILD_ROOT}/usr/local/share/gtkwave3/examples/transaction.fst
install -Dm 644 examples/transaction.gtkw ${RPM_BUILD_ROOT}/usr/local/share/gtkwave3/examples/transaction.gtk
install -Dm 644 examples/transaction.c ${RPM_BUILD_ROOT}/usr/local/share/gtkwave3/examples/transaction.c
install -Dm 644 examples/gtkwaverc ${RPM_BUILD_ROOT}/usr/local/share/gtkwave3/examples/gtkwaverc
install -Dm 644 examples/sst_exclusion_example.rc ${RPM_BUILD_ROOT}/usr/local/share/gtkwave3/examples/sst_exclusion_example.rc
install -Dm 644 doc/gtkwave.odt ${RPM_BUILD_ROOT}/usr/local/share/gtkwave3/docs/gtkwave.odt



%files
%license COPYING LICENSE.TXT LICENSE
%doc AUTHORS CHANGELOG.md README.md
%exclude /usr/local/share/%{name}3/docs/gtkwave.odt
%exclude /usr/local/share/%{name}3/examples/*.*
%exclude /usr/local/share/gtkwave3/examples/gtkwaverc
/usr/local/bin/*
/usr/local/lib64/*
/usr/local/share/applications
/usr/local/share/applications/%{name}.desktop
/usr/local/share/man
/usr/local/share/man/*
/usr/local/share/icons
/usr/local/share/icons/hicolor
/usr/local/share/icons/hicolor/scalable
/usr/local/share/icons/hicolor/symbolic
/usr/local/share/icons/hicolor/scalable/apps/*.svg
/usr/local/share/icons/hicolor/symbolic/apps/*.svg
/usr/local/share/mime
/usr/local/share/mime/packages/*.xml
/usr/local/share/metainfo
/usr/local/share/metainfo/gtkwave.metainfo.xml
/usr/local/share/%{name}3

%files libgtkwave-devel
/usr/local/include/*

%files doc
%doc /usr/local/share/%{name}3/docs/gtkwave.odt
%exclude /usr/local/share/%{name}3/examples/*.*
%exclude /usr/local/share/gtkwave3/examples/gtkwaverc
/usr/local/share/%{name}3/docs

%files examples
%exclude /usr/local/share/%{name}3/docs/gtkwave.odt
%doc /usr/local/share/%{name}3/examples/*.*
/usr/local/share/gtkwave3/examples/gtkwaverc
/usr/local/share/%{name}3/examples

%changelog
openSUSE Build Service is sponsored by