%global forgeurl https://github.com/dreamworksanimation %global cmodver 1.0.0.12 # Core Dump Fix %global optflags %(echo '%optflags' | sed s/-Wp,-D_GLIBCXX_ASSERTIONS//) # CUDA/Optix Support %bcond gpu 0 %bcond tests 1 Name: moonray Version: 17.31.0.0 Release: %autorelease -b 3 Summary: MoonRay render engine and the moonray command-line renderer License: Apache-2.0 URL: https://openmoonray.org/ Source0: %{forgeurl}/%{name}/archive/refs/tags/%{name}-%{version}.tar.gz Source1: %{forgeurl}/cmake_modules/archive/refs/tags/cmake_modules-%{cmodver}.tar.gz Patch: %{name}-cpuid.patch %if %{with gpu} Patch: %{name}-optix.patch %endif BuildRequires: cmake >= 3.23.1 BuildRequires: gcc-c++ BuildRequires: ispc BuildRequires: libatomic BuildRequires: bison BuildRequires: flex BuildRequires: openvdb-devel BuildRequires: cppunit-devel BuildRequires: boost-devel BuildRequires: pkgconfig(zlib) BuildRequires: pkgconfig(libjpeg) BuildRequires: openexr-libs BuildRequires: openexr-devel BuildRequires: cmake(OpenSubdiv) BuildRequires: cmake(embree) BuildRequires: Random123-devel BuildRequires: cmake(OpenImageIO) %if 0%{?fedora} > 40 BuildRequires: pkgconfig(tbb) %else BuildRequires: pkgconfig(tbb) = 2020.3 %endif %if %{with gpu} BuildRequires: nvidia-sdk-optix >= 8.0.0 BuildRequires: cuda-nvcc %endif BuildRequires: cmake(McrtDenoise) BuildRequires: cmake(SceneRdl2) Requires: openexr-libs Provides: Moonray = %{version} %description MoonRay render engine and the moonray command-line renderer. The code is comprised of roughly 20 libraries. %package devel Summary: Development files for %{name} Requires: %{name}%{?_isa} = %{version}-%{release} Requires: boost-devel Requires: bison Requires: flex Requires: libatomic Requires: openvdb-devel Requires: pkgconfig(zlib) Requires: pkgconfig(libjpeg) Requires: openexr-devel Requires: cmake(OpenSubdiv) Requires: cmake(embree) Requires: Random123-devel Requires: cmake(OpenImageIO) %if 0%{?fedora} > 40 Requires: pkgconfig(tbb) %else Requires: pkgconfig(tbb) = 2020.3 %endif %if %{with gpu} Requires: nvidia-sdk-optix >= 8.0.0 %endif Requires: cmake(McrtDenoise) Requires: cmake(SceneRdl2) %description devel The %{name}-devel package contains libraries and header files of %{name}, required to build other parts of OpenMoonRay. %prep %autosetup -p1 -n %{name}-%{name}-%{version} mkdir -p cmake_modules tar -xzf %{SOURCE1} --strip-components=1 -C $_ # Include minor releases sed -i "14s|'[^']*'|'%{version}'|" \ package.py # Restructure sed -i 's|\bshaders\b|${CMAKE_INSTALL_LIBDIR}/openmoonray/shaders|g' \ lib/rendering/rt/CMakeLists.txt sed -i 's|/shaders|%{_libdir}/openmoonray/shaders|g' \ lib/rendering/rt/gpu/optix/OptixGPUAccelerator.cc sed -i 's|rdl2dso)|%{_libdir}/openmoonray/rdl2dso)|g' \ CMakeLists.txt sed -i 's|${COMPILER_LIBRARY_DIR}|%{_libdir}|g' \ CMakeLists.txt sed -i 's|\bcoredata\b|%{_libdir}/openmoonray/coredata|g' \ cmake_modules/cmake/MoonrayDso.cmake %build %if %{with gpu} export NVCC_PREPEND_FLAGS='-allow-unsupported-compiler' %endif ARRAS_SESSION_PATH=%{_libdir}/openmoonray/sessions \ %cmake \ -DCMAKE_MODULE_PATH=%{_builddir}/%{buildsubdir}/cmake_modules/cmake \ -DBUILD_TESTING=%{expr:%{with tests}?"ON":"OFF"} \ -DCMAKE_EXE_LINKER_FLAGS:STRING='-Wl,-O1,--sort-common,-z,relro,-z,now' \ %if %{with gpu} -DOptiX_INCLUDE_DIRS=/usr/include/optix \ -DCMAKE_CUDA_COMPILER=%{_bindir}/nvcc \ -DCMAKE_CUDA_FLAGS="-Xcompiler -fPIC" \ %endif -DMOONRAY_USE_OPTIX=%{expr:%{with gpu}?"ON":"OFF"} %cmake_build %install %cmake_install # List shaders. It will be used to remove the generated json files on post-uninstall scriptlet. ls %{buildroot}%{_libdir}/openmoonray/rdl2dso \ | grep -v '\.proxy$' \ | sed 's/\.[^.]*$/.json/' \ > %{buildroot}%{_libdir}/openmoonray/%{name}_shaders.txt %post # Build shader class descriptions RDL2_DSO_PATH=%{_libdir}/openmoonray/rdl2dso \ %{_bindir}/rdl2_json_exporter --rdl2_version "15.7.0.0" --moonray_version "16.36.0.0" --out %{_libdir}/openmoonray/shader_json/ --sparse %preun cd %{_libdir}/openmoonray/shader_json xargs rm < %{_libdir}/openmoonray/%{name}_shaders.txt find %{_libdir}/openmoonray -maxdepth 0 -type d -empty -exec rmdir {} \; %files %license LICENSE %{_bindir}/denoise %{_bindir}/moonray %{_libdir}/libapplication.so %{_libdir}/libdeepfile.so %{_libdir}/libgrid_engine_tool.so %{_libdir}/libmap_primvar.so %{_libdir}/libstatistics.so %{_libdir}/libtexturing_sampler.so %{_libdir}/libcommon_file_resource.so %{_libdir}/libcommon_mcrt_util.so %{_libdir}/libcommon_noise.so %{_libdir}/librendering_displayfilter.so %{_libdir}/librendering_geom.so %{_libdir}/librendering_lpe.so %{_libdir}/librendering_mcrt_common.so %{_libdir}/librendering_pbr.so %{_libdir}/librendering_rndr.so %{_libdir}/librendering_rt.so %{_libdir}/librendering_shading.so %{_libdir}/libshading_eval_ispc.so %{_libdir}/libshading_ispc.so %{_libdir}/openmoonray/rdl2dso %{_libdir}/openmoonray/coredata %{_libdir}/openmoonray/%{name}_shaders.txt %if %{with gpu} %{_libdir}/openmoonray/shaders/OptixGPUPrograms.ptx %endif %files devel %{_includedir}/%{name} %{_libdir}/cmake/Moonray-%{version} %changelog %autochangelog