Accendino, a complex project builder
About
Accendino (lighter in italian) was originally an helper script that avoids the burden of following the Ogon installation instructions and do it for you. But it evolved to a program to build your complicated projects on multiple platforms.
Accendino can also be used to checkout all your project sources if you wish to quickly have a development environment.
You can see the manual or the changelog.
Installing
$ python3 -m venv _v
$ source _v/bin/activate
(_v) $ pip install accendino
Deploying Ogon
Even if Accendino aims to build any of your projects with multiple dependencies, it is still useful to deploy ogon.
Please note, that for now accendino doesn't perform system operation required for a working ogon installation (systemd units, PAM configuration, dbus authorizations). So refer to the ogon build guide to achieve these.
To quicky install all the Ogon stack in /opt/ogon in release mode:
# accendino --prefix=/opt/ogon ogon.accendino
To quickly install only the Ogon RDP server in /opt/ogon-dev in debug mode:
# accendino --prefix=/opt/ogon-dev --build-type=debug --targets=ogon ogon.accendino
To install the forgiare version of Ogon in /opt/forgiare in debug mode:
# accendino --prefix=/opt/forgiare --build-type=debug forgiare.accendino
Using Accendino for your projects
Accendino is a great tool to build complex projects on multiple platform. In Accendino source files you can:
- pull your sources from git or from local locations;
- express dependencies between your build artifacts;
- list some platform packages that are needed for the build on a given platform. Currently we support
dpkg,rpm,pacman,pkg,chocolateyandbrew. And of course you can have dynamic lists, because it's very common that on your linux distribution a package has been renamed or removed between distro versions; - the Accendino source file is interpreted as a python file that means that you can code any kind of build logic using the python language;
- Accendino provides some useful objects to express builds of artifacts that use
cmake,qmake,autotools,meson, and if unhappy with these you can always specify the commands to invoke (or contribute yours);
See the manual for the documentation of what's available to your source file.
Here's some sample pieces of Accendino files for freerdp with the file to build the ffmpeg dependency or use system provided packages:
# ffmpeg.accendino
ffmpeg_pkgDeps = {
UBUNTU_LIKE: ['libavcodec-dev', 'libavfilter-dev', 'libavformat-dev', 'libavutil-dev', 'libswscale-dev',
'libavdevice-dev', 'libpostproc-dev'],
REDHAT_LIKE: ['libavcodec-free-devel', 'libswscale-free-devel'],
}
ffmpeg_fromSources = False
if targetDistribId in ('mingw', 'Windows', 'Darwin',):
ffmpeg_fromSources = True
if ffmpeg_fromSources:
extraArgs = []
if crossCompilation:
extraArgs.append('--enable-cross-compile')
if targetDistribId == 'mingw':
flags = {
'i686': ['--arch=i686', '--target-os=mingw32', '--cross-prefix=i686-w64-mingw32-'],
'x86_64': ['--arch=x86_64', '--target-os=mingw64', '--cross-prefix=x86_64-w64-mingw32-']
}
extraArgs += flags.get(targetArch, [])
extraArgs.append('--disable-mediafoundation')
if targetDistribId == 'Darwin':
extraArgs += ['--enable-shared', '--disable-static',
'--enable-swscale', '--disable-asm', '--disable-libxcb',
'--disable-xlib', '--enable-avcodec',
]
nasmForAll = {
'Darwin': ['nasm'],
'Windows': ['choco/nasm|path/nasm'],
}
for distrib in ('Ubuntu', 'Debian', 'Redhat', 'Fedora',):
nasmForAll[f'{distrib}'] = ['nasm']
nasmForAll[f'{distrib}->mingw@x86_64'] = ['nasm']
ARTIFACTS += [
CustomCommandBuildArtifact('ffmpeg', [],
GitSource('https://github.com/FFmpeg/FFmpeg.git', 'n7.1'),
prepare_cmds=[
[NativePath('{srcdir}', 'configure'), '--prefix={prefix}', '--disable-doc', '--disable-programs', '--disable-securetransport'] + extraArgs
],
pkgs=nasmForAll,
provides=['ffmpeg-artifact']
),
]
else:
ARTIFACTS += [
DepsBuildArtifact('ffmpeg-artifact', [], pkgs=ffmpeg_pkgDeps)
]
Metadata
Release files for accendino 0.6.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| accendino-0.6.3.tar.gz | 79.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| accendino-0.6.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 163.6 kB
Release files / accendino-0.6.3.tar.gz
| Download URL | accendino-0.6.3.tar.gz |
|---|---|
| Size | 79.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
444d805ee129d5d308fbb7a382c58336b073f603d806fc51b26f667a58073b7d
|
|
BLAKE2b-256 checksum How to use checksums |
04801a926ad103833498984964ffd30452f785050823f7eefaf8bc54657dc7d6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|
Release files / accendino-0.6.3-py3-none-any.whl
| Download URL | accendino-0.6.3-py3-none-any.whl |
|---|---|
| Size | 84.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
37eb88d6ca99e00fb1e02d3b895f3d41d9e72b5265d2b03f68a862d0315728c4
|
|
BLAKE2b-256 checksum How to use checksums |
3d4720ad58f29d8611e46739fa76dac5bf84aac71e54b4e67946c422f8e5b79e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|