เดเดคเตเดคเดตเดฃ เดเดเตเดเตพ เด เดคเดฟเดฒเตเดเตเดเต เดเดฐเต เดธเดฎเดพเดนเดฐเดฟเดเตเด เดฒเตเดฌเตเดฐเดฑเดฟ เดเตเตผเดเตเดเตเด, เดเตเดเดพเดคเต เดฎเตเดกเตเดฏเตเดณเตเดเตพ เดชเดฐเดธเตเดชเดฐเด เดฌเดจเตเดงเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเตเดเตเดเตเดฑเดฟเดเตเดเตเด เดธเดเดธเดพเดฐเดฟเดเตเดเตเด.
เดชเดดเดฏเดคเตเดชเตเดฒเต, เด เดเตเดทเดฎเดฐเดพเดฏเดตเตผเดเตเดเต เดเดเตป เดเดดเดฟเดฏเตเด
เดชเตเดคเตเดเตเดเดฟเดฏ เดถเตเดเดฐเดคเตเดคเดฟเดฒเตเดเตเดเต เดชเตเดเตเด เดจเดฟเดเตเดเดณเตเดเต เดธเตเดตเดจเตเดคเด เดเตเดเตเดฃเตเดเต เดเดฒเตเดฒเดพเด เดธเตเดชเตผเดถเดฟเดเตเดเตเด.
เดเดณเตเดณเดเดเตเดเด
เดตเตเดคเดฟเดเตเดเตเด
เดจเดฎเตเดฎเตเดเต เดเดจเตเดจเดคเดฎเดพเดฏ เดฒเดเตเดทเตเดฏเด เดเตเดตเดฐเดฟเดเตเดเดพเตป เดเดฆเตเดฏเด เดเตเดฏเตเดฏเตเดฃเตเดเดคเต, เดจเดฎเตเดฎเตพ เดตเดฟเดเดธเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจ เดธเตเดซเตโเดฑเตเดฑเตโเดตเตเดฏเดฑเดฟเดจเต เดเดชเดฏเตเดเตเดคเดพเดตเดฟเดจเตเดฑเต เดตเตเดเตเดทเดฃเดเตเดฃเดฟเตฝ เดจเดฟเดจเตเดจเต เดเดเตเดเตเดคเดตเตเด เดธเดพเตผเดตเดคเตเดฐเดฟเดเดตเตเด เดเดฑเตเดฑเดชเตเดชเตเดเตเดเดคเตเดฎเดพเดฏ เดฌเตเดฒเตเดเตเดเตเดเดณเดพเดฏเดฟ เดตเดฟเดญเดเดฟเดเตเดเตเด เดเดจเตเดจเดคเดพเดฃเต.
เดเดฆเตเดฏ เดญเดพเดเดคเตเดคเต, เด เดคเตเดคเดฐเดฎเตเดฐเต เดธเตเดฑเตเดฑเดพเตปเดกเตเตผเดกเต เดฌเตเดฒเตเดเตเดเต เดตเดฟเดตเดฐเดฟเดเตเดเต - เดเดฐเต เดนเตเดกเตเดกเตผ เดฒเตเดฌเตเดฐเดฑเดฟเดฏเตเดณเตเดณ เดเดฐเต เดชเตเดฐเตเดเดเตเดฑเตเดฑเต. เดเดจเดฟ เดจเดฎเตเดฎเตเดเต เดชเตเดฐเตเดเดเตเดฑเตเดฑเดฟเดฒเตเดเตเดเต เดธเดฎเดพเดนเดฐเดฟเดเตเด เดเดฐเต เดฒเตเดฌเตเดฐเดฑเดฟ เดเตเตผเดเตเดเดพเด.
เดเดคเต เดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต, เดซเดเดเตเดทเตป เดจเดเดชเตเดชเดฟเดฒเดพเดเตเดเตเดจเตเดจเดคเต เดจเดฎเตเดเตเดเต เดเดเตเดเตเดเดพเด 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
find_package(Mylib 1.0 REQUIRED)
เดเดฐเต เดเดชเดเดเดเดฎเดพเดฏเดฟ เดเดฃเดเตเดทเตป
เดเดฎเดพเตปเดกเต เดเดชเดฏเตเดเดฟเดเตเดเต เดเดฐเต เดธเดฌเตโเดฎเตเดกเตเดฏเตเดณเดพเดฏเดฟ เดฎเดฑเตเดฑเตเดฐเต เดชเตเดฐเตเดเดเตเดฑเตเดฑเดฟเดฒเตเดเตเดเต เดซเตเตพเดกเดฑเดฟเดจเต เดเดเตเดเดณเตเดเต เดชเตเดฐเตเดเดเตเดฑเตเดฑเตเดฎเดพเดฏเดฟ เดฌเดจเตเดงเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจเดคเดพเดฃเต เดฎเดฑเตเดฑเตเดฐเต เดเดชเตเดทเตป add_subdirectory
เดเดชเดฏเตเดเดฟเดเตเดเตเด
เดฌเตเตปเดกเดฟเดเดเต เดฐเตเดคเดฟเดเตพ เดตเตเดฏเดคเตเดฏเดธเตเดคเดฎเดพเดฃเต, เดชเดเตเดทเต เดซเดฒเด เดเดจเตเดจเตเดคเดจเตเดจเตเดฏเดพเดฃเต. เดฐเดฃเตเดเต เดธเดพเดนเดเดฐเตเดฏเดเตเดเดณเดฟเดฒเตเด, เดเดเตเดเดณเตเดเต เดฎเตเดกเตเดฏเตเตพ เดเดชเดฏเตเดเดฟเดเตเดเต เดชเดฆเตเดงเดคเดฟเดฏเดฟเตฝ เดฒเดเตเดทเตเดฏเดเตเดเตพ เดฒเดญเตเดฏเดฎเดพเดเตเด 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