Building LuxCoreRender: Difference between revisions

From LuxCoreRender Wiki
Jump to navigation Jump to search
No edit summary
Line 9: Line 9:


This document is primarily intended for:
This document is primarily intended for:
* LuxCoreRender administrators in charge of publishing the various binaries;
* Developers wishing to contribute to the project;
* 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;
* 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:
This document assumes that the reader is skilled in the following areas:
Line 116: Line 115:
}}
}}


= Build Workflows =
We aim to make LuxCoreRender available on the following 4 platforms:
* Linux (glibc 2.28+)
* Windows
* MacOS Intel (>=10.15)
* MacOS Arm (>=12.0)
 
For Python-related targets, we aim to make LuxCoreRender available for all Python versions supported at a given time (https://devguide.python.org/versions/), i.e. 5 versions in general.
 
= Publisher Workflow =
 
= Developper Workflow =
 
= Package Maintainer Workflow =


= LuxCore Dependencies =
= LuxCore Dependencies =

Revision as of 15:12, 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:

  • LuxCoreRender administrators in charge of publishing the various binaries;
  • Developers wishing to contribute to the project;
  • Package maintainers wishing to integrate all or part of LuxCoreRender into a distribution;

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:

We aim to make LuxCoreRender available on the following 4 platforms:

  • Linux (glibc 2.28+)
  • Windows
  • MacOS Intel (>=10.15)
  • MacOS Arm (>=12.0)

For Python-related targets, we aim to make LuxCoreRender available for all Python versions supported at a given time (https://devguide.python.org/versions/), i.e. 5 versions in general.

Publisher Workflow

Developper Workflow

Package Maintainer Workflow

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