%bcond viewer 0 %bcond openimageio 1 %bcond python 0 Name: materialx Version: 1.39.0 Release: %autorelease Summary: Open standard of rich material # All third-party components imported or incorporated are under MIT except the following: # ambientcg CC0-1.0 for content asset # catch BSL-1.0 # nanogui BSD-3-Clause-LBNL # poly-haven CC0-1.0 for content asset License: MIT AND Apache-2.0 AND BSD-3-Clause-LBNL AND CC0-1.0 AND BSD-3-Clause AND BSL-1.0 URL: https://materialx.org/ Source0: https://github.com/AcademySoftwareFoundation/MaterialX/releases/download/v%{version}/MaterialX-%{version}.tar.gz BuildRequires: chrpath BuildRequires: cmake(pybind11) BuildRequires: dos2unix BuildRequires: gcc-c++ BuildRequires: hicolor-icon-theme BuildRequires: pkgconfig(gl) %if %{with openimageio} BuildRequires: pkgconfig(OpenImageIO) %endif BuildRequires: pkgconfig(oslcomp) %if %{with python} BuildRequires: pkgconfig(python3) >= 3.7 BuildRequires: pkgconfig(pybind11) BuildRequires: python3dist(pip) BuildRequires: python3dist(scikit-build-core) %endif %if %{with viewer} BuildRequires: pkgconfig(wayland-client) >= 0.2.7 BuildRequires: pkgconfig(wayland-protocols) >= 1.15 BuildRequires: pkgconfig(xkbcommon) BuildRequires: pkgconfig(xrandr) BuildRequires: pkgconfig(xinerama) BuildRequires: pkgconfig(xcursor) BuildRequires: pkgconfig(xi) %endif BuildRequires: pkgconfig(xt) Requires: %{name}-data = %{version}-%{release} # nanogui is not available in Fedora repository # Include bundled for the time being Provides: bundled(nanogui) = 0.2.0^20221102gitf5020e2 # x86 architecture no longer supported ExcludeArch: %{ix86} %description MaterialX is an open standard for the exchange of rich material and look-development content across applications and renderings. %package data Summary: Data files for %{name} License: MIT AND Apache-2.0 AND BSD-3-Clause-LBNL AND CC0-1.0 AND BSD-3-Clause AND BSL-1.0 BuildArch: noarch %description data The %{name}-data package contains data files for applications that use %{name}. %package devel Summary: Development files for %{name} License: Apache-2.0 Requires: %{name}%{?_isa} = %{version}-%{release} %description devel The %{name}-devel package contains libraries and header files for developing applications that use %{name}. %package -n python3-%{name} Summary: %{summary} License: MIT AND Apache-2.0 AND BSD-3-Clause-LBNL AND CC0-1.0 AND BSD-3-Clause AND BSL-1.0 Requires: %{name}%{?_isa} = %{version}-%{release} %description -n python3-%{name} %{description} %package tools Summary: Tools for handling MaterialX License: Apache-2.0 Requires: python3-%{name}%{?_isa} = %{version}-%{release} %description tools Tools for handling MaterialX %prep %autosetup -n MaterialX-%{version} sed -r -i 's/@VERSION@/%{version}/' pyproject.toml # Fix path sed -i 's|CMAKE_INSTALL_PREFIX|CMAKE_BINARY_DIR|g' python/CMakeLists.txt sed -i 's|"DESTINATION ."|"DESTINATION %{_datadir}/%{name}"|g' CMakeLists.txt # Ensure there are no bundled fonts # https://docs.fedoraproject.org/en-US/packaging-guidelines/#_avoid_bundling_of_fonts_in_other_packages find . -type f \( \ -name '*.tt[cf]' -o -name '*.ot[cf]' \ -o -name '*.eot' -o -name '*.woff' -o -name '*.woff2' \ \) -print -delete sed -r -i '1{/^#!/d}' python/MaterialX/{colorspace,datatype,main}.py # Fix all Python shebangs recursively in . %py3_shebang_fix . dos2unix python/Scripts/* # Fix files written in DOS/Windows format find . -type f -perm /0111 -exec chmod -v a-x '{}' '+' find . -type f | xargs file | awk -F ':' '/CRLF/ { print $1 }' | xargs -r dos2unix --keepdate %if %{with python} %pyproject_buildrequires %endif %build %cmake \ -DCMAKE_SKIP_INSTALL_RPATH=ON \ -DCMAKE_SKIP_RPATH=ON \ -DMATERIALX_BUILD_TESTS=OFF \ %if %{with openimageio} -DMATERIALX_BUILD_OIIO=ON \ %endif %if %{with python} -DMATERIALX_PYTHON_FOLDER_NAME=%{python3_sitearch}/%{name}/ \ -DMATERIALX_BUILD_PYTHON=ON \ %else -DMATERIALX_BUILD_PYTHON=OFF \ %endif %if %{with viewer} -DMATERIALX_BUILD_VIEWER=ON \ -DMATERIALX_BUILD_GRAPH_EDITOR=ON \ %endif -DMATERIALX_BUILD_SHARED_LIBS=ON \ -DMATERIALX_DYNAMIC_ANALYSIS=OFF \ -DMATERIALX_INSTALL_INCLUDE_PATH=%{_includedir} \ -DMATERIALX_INSTALL_LIB_PATH=%{_libdir} \ -DMATERIALX_INSTALL_STDLIB_PATH=%{_datadir}/%{name} %cmake_build %if %{with python} %pyproject_wheel %endif %install %cmake_install %if %{with python} %pyproject_install %pyproject_save_files MaterialX %endif %if %{with viewer} install -Dm755 documents/Images/MaterialXLogo_200x155.png %{buildroot}/usr/share/icons/hicolor/256x256/apps/%{name}.png chrpath -d %{buildroot}%{_bindir}/MaterialXView %endif # Relocate resources folder cp -pr %{buildroot}%{_prefix}/resources %{buildroot}%{_datadir}/%{name}/ rm -rf %{buildroot}%{_prefix}/resources # Fix location of licenses mkdir -p %{buildroot}%{_datadir}/{doc,licenses}/%{name}/ mv %{buildroot}%{_prefix}/LICENSE %{buildroot}%{_datadir}/licenses/%{name}/ # Relocate changelog, licenses and remove executable permission chmod -x %{buildroot}%{_prefix}/*.md mv %{buildroot}%{_prefix}/{CHANGELOG,README}.md %{buildroot}%{_docdir}/%{name}/ mv %{buildroot}%{_prefix}/THIRD-PARTY.md %{buildroot}%{_datadir}/licenses/%{name}/ %if %{with python} # Fix python path mkdir -p %{buildroot}%{_bindir} chmod +x %{buildroot}%{_prefix}/python/Scripts/*.py cp %{buildroot}%{_prefix}/python/Scripts/*.py %{buildroot}%{_bindir}/ rm -r %{buildroot}%{_prefix}/python/Scripts mkdir -p %{buildroot}%{python3_sitearch} # Remove duplicare data share path rm -rf %{buildroot}%{_prefix}/python/MaterialX/%{_prefix} mv %{buildroot}%{_prefix}/python/MaterialX %{buildroot}%{python3_sitearch} %endif %files %license LICENSE THIRD-PARTY.md %doc CHANGELOG.md README.md SECURITY.md %if %{with viewer} %{_bindir}/MaterialXGraphEditor %{_bindir}/MaterialXView %{_datadir}/icons/hicolor/256x256/apps/materialx.png %endif %{_libdir}/libMaterialXCore.so.{1,%{version}} %{_libdir}/libMaterialXFormat.so.{1,%{version}} %{_libdir}/libMaterialXGen{,Glsl,Mdl,Msl,Osl,Shader}.so.{1,%{version}} %{_libdir}/libMaterialXRender{,Glsl,Hw,Osl}.so.{1,%{version}} %files data %{_datadir}/%{name} %files devel %doc README.md %{_includedir}/MaterialX{Core,Format}/ %{_includedir}/MaterialXGen{Glsl,Mdl,Msl,Osl,Shader}/ %{_includedir}/MaterialXRender{,Glsl,Hw,Osl} %{_libdir}/cmake/MaterialX/ %{_libdir}/libMaterialXCore.so %{_libdir}/libMaterialXFormat.so %{_libdir}/libMaterialXGen{,Glsl,Mdl,Msl,Osl,Shader}.so %{_libdir}/libMaterialXRender{,Glsl,Hw,Osl}.so %if %{with python} %files -n python3-%{name} -f %{pyproject_files} %files tools %{_bindir}/baketextures.py %{_bindir}/{generate,translate}shader.py %{_bindir}/genmdl.py %{_bindir}/mxdoc.py %{_bindir}/mx{format,validate}.py %{_bindir}/writenodegraphs.py %endif %changelog %autochangelog