Building LuxCoreRender: Difference between revisions
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; | ||
* 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; | ||
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: | ||
}} | }} | ||
= | 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