120 lines
3.0 KiB
Plaintext
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
|