Skip to content

A meta-repository with CMake and shell scripts to build the entire nexuslua ecosystem (core, plugins, and acrionphoto GUI).

License

Notifications You must be signed in to change notification settings

acrion/nexuslua-build

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

The Role of this Repository

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.

Build Profiles

You can choose which part of the ecosystem you want to build by selecting a profile:

  • --profile nexuslua: Builds the core components: the nexuslua library and command-line executable. This profile is ideal for creating releases of nexuslua itself or for developers working only on the core engine.
  • --profile acrionphoto: Builds the entire application stack, including the acrionphoto GUI, all imaging plugins, and nexuslua as a dependency. This is the profile for local development on the complete application.

Platform Status & Limitations

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 ⚠️ BROKEN / under development
  • macOS: The acrionphoto profile is currently expected to fail on macOS. The acrion-image-tools plugin is undergoing a major refactoring, and its build is not yet functional on this platform.
  • Linux: The acrionphoto profile requires an Arch-based distribution (or a system where pacman is installed) for automated dependency management.
  • Windows: The acrionphoto profile is fully supported via MSYS2 with the UCRT64 environment. (This environment conveniently provides the pacman package manager, which Arch Linux users will find familiar.)

Quick Start

1. Setup the Workspace

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 https

2. Install Dependencies (for acrionphoto profile)

If 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-deps

3. Build the Projects

Finally, run the build command.

# Build in Release mode (recommended)
./build.sh build Release

Build artifacts will be placed in the cmake-build-release/bin/ directory.

4. Link the development plugin (acrionphoto profile)

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.sh

This links the plugin into your local nexuslua plugin directory so acrionphoto can load it without a separate install step.

Local Development: Working with Plugins

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.

Example Usage:

  1. Navigate to the plugin's source directory after running the initial workspace setup.
  2. Execute the script.
cd workspace/acrion_image_tools
./install-development-plugin.sh

Now, 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.

Standalone builds (no umbrella repo required)

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

About

A meta-repository with CMake and shell scripts to build the entire nexuslua ecosystem (core, plugins, and acrionphoto GUI).

Topics

Resources

License

Stars

Watchers

Forks