Concepts
As a project solution, the coreui-admin
guides you through the initial setup of QtAuto and the creation of an initial user interface based on QtAuto project. The script tries to be flexible and uses several generic concepts, which are described below.
Configuration File
The admin relies on a per-project configuration file (coreui.yml
). It stores information about the build process and involved repositories. Additional you can place environment variables and small named scripts into the configuration document.
Environment Variables
Environment variables are passed on to the build or run commands and will be read from the shell environment but also can be placed into the coreui.yml
config file in the env
section. For user-contributed environment variables it is also possible to add environment variables into a .env
file.
Here the order a environment file will be read:
coreui.yml
in theenv
section.env
file- shell environment variable
later entries will overwrite earlier entries.
Repositories and Targets
QtAuto supports the registration of repositories by name with the git URL, branch and used build-system. A repository listed can be made available in the target section. A target allows the bundling of one or more repositories as a sequence of build unit. The order repositories are build is the order they are defined in the target.
Standardized Builds
Registered repositories can have different build systems when registered with coreui. For this, coreui-admin
supports currently three build systems (configure
, qmake
, CMake
). Configure is used for the building of Qt itself and other projects may use qmake
or CMake
based projects.
Scripts
A script is a shell command line registered with the coreui configuration file. The environment variables are passed on to the script.
Project Generators
QtAuto allows you to generate a full project scaffold. The scaffolds are based on smart templates and follow a defined architecture.
Aspect Generators
Besides generating full project the coreui script allows also to extend the generated project using distinct components. This allows the extension of the generated project. The generator is also able to patch existing files in certain limits.