introducing-cmake/exercises/doc/deployment-diagram.puml

120 lines
3.0 KiB
Plaintext

@startuml
left to right direction
hide <<Layout>> stereotype
skinparam rectangle<<Layout>> {
borderColor Transparent
backgroundColor Transparent
fontColor Transparent
shadowing false
}
folder "source directory" as srcdir {
folder "include/cmake-exercise" as include_srcdir {
file a.hh
file b.hh
file c.hh
}
folder "src" {
file a.cc
file b.cc
}
folder "test" as test_srcdir {
file test.cc
}
file CMakeLists.txt
}
folder "build directory" as builddir {
rectangle folders_layout <<Layout>> {
folder "src" as src_builddir {
file a.o
file b.o
}
folder "test" as test_builddir {
file test.o
}
folder "include/cmake-exercise" as include_builddir {
file config.hh
}
}
rectangle artifacts_layout <<Layout>> {
artifact "<<static library>>\nlibstatic.a" as static
artifact "<<shared library>>\nlibshared.so" as shared
artifact "<<executable>>\ntest-binary" as test
static -[hidden]r- shared
shared -[hidden]r- test
}
}
srcdir -[hidden]r- builddir
package package.tar.xz {
folder "<prefix>/include/cmake-exercise" {
file a.hh as installed_a.hh
file b.hh as installed_b.hh
file c.hh as installed_c.hh
file config.hh as installed_config.hh
}
folder "<prefix>/share/cmake-exercise/test" {
artifact "<<executable>>\ntest" as installed_test
}
folder "<prefix>/lib" {
artifact "<<shared library>>\nlibshared.so" as installed_shared
}
}
actor CMake
a.hh --> installed_a.hh : <<install>>
b.hh --> installed_b.hh : <<install>>
c.hh --> installed_c.hh : <<install>>
config.hh --> installed_config.hh : <<install>>
test --> installed_test : <<install>>
shared --> installed_shared : <<install>>
file "<<source>>\na.cc" as a.cc
file "<<source>>\nb.cc" as b.cc
file "<<source>>\na.hh" as a.hh
file "<<source>>\nb.hh" as b.hh
file "<<source>>\nc.hh" as c.hh
file "<<source>>\nconfig.hh" as config.hh
file "<<file>>\na.o" as a.o
file "<<file>>\nb.o" as b.o
file "<<file>>\ntest.o" as test.o
file "<<source>>\ntest.cc" as test.cc
CMake -u-> config.hh : <<generate>>
a.cc --> a.o : <<compile>>
b.cc --> b.o : <<compile>>
test.cc --> test.o : <<compile>>
test ..> test.o : <<link>>
test ..> static : <<link>>
static ..> a.o : <<archive>>
shared ..> a.o : <<link>>
shared ..> b.o : <<link>>
b.hh ~r~> a.hh : <<include>>
a.hh ~~> c.hh : <<include>>
b.hh ~~> c.hh : <<include>>
a.hh ~~> config.hh : <<include>>
b.hh ~~> config.hh : <<include>>
a.cc ~~> a.hh : <<include>>
b.cc ~~> b.hh : <<include>>
test.cc ~~> a.hh : <<include>>
@enduml