APT
or RPM
Pkg
DMG
App Installer
Define & Structure the 3 name-spaces without name clashing
Owner
+ 2 Levels of hierarchy + your_Unit_name
your_Unit_name
+ your_Crate short_name
file short name
Pkg short name
must be unique through all packagesOwner
- Pkg1
- Pkg2
- Component
Note:
Owner
.Pkg1
.Pkg2
.Component
(API Unit)Owner
.Pkg1
.Pkg2
.Component
.*
Owner
.Pkg1
.Pkg2
.Component_*
(for high-level dependencies)Owner
_ Pkg1
_ Pkg2
_ Component
_ *
(main public programs)pkg1
/ pkg2
/ component
/ ownepkg1pkg2comp
owner
owner
/ pkg1
owner
/ pkg1
/ pkg2
= ownepkg1pkg2comp
Note: How to hash the short name :
$ gnatkr owner_pkg1_pkg2_component 16
> ownepkg1pkg2comp
. .
./
alire
.toml
file :
name = "OwnePkg1Pkg2Comp"
./tests/
alire
.toml
name = "OwnePkg1Pkg2Comp_Tests"
./
ownepkg1pkg2comp
.gpr
./bld
:
./bld/ownepkg1pkg2comp
.gpr
./bld/ownepkg1pkg2comp-lib
.gpr
./bld/ownepkg1pkg2comp-lib-tests
.gpr
./bld/ownepkg1pkg2comp-main
.gpr
Project artefacts are stored in
pkg1
/ ownepkg1pkg2comp
Recommanded dir-folder name =
component short name =
ownepkg1pkg2comp
./src
./tests
./bld
./build
./.
alire.toml
Makefile
owner_pkg1_pkg2_component.gpr
./features
./doc
./design
./resources
./LICENSES
README.md
NOTICE.md
TODO.md
ROADMAP.md
./src/lib
./src/main
./tests/main
./tests/data
./src/lib/sub/**
./src/main/sub/**
./tests/main/sub/**
./bld
(no Alire ./config
)So we have to set:
name = "ownepkg1pkg2comp"
project-files = ["bld/ownepkg1pkg2comp-lib.gpr"]
[build-profiles]
ownepkg1pkg2comp = "Development"
[configuration]
auto_gpr_with = false
output_dir = "bld"
name = "ownepkg1pkg2comp_tests"
project-files = ["../bld/ownepkg1pkg2comp-lib-tests.gpr"]
[build-profiles]
ownepkg1pkg2comp_tests = "Development"
ownepkg1pkg2comp = "Validation"
sterndevttestunit = "Release"
[configuration]
auto_gpr_with = false
output_dir = "../bld"
[[depends-on]]
ownepkg1pkg2comp = "*"
sterndevttestunit = ">=3.9.0"
[[pins]]
ownepkg1pkg2comp = { path='..' }
aggregate project ownepkg1pkg2comp is
-- Dependencies
for Project_Path use (
--:TODO "../name_of_copyright_owner/bld",
--:TODO "../name_of_copyright_owner_pkg1/bld",
--:TODO "../name_of_copyright_owner_pkg1_pkg2/bld",
"../sterdevttestunit/bld", -- Unit Test framework
"../other_pkgx_pkgy_somelibdependency", -- some lib dependency
"../another_pkgx_pkgy_otherlibdependency", -- some lib dependency
"bld");
-- Parts to be built
for Project_Files use (
"bld/ownepkg1pkg2comp-lib.gpr",
"bld/ownepkg1pkg2comp-lib-tests.gpr",
"bld/ownepkg1pkg2comp-main.gpr",
"bld/ownepkg1pkg2comp-main-tests.gpr");
end ownepkg1pkg2comp;
EEC GDPR compliant
Made in RapidWeaver