Building LuxCoreRender

From LuxCoreRender Wiki
Jump to navigation Jump to search

This page is under construction

This page documents the various processes involved in building LuxCoreRender, starting with version 2.10 “Back-on-track”.

LuxCoreRender's build system has been significantly modified for version 2.10. This document therefore renders obsolete all previous documents related to the compilation of older versions (<=2.9).


Audience

This document is primarily intended for:

  • Developers wishing to contribute to the project;
  • LuxCoreRender administrators in charge of publishing the various binaries;
  • Package maintainers wishing to integrate all or part of LuxCoreRender into a distribution;
  • Advanced users wishing or needing to build LuxCore by themselves.

This document assumes that the reader is skilled in the following areas:

  • C/C++ compilation
  • cmake
  • Python Wheels

Familiarity with the Conan package management system may make this document easier to understand.

This document is not intended for end-users without any knowledge about application building. Such users are invited to look for already compiled binaries.

Build Targets

LuxCoreRender contains multiple targets, with dependency links:

Build Workflows

LuxCore Dependencies

Outputs

The output of this target is a Conan cache populated with binaries


Principles

LuxCore dependencies are built by LuxCoreDeps.

The process is:

  • LuxCoreDeps populates a Conan cache by building each of the required dependencies from its sources.
  • This cache is published in LuxCoreDeps releases.
  • On LuxCore side, during the build, the cache is retrieved from the release and made available (restored) for LuxCore build.


Server build

LuxCoreDeps is intended to be run by Github CI/CD pipeline.

You will find all workflows in repository actions.:

  • LuxCore Dependency Builder: build dependencies, triggered on-demand
  • LuxCore Dependency Checker: test dependency build, triggered by push (call Builder)
  • LuxCore Dependency Releaser: publish release of dependencies

In a typical workflow: Testing: Releasing

Local build

Local build is