
CMake เดฌเดฟเตฝเดกเต เดธเดฟเดธเตเดฑเตเดฑเด เดเดจเดฑเตเดฑเตเดฑเดฑเดฟเดจเตเดณเตเดณเดฟเดฒเต เดนเตเดกเตผ เดฒเตเดฌเตเดฐเดฑเดฟเดฏเตเดเต เดเตผเดเดจเตเดธเตเดทเดจเตเดเตเดเตเดฑเดฟเดเตเดเดพเดฃเต เด เดฐเดธเดเดฐเดฎเดพเดฏ เดเดฅ เดเตผเดเตเด เดเตเดฏเตเดคเดคเต.
เดเดคเตเดคเดตเดฃ เดจเดฎเตเดฎเตพ เด เดคเดฟเดฒเตเดเตเดเต เดเดฐเต เดเดเดชเตเตฝ เดเตเดฏเตเดค เดฒเตเดฌเตเดฐเดฑเดฟ เดเตเตผเดเตเดเตเด, เดเตเดเดพเดคเต เดฎเตเดกเตเดฏเตเดณเตเดเตพ เดชเดฐเดธเตเดชเดฐเด เดฌเดจเตเดงเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเตเดเตเดเตเดฑเดฟเดเตเดเตเด เดธเดเดธเดพเดฐเดฟเดเตเดเตเด.
เดฎเตเดฎเตเดชเดคเตเดคเตเดชเตเดชเตเดฒเต, เด เดเตเดทเดฎเดฐเดพเดฏเดตเตผเดเตเดเต เดเดเดจเดเดฟ เดเดดเดฟเดฏเตเด เดธเตเดตเดจเตเดคเด เดเตเดเตเดฃเตเดเต เดเดฒเตเดฒเดพเด เดคเตเดเตเด.
เดเดณเตเดณเดเดเตเดเด
เดจเดฎเตเดฎเตเดเต เดเดจเตเดจเดคเดฎเดพเดฏ เดฒเดเตเดทเตเดฏเด เดเตเดตเดฐเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต เดเดฆเตเดฏเด เดเตเดฏเตเดฏเตเดฃเตเดเดคเต, เดตเดฟเดเดธเดฟเดชเตเดชเดฟเดเตเดเตเดเตเดฃเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจ เดธเตเดซเตเดฑเตเดฑเตโเดตเตเดฏเดฑเดฟเดจเต เดเดชเดฏเตเดเตเดคเดพเดตเดฟเดจเตเดฑเต เดเดพเดดเตเดเดชเตเดชเดพเดเดฟเตฝ เดเดเตเดเตเดคเดฎเดพเดฏ เดธเดพเตผเดตเดคเตเดฐเดฟเดเดตเตเด เดเดฑเตเดฑเดชเตเดชเตเดเตเดเดคเตเดฎเดพเดฏ เดฌเตเดฒเตเดเตเดเตเดเดณเดพเดฏเดฟ เดตเดฟเดญเดเดฟเดเตเดเตเด เดเดจเตเดจเดคเดพเดฃเต.
เดเดฆเตเดฏ เดญเดพเดเดคเตเดคเดฟเตฝ, เดเดเตเดเตพ เดเดฐเต เดธเตเดฑเตเดฑเดพเตปเดกเตเตผเดกเต เดชเตเดฐเตเดเดเตเดฑเตเดฑเต เดฌเตเดฒเตเดเตเดเดฟเดจเตเดเตเดเตเดฑเดฟเดเตเดเต เดตเดฟเดตเดฐเดฟเดเตเดเต - เดเดฐเต เดนเตเดกเตผ เดฒเตเดฌเตเดฐเดฑเดฟ เดเดณเตเดณ เดเดฐเต เดชเตเดฐเตเดเดเตเดฑเตเดฑเต. เดเดจเดฟ เดจเดฎเตเดฎเตเดเต เดชเตเดฐเตเดเดเตเดฑเตเดฑเดฟเดฒเตเดเตเดเต เดเดฐเต เดเดเดชเตเตฝ เดเตเดฏเตเดค เดฒเตเดฌเตเดฐเดฑเดฟ เดเตเตผเดเตเดเดพเด.
เดเดคเต เดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต, เดเดเตเดเตพ เดซเดเดเตเดทเดจเตเดฑเต เดจเดเดชเตเดชเดฟเดฒเดพเดเตเดเตฝ เดชเตเดฑเดคเตเดคเตเดเตเดเตเดเตเด myfunc เดเดฐเต เดชเตเดฐเดคเตเดฏเตเด เดธเตเดฅเดฒเดคเตเดคเต .cpp-เดซเดฏเตฝ:
diff --git a/include/mylib/myfeature.hpp b/include/mylib/myfeature.hpp
index 43db388..ba62b4f 100644
--- a/include/mylib/myfeature.hpp
+++ b/include/mylib/myfeature.hpp
@@ -46,8 +46,5 @@ namespace mylib
~ see mystruct
*/
- inline bool myfunc (mystruct)
- {
- return true;
- }
+ bool myfunc (mystruct);
}
diff --git a/src/mylib/myfeature.cpp b/src/mylib/myfeature.cpp
new file mode 100644
index 0000000..abb5004
--- /dev/null
+++ b/src/mylib/myfeature.cpp
@@ -0,0 +1,9 @@
+#include <mylib/myfeature.hpp>
+
+namespace mylib
+{
+ bool myfunc (mystruct)
+ {
+ return true;
+ }
+}เดชเดฟเดจเตเดจเต เดจเดฎเตเดฎเตพ เดเดเดชเตเตฝ เดเตเดฏเตเดค เดฒเตเดฌเตเดฐเดฑเดฟ เดจเดฟเตผเดตเดเดฟเดเตเดเตเดจเตเดจเต (myfeature), เดเดคเดฟเตฝ เดฎเตเดฎเตเดชเดคเตเดคเต เดเดเตเดเดคเตเดคเดฟเตฝ เดฒเดญเดฟเดเตเดเดคเต เดเตพเดชเตเดชเตเดเตเด. .cpp-เดซเดฏเตฝ. เดชเตเดคเดฟเดฏ เดฒเตเดฌเตเดฐเดฑเดฟเดเตเดเต เดจเดฟเดฒเดตเดฟเดฒเตเดณเตเดณ เดคเดฒเดเตเดเตเดเตเดเตเดเตพ เดเดตเดถเตเดฏเดฎเดพเดฃเตเดจเตเดจเต เดตเตเดฏเดเตเดคเดฎเดพเดฃเต, เดเดคเต เดเดฑเดชเตเดชเดพเดเตเดเดพเตป, เดจเดฟเดฒเดตเดฟเดฒเตเดณเตเดณ เดฒเดเตเดทเตเดฏเดตเตเดฎเดพเดฏเดฟ เดเดคเต เดฒเดฟเดเตเดเต เดเตเดฏเตเดฏเดพเดจเตเด เดฌเดจเตเดงเดฟเดชเตเดชเดฟเดเตเดเดพเดจเตเด เดเดดเดฟเดฏเตเด. mylib. เดฎเดพเดคเตเดฐเดฎเดฒเตเดฒ, เด
เดต เดคเดฎเตเดฎเดฟเดฒเตเดณเตเดณ เดฌเดจเตเดงเด เดชเตเดคเตเดตเดพเดฏเดคเดพเดฃเต, เด
เดคเดพเดฏเดคเต เดฒเดเตเดทเตเดฏเด เดฌเดจเตเดงเดฟเดชเตเดชเดฟเดเตเดเดชเตเดชเตเดเตเดจเตเดจเดคเตเดฒเตเดฒเดพเด myfeature, เดฌเตเดฃเดธเดพเดฏเดฟ เดเดฐเต เดฒเดเตเดทเตเดฏเด เดธเตเดตเดฏเดฎเตเดต เดฒเดญเดฟเดเตเดเตเด mylib ().
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 108045c..0de77b8 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -64,6 +64,17 @@ target_compile_features(mylib INTERFACE cxx_std_17)
add_library(Mylib::mylib ALIAS mylib)
+###################################################################################################
+##
+## ะะพะผะฟะธะปะธััะตะผะฐั ะฑะธะฑะปะธะพัะตะบะฐ
+##
+###################################################################################################
+
+add_library(myfeature src/mylib/myfeature.cpp)
+target_link_libraries(myfeature PUBLIC mylib)
+
+add_library(Mylib::myfeature ALIAS myfeature)
+เด เดเตเดคเตเดคเดคเดพเดฏเดฟ, เดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเดฟเตฝ เดชเตเดคเดฟเดฏ เดฒเตเดฌเตเดฐเดฑเดฟเดฏเตเด เดเตปเดธเตเดฑเตเดฑเดพเตพ เดเตเดฏเตเดคเดฟเดเตเดเตเดฃเตเดเตเดจเตเดจเต เดเดเตเดเตพ เดเดฑเดชเตเดชเดพเดเตเดเตเด:
@@ -72,7 +83,7 @@ add_library(Mylib::mylib ALIAS mylib)
install(DIRECTORY include/mylib DESTINATION include)
-install(TARGETS mylib EXPORT MylibConfig)
+install(TARGETS mylib myfeature EXPORT MylibConfig)
install(EXPORT MylibConfig NAMESPACE Mylib:: DESTINATION share/Mylib/cmake)
include(CMakePackageConfigHelpers)เด เดเดฆเตเดฆเตเดถเตเดฏเดคเตเดคเดฟเดจเดพเดฏเดฟ เดเดจเตเดจเดคเต เดถเตเดฐเดฆเตเดงเดฟเดเตเดเตเดฃเตเดเดคเดพเดฃเต myfeature, เดตเตเดฃเตเดเดฟ mylib เดเดฐเต เดชเตเดฐเดฟเดซเดฟเดเตเดธเตเดณเตเดณ เดเดฐเต เดเดฎเดจเดชเตเดชเตเดฐเต เดธเตเดทเตเดเดฟเดเตเดเต Mylib::เดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเดฟเตฝ เดเตปเดธเตเดฑเตเดฑเดพเดณเตเดทเดจเดพเดฏเดฟ เดเดฏเดฑเตเดฑเตเดฎเดคเดฟ เดเตเดฏเตเดฏเตเดฎเตเดชเตเตพ เดฐเดฃเตเดเต เดเดพเตผเดเตเดฑเตเดฑเตเดเตพเดเตเดเตเด เดเดคเต เดคเดจเตเดจเตเดฏเดพเดฃเต เดจเดฟเตผเดฆเตเดฆเตเดถเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจเดคเต. เดเดคเต เดชเดฐเดฟเดเดฃเดฟเดเตเดเดพเดคเต เดคเดจเตเดจเต เดเดพเตผเดเตเดฑเตเดฑเตเดเดณเตเดฎเดพเดฏเดฟ เดธเตเดฅเดฟเดฐเดฎเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเดพเตป เด
เดจเตเดตเดฆเดฟเดเตเดเตเดจเตเดจเต. .
เดเดคเดฟเดจเตเดถเตเดทเด, เดฏเตเดฃเดฟเดฑเตเดฑเต เดเตเดธเตเดฑเตเดฑเตเดเดณเต เดชเตเดคเดฟเดฏ เดฒเตเดฌเตเดฐเดฑเดฟเดฏเตเดฎเดพเดฏเดฟ เดฌเดจเตเดงเดฟเดชเตเดชเดฟเดเตเดเตเด เดฎเดพเดคเตเดฐเดฎเดพเดฃเต เด
เดตเดถเตเดทเดฟเดเตเดเตเดจเตเดจเดคเต (เดซเดเดเตเดทเตป myfunc เดคเดฒเดเตเดเตเดเตเดเดฟเตฝ เดจเดฟเดจเตเดจเต เดจเตเดเตเดเด เดเตเดฏเตโเดคเต, เด
เดคเดฟเดจเดพเตฝ เดเดชเตเดชเตเตพ เดจเดฟเดเตเดเตพ เดฒเดฟเดเตเดเต เดเตเดฏเตเดฏเตเดฃเตเดเดคเตเดฃเตเดเต):
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
index 5620be4..bc1266c 100644
--- a/test/CMakeLists.txt
+++ b/test/CMakeLists.txt
@@ -4,7 +4,7 @@ add_executable(mylib-unit-tests test_main.cpp)
target_sources(mylib-unit-tests PRIVATE mylib/myfeature.cpp)
target_link_libraries(mylib-unit-tests
PRIVATE
- Mylib::mylib
+ Mylib::myfeature
doctest::doctest
)เดคเดฒเดเตเดเตเดเตเดเตเดเตพ (Mylib::mylib) เดเดชเตเดชเตเตพ เดจเดฟเดเตเดเตพ เด
เดตเดฏเต เดตเตเดตเตเดตเตเดฑเต เดฌเดจเตเดงเดฟเดชเตเดชเดฟเดเตเดเตเดฃเตเดเดคเดฟเดฒเตเดฒ, เดเดพเดฐเดฃเด, เดเดคเดฟเดจเดเด เดธเตเดเดฟเดชเตเดชเดฟเดเตเดเดคเตเดชเตเดฒเต, เด
เดต เดฒเตเดฌเตเดฐเดฑเดฟเดฏเตเดเตเดชเตเดชเด เดฏเดพเดจเตเดคเตเดฐเดฟเดเดฎเดพเดฏเดฟ เดฌเดจเตเดงเดฟเดชเตเดชเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต (Mylib::myfeature).
เดชเตเดคเตเดคเดพเดฏเดฟ เดตเดจเตเดจ เดฒเตเดฌเตเดฐเดฑเดฟ เดเดฃเดเตเดเดฟเดฒเตเดเตเดคเตเดคเต เดเดตเดฑเตเดเต เด เดณเดตเตเดเตพ เดเดเตเดเตเดเตเดจเตเดจเตเดตเตเดจเตเดจเต เดเดฑเดชเตเดชเดพเดเตเดเดพเตป เดจเดฎเตเดเตเดเต เดฐเดฃเตเดเต เดธเตเดเตเดทเตเดฎเดคเดเตพ เดเตเตผเดเตเดเดพเด:
@@ -15,11 +15,16 @@ if(MYLIB_COVERAGE AND GCOVR_EXECUTABLE)
target_compile_options(mylib-unit-tests PRIVATE --coverage)
target_link_libraries(mylib-unit-tests PRIVATE gcov)
+ target_compile_options(myfeature PRIVATE --coverage)
+ target_link_libraries(myfeature PRIVATE gcov)
+
add_custom_target(coverage
COMMAND
${GCOVR_EXECUTABLE}
- --root=${PROJECT_SOURCE_DIR}/include/
- --object-directory=${CMAKE_CURRENT_BINARY_DIR}
+ --root=${PROJECT_SOURCE_DIR}/
+ --filter=${PROJECT_SOURCE_DIR}/include
+ --filter=${PROJECT_SOURCE_DIR}/src
+ --object-directory=${PROJECT_BINARY_DIR}
DEPENDS
check
)เดจเดฟเดเตเดเตพเดเตเดเต เดเตเดเตเดคเตฝ เดฒเตเดฌเตเดฐเดฑเดฟเดเตพ, เดเดเตเดธเดฟเดเตเดฏเตเดเตเดเดฌเดฟเดณเตเดเตพ เดคเตเดเดเตเดเดฟเดฏเดต เดเตเตผเดเตเดเดพเตป เดเดดเดฟเดฏเตเด. เดชเตเดฐเตเดเดเตเดฑเตเดฑเดฟเดจเตเดณเตเดณเดฟเตฝ เด เดต เดเดคเตเดฐเดคเตเดคเตเดณเด เดเตเดคเตเดฏเดฎเดพเดฏเดฟ เดชเดฐเดธเตเดชเดฐเด เดฌเดจเตเดงเดชเตเดชเตเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต เดเดจเตเดจเดคเต เดชเตเดฐเดถเตเดจเดฎเดฒเตเดฒ. เดจเดฎเตเดฎเตเดเต เดฎเตเดกเตเดฏเตเดณเดฟเดจเตเดฑเต เดเดจเตเดฑเตผเดซเตเดธเต เดเดคเตเดเตเดเต เดเดพเตผเดเตเดฑเตเดฑเตเดเดณเดพเดฃเต เดเดจเตเดจเดคเดพเดฃเต เดชเตเดฐเดงเดพเดจเด, เด เดคเดพเดฏเดคเต เด เดต เดคเตเดฑเดจเตเดจเตเดเดพเดเตเดเดชเตเดชเตเดเตเดจเตเดจเต.
เดเดชเตเดชเตเตพ เดจเดฎเตเดเตเดเต เดธเตเดฑเตเดฑเดพเตปเดกเตเตผเดกเต เดฌเตเดฒเตเดเตเดเตเดเตพ-เดฎเตเดกเตเดฏเตเดณเตเดเตพ เดเดฃเตเดเต, เดจเดฎเตเดเตเดเต เด เดตเดฏเต เดเดงเดฟเดชเดคเตเดฏเด เดธเตเดฅเดพเดชเดฟเดเตเดเดพเตป เดเดดเดฟเดฏเตเด: เดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเดฟเดฒเตเดเตเดเต เดเตปเดธเตเดฑเตเดฑเดพเตพ เดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเดฒเตเดเตเดฏเต เดเดฐเตเดฑเตเดฑ เด เดธเดเดฌเตเดฒเดฟ เดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเดฟเดจเตเดณเตเดณเดฟเตฝ เด เดตเดฏเต เดชเดฐเดธเตเดชเดฐเด เดฌเดจเตเดงเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจเดคเดฟเดฒเตเดเตเดฏเต เดจเดฎเตเดเตเดเต เด เดตเดฏเดฟเตฝ เดจเดฟเดจเตเดจเต เดเดคเต เดธเดเตเดเตเตผเดฃเตเดฃเดคเดฏเตเดเตเดฏเตเด เดเดฐเต เดเดเดจ เดจเดฟเตผเดฎเตเดฎเดฟเดเตเดเดพเตป เดเดดเดฟเดฏเตเด.
เดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเดฟเดฒเต เดเตปเดธเตเดฑเตเดฑเดพเดณเตเดทเตป
เดฎเตเดกเตเดฏเตเตพ เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดเดชเตเดทเดจเตเดเดณเดฟเดฒเตเดจเตเดจเต เดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเดฟเตฝ เดจเดฎเตเดฎเตเดเต เดฎเตเดกเตเดฏเตเตพ เดเตปเดธเตเดฑเตเดฑเดพเตพ เดเตเดฏเตเดฏเตเด เดเดจเตเดจเดคเดพเดฃเต.
cmake --build ะฟััั/ะบ/ัะฑะพัะพัะฝะพะน/ะดะธัะตะบัะพัะธะธ --target installเด เดคเดฟเดจเตเดถเตเดทเด, เดเดฎเดพเตปเดกเต เดเดชเดฏเตเดเดฟเดเตเดเต เดฎเดฑเตเดฑเตเดคเตเดเตเดเดฟเดฒเตเด เดชเตเดฐเตเดเดเตเดฑเตเดฑเดฟเดฒเตเดเตเดเต เดเดคเต เดฌเดจเตเดงเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจเต .
find_package(Mylib 1.0 REQUIRED)เดเดฐเต เดธเดฌเตเดฎเตเดกเตเดฏเตเดณเดพเดฏเดฟ เดเดฃเดเตเดทเตป
เดฎเดฑเตเดฑเตเดฐเต เดเดชเตเดทเตป, เดจเดฎเตเดฎเตเดเต เดชเตเดฐเตเดเดเตเดฑเตเดฑเตเดณเตเดณ เดซเตเตพเดกเดฑเดฟเดจเต เดฎเดฑเตเดฑเตเดฐเต เดชเตเดฐเตเดเดเตเดฑเตเดฑเดฟเดฒเตเดเตเดเต เดธเดฌเต เดฎเตเดกเตเดฏเตเดณเดพเดฏเดฟ เดเดฎเดพเตปเดกเต เดเดชเดฏเตเดเดฟเดเตเดเต เดฌเดจเตเดงเดฟเดชเตเดชเดฟเดเตเดเตเด เดเดจเตเดจเดคเดพเดฃเต. .
เดเดชเดฏเตเดเดฟเดเตเดเตเด
เดฒเดฟเดเตเดเดฟเดเดเต เดฐเตเดคเดฟเดเตพ เดตเตเดฏเดคเตเดฏเดธเตเดคเดฎเดพเดฏเดฟเดฐเดฟเดเตเดเตเด, เดชเดเตเดทเต เดซเดฒเด เดเดจเตเดจเตเดคเดจเตเดจเตเดฏเดพเดฃเต. เดฐเดฃเตเดเต เดธเดพเดนเดเดฐเตเดฏเดเตเดเดณเดฟเดฒเตเด, เดเดเตเดเดณเตเดเต เดฎเตเดกเตเดฏเตเตพ เดเดชเดฏเตเดเดฟเดเตเดเต เดชเตเดฐเตเดเดเตเดฑเตเดฑเดฟเตฝ เดฒเดเตเดทเตเดฏเดเตเดเตพ เดฒเดญเตเดฏเดฎเดพเดเตเด. Mylib::myfeature ะธ Mylib::mylib, เดเดคเต เดเดชเดฏเตเดเดฟเดเตเดเดพเด, เดเดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดเดคเตเดชเตเดฒเต:
add_executable(some_executable some.cpp sources.cpp)
target_link_libraries(some_executable PRIVATE Mylib::myfeature)เดชเตเดฐเดคเตเดฏเตเดเดฟเดเตเดเต เดเดเตเดเดณเตเดเต เดเดพเดฐเตเดฏเดคเตเดคเดฟเตฝ, เดฒเตเดฌเตเดฐเดฑเดฟ Mylib::myfeature เดฒเตเดฌเตเดฐเดฑเดฟเดฏเตเดฎเดพเดฏเดฟ เดฒเดฟเดเตเดเต เดเตเดฏเตเดฏเตเดฃเตเดเดฟเดตเดฐเตเดฎเตเดชเตเตพ เด
เดคเต เดฌเดจเตเดงเดฟเดชเตเดชเดฟเดเตเดเตเดฃเตเดเดคเตเดฃเตเดเต. libmyfeatureเดเดตเดถเตเดฏเดคเตเดคเดฟเดจเต เดคเดฒเดเตเดเตเดเตเดเตเดเตพ เดเดฃเตเดเตเดเตเดเดฟเตฝ, เดเดฐเต เดฒเตเดฌเตเดฐเดฑเดฟ เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเดคเต เดฎเตเดฒเตเดฏเดตเดคเตเดคเดพเดฃเต. Mylib::mylib.
CMake เดเดพเตผเดเตเดฑเตเดฑเตเดเตพ เดคเดจเตเดคเตเดฐเดชเดฐเดฎเดพเดฏเดฟเดฐเดฟเดเตเดเตเด, เดเดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดเดฟเดฒ เดชเตเดฐเตเดชเตเดชเตผเดเตเดเดฟเดเตพ, เดกเดฟเดชเตปเดกเตปเดธเดฟเดเตพ เดฎเตเดคเดฒเดพเดฏเดต เดเตเดฎเดพเดฑเดพเตป เดฎเดพเดคเตเดฐเด เดฐเตเดชเดเตฝเดชเตเดชเดจ เดเตเดฏเตโเดคเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต. เดเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด, เด เดตเดฏเตเดฒเตเดฒเดพเด เดเดฐเต เดเดเตเดเตเดค เดฐเตเดคเดฟเดฏเดฟเดฒเดพเดฃเต เดเตเดเดพเดฐเตเดฏเด เดเตเดฏเตเดฏเตเดจเตเดจเดคเต.
เด เดคเดพเดฃเต เดเตเดตเดฐเดฟเดเตเดเดพเตป เดชเตเดฐเดคเตเดเตเดทเดฟเดเตเดเดคเต.
เด เดตเดฒเดเดฌเด: www.habr.com
