%global srcname ILLIXR %global forgeurl https://github.com/ILLIXR/ILLIXR %global _smp_build_ncpus 1 Name: illixr Version: 3.2.0 Release: 1%{?dist} Summary: Illinois Extended Reality Testbed License: BSD-3-Clause AND MIT URL: https://illixr.github.io/ Source0: %{forgeurl}/archive/v%{version}/%{srcname}-%{version}.tar.gz # https://projects.asl.ethz.ch/datasets/doku.php?id=kmavvisualinertialdatasets #Source1: http://robotics.ethz.ch/~asl-datasets/ijrr_euroc_mav_dataset/vicon_room1/V1_02_medium/V1_02_medium.zip BuildRequires: cmake BuildRequires: gcc-c++ BuildRequires: git-core BuildRequires: glslc BuildRequires: sed BuildRequires: udev BuildRequires: boost-devel BuildRequires: cxxopts-devel BuildRequires: eigen3-devel BuildRequires: gflags-devel BuildRequires: glew-devel BuildRequires: glfw-devel BuildRequires: glm-devel BuildRequires: glslang-devel BuildRequires: libGL-devel BuildRequires: libGLU-devel BuildRequires: libjpeg-devel BuildRequires: libpng-devel BuildRequires: librealsense-devel BuildRequires: libspatialaudio-devel BuildRequires: libtiff-devel BuildRequires: libudev-devel BuildRequires: libusb1-devel BuildRequires: libX11-devel BuildRequires: libxkbcommon-devel BuildRequires: opencv-devel BuildRequires: openxr-devel BuildRequires: portaudio-devel BuildRequires: SDL2-devel BuildRequires: spdlog-devel BuildRequires: sqlite-devel BuildRequires: stb_image-devel BuildRequires: stb_image_write-devel BuildRequires: tinyobjloader-devel BuildRequires: vulkan-loader-devel BuildRequires: VulkanMemoryAllocator-devel BuildRequires: wayland-devel BuildRequires: yaml-cpp-devel BuildRequires: zlib-devel # Vendored under src/sqlite3pp # License: MIT Provides: bundled(sqlite3pp) = 1.0.8 %description Illinois Extended Reality testbed or ILLIXR (pronounced like elixir) is the first fully open-source Extended Reality (XR) system and testbed. The modular, extensible, and OpenXR-compatible ILLIXR runtime integrates state-of-the-art XR components into a complete XR system. The testbed is part of the broader ILLIXR consortium, an industry-supported community effort to democratize XR systems research, development, and benchmarking. %prep %autosetup -n %{srcname}-%{version} -p1 # Use system versions instead of bundled libraries rm -r plugins/debugview/imgui ln -sf %{_includedir}/cxxopts.hpp src/ ln -sf %{_includedir}/stb_image.h include/illixr/gl_util/lib/ ln -sf %{_includedir}/stb_image_write.h include/illixr/gl_util/lib/ ln -sf %{_includedir}/tiny_obj_loader.h include/illixr/gl_util/lib/ # TODO: more here: https://github.com/ILLIXR/ILLIXR/tree/master/include/illixr/vk_util/third_party # Using the sqlite3pp vendored copy for now due to build issues # ln -sf %%{_includedir}/sqlite3pp/sqlite3pp.ipp src/sqlite3pp/sqlite3pp.hpp # ln -sf %%{_includedir}/sqlite3pp/sqlite3pp.h src/sqlite3pp/sqlite3pp_interface.hpp rm include/third_party/vk_mem_alloc.h sed -i 's:"third_party/vk_mem_alloc.h":' include/illixr/vk_util/vulkan_utils.hpp %build # Documentation requires mkdocs which isn't packaged cmake_flags="-DBUILD_DOCS=OFF -DUSE_MONADO=ON" # Build all plugins for f in plugins/*; do plugin="$(basename "$f")" # The audio_pipeline plugin requires audio_pipeline which isn't packaged yet [ "$plugin" = 'audio_pipeline' ] && continue # The debugview plugin fails to build [ "$plugin" = 'debugview' ] && continue # The depthai plugin requires depthai which isn't packaged yet [ "$plugin" = 'depthai' ] && continue # The gldemo plugin fails to build [ "$plugin" = 'gldemo' ] && continue # The gtsam_integrator plugin requires gtsam which isn't packaged yet [ "$plugin" = 'gtsam_integrator' ] && continue # The openni plugin requires openni2 which isn't packaged yet [ "$plugin" = 'openni' ] && continue # The offload_data plugin fails to build [ "$plugin" = 'offload_data' ] && continue # The zed plugin requires zed-sdk which is not opensource [ "$plugin" = 'zed' ] && continue cmake_flags="$cmake_flags -DUSE_$(echo "$plugin" | tr a-z A-Z)=ON" done %cmake $cmake_flags %cmake_build %install %cmake_install %check %ctest %files %license LICENSE %doc README.md AUTHORS %changelog %autochangelog