Building LuxCoreRender: Difference between revisions

From LuxCoreRender Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 14: Line 14:
* Advanced users wishing or needing to build LuxCore by themselves.
* Advanced users wishing or needing to build LuxCore by themselves.


This document assumes that the reader is familiar with the following areas:
This document assumes that the reader is skilled in the following areas:
- C/C++ compilation
* C/C++ compilation
- cmake
* cmake
- Python Wheels
* Python Wheels


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

Revision as of 14:01, 19 April 2025

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 types

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