This repository is the central build orchestrator for the nexuslua ecosystem. It uses CMake and shell scripts to provide a consistent and repeatable build process for both local development and automated CI/CD releases.
This repository orchestrates builds across the multi-repo nexuslua ecosystem.
- Today: one-stop, reproducible builds of the engine, plugins, and GUI apps; streamlined local dev and CI/CD.
- Long-term: developer workspace setup only (clone and wire the right repos). As plugin distribution moves to the public registry acrion/nexuslua-plugins, individual repos can be built and updated independently.
You can choose which part of the ecosystem you want to build by selecting a profile:
--profile nexuslua: Builds the core components: thenexuslualibrary and command-line executable. This profile is ideal for creating releases ofnexusluaitself or for developers working only on the core engine.--profile acrionphoto: Builds the entire application stack, including theacrionphotoGUI, all imaging plugins, andnexusluaas a dependency. This is the profile for local development on the complete application.
It is crucial to understand the current build status for each profile on your platform.
| Profile | Windows (MSYS2/UCRT64) | Linux (Arch-based) | macOS |
|---|---|---|---|
| nexuslua | ✅ Supported | ✅ Supported | ✅ Supported |
| acrionphoto | ✅ Supported | ✅ Supported |
- macOS: The
acrionphotoprofile is currently expected to fail on macOS. Theacrion-image-toolsplugin is undergoing a major refactoring, and its build is not yet functional on this platform. - Linux: The
acrionphotoprofile requires an Arch-based distribution (or a system wherepacmanis installed) for automated dependency management. - Windows: The
acrionphotoprofile is fully supported via MSYS2 with the UCRT64 environment. (This environment conveniently provides thepacmanpackage manager, which Arch Linux users will find familiar.)
Use the setup-workspace.sh script to clone the required source code. For development, you may want to use the SSH protocol.
# To build the full acrionphoto application stack (for devs with push access):
./setup-workspace.sh --profile acrionphoto --protocol ssh
# To build only the core nexuslua components (using HTTPS):
./setup-workspace.sh --profile nexuslua --protocol httpsIf you chose the acrionphoto profile, system dependencies like Qt5 are required. The script can install them on supported systems.
# This command is only needed for the 'acrionphoto' profile.
./build.sh install-depsFinally, run the build command.
# Build in Release mode (recommended)
./build.sh build ReleaseBuild artifacts will be placed in the cmake-build-release/bin/ directory.
If you built the acrionphoto profile and want the acrion image tools plugin available immediately, create a development symlink once:
cd workspace/acrion_image_tools
./install-development-plugin.shThis links the plugin into your local nexuslua plugin directory so acrionphoto can load it without a separate install step.
When developing plugins for the acrionphoto application, the cycle of rebuilding and reinstalling a plugin to test changes can be slow. To streamline this process, plugins like acrion-image-tools include a development installation script.
This script (install-development-plugin.sh) creates a symbolic link from the plugin's source/build directory directly into the user's nexuslua plugin folder. This allows the acrionphoto application to load the plugin from its development location, meaning any changes you build are immediately available upon relaunching the application.
- Navigate to the plugin's source directory after running the initial workspace setup.
- Execute the script.
cd workspace/acrion_image_tools
./install-development-plugin.shNow, when you rebuild acrion-image-tools, the acrionphoto application will immediately use the updated plugin binary on its next launch. This is the recommended workflow for efficient plugin development within the acrionphoto ecosystem.
You can build individual projects directly from their own repositories:
-
nexuslua executable
cmake -B build src/ cmake --build build
-
acrionphoto (GUI only; no I/O unless a plugin is installed)
cmake -B build src/ cmake --build build