
%global qt_module qtshadertools

%define short_version 6.5

Summary: Qt6 - Qt Shader Tools module builds on the SPIR-V Open Source Ecosystem
Name:    qt6-%{qt_module}
Version: 6.5.0
Release: 2

License: LGPLv3
Url:     http://www.qt.io

Source0: https://download.qt.io/official_releases/qt/%{short_version}/%{version}/submodules/%{qt_module}-everywhere-src-%{version}.tar.xz

BuildRequires: cmake
BuildRequires: gcc-c++
BuildRequires: ninja-build
BuildRequires: qt6-qtbase-devel >= %{version}
BuildRequires: qt6-qtbase-private-devel
BuildRequires: pkgconfig(xkbcommon) >= 0.4.1
%{?_qt6:Requires: %{_qt6}%{?_isa} = %{_qt6_version}}

%description
%{summary}.

%package devel
Summary: Development files for %{name}
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: qt6-qtbase-devel%{?_isa}
%description devel
%{summary}.


%prep
%autosetup -n %{qt_module}-everywhere-src-%{version} -p1

%build
%cmake_qt6 -DQT_FEATURE_mng=ON
cmake --build . %{?_smp_mflags} --verbose


%install
DESTDIR="%{buildroot}" cmake --install .

# hardlink files to %{_bindir}, add -qt6 postfix to not conflict
mkdir %{buildroot}%{_bindir}
pushd %{buildroot}%{_qt6_bindir}
for i in * ; do
  case "${i}" in
    qsb)
      ln -v  ${i} %{buildroot}%{_bindir}/${i}-qt6
      ;;
    *)
      ln -v  ${i} %{buildroot}%{_bindir}/${i}
      ;;
  esac
done
popd

## .prl/.la file love
# nuke .prl reference(s) to %%buildroot, excessive (.la-like) libs
pushd %{buildroot}%{_qt6_libdir}
for prl_file in libQt6*.prl ; do
  sed -i -e "/^QMAKE_PRL_BUILD_DIR/d" ${prl_file}
  if [ -f "$(basename ${prl_file} .prl).so" ]; then
    rm -fv "$(basename ${prl_file} .prl).la"
    sed -i -e "/^QMAKE_PRL_LIBS/d" ${prl_file}
  fi
done
popd


%ldconfig_scriptlets

%files
%license LICENSES/*
%{_bindir}/qsb-qt6
%{_qt6_bindir}/qsb
%{_qt6_libdir}/libQt6ShaderTools.so.6*

%files devel
%{_qt6_headerdir}/QtShaderTools/
%{_qt6_libdir}/libQt6ShaderTools.prl
%{_qt6_libdir}/libQt6ShaderTools.so
%{_qt6_libdir}/cmake/Qt6BuildInternals/StandaloneTests/QtShaderToolsTestsConfig.cmake
%dir %{_qt6_libdir}/cmake/Qt6ShaderTools/
%{_qt6_libdir}/cmake/Qt6ShaderTools/*.cmake
%dir %{_qt6_libdir}/cmake/Qt6ShaderToolsTools/
%{_qt6_libdir}/cmake/Qt6ShaderToolsTools/*.cmake
%{_qt6_archdatadir}/metatypes/qt6*_metatypes.json
%{_qt6_mkspecsdir}/modules/*.pri
%{_qt6_archdatadir}/modules/*.json
%{_qt6_libdir}/pkgconfig/Qt6ShaderTools.pc

%changelog
* Mon May 22 2023 peijiankang <peijiankang@kylinos.cn> - 6.5.0-2
- Fix syntax error when macro is not defined

* Fri Apr 28 2023 EastDong <xudong23@iscas.ac.cn> - 6.5.0-1
- update package

* Fri Nov 11 2022 Jingwiw <wangjingwei@iscas.ac.cn> - 6.4.0-1
- init package
