เจเจธ เจตเจพเจฐ เจ เจธเฉเจ เจเจธ เจตเจฟเฉฑเจ เจเฉฑเจ เจธเฉฐเจเจฒเจฟเจค เจฒเจพเจเจฌเฉเจฐเฉเจฐเฉ เจเฉเฉเจพเจเจเฉ, เจ เจคเฉ เจเฉฑเจ เจฆเฉเจเฉ เจจเจพเจฒ เจฎเฉเจกเฉเจเจฒ เจเฉเฉเจจ เจฌเจพเจฐเฉ เจตเฉ เจเฉฑเจฒ เจเจฐเจพเจเจเฉเฅค
เจชเจนเจฟเจฒเจพเจ เจตเจพเจเจ, เจเฉ เจฌเฉเจธเจฌเจฐเฉ เจนเจจ, เจเจน เจคเฉเจฐเฉฐเจค เจเจฐ เจธเจเจฆเฉ เจนเจจ
เจ เฉฑเจชเจกเฉเจ เจฐเจฟเจชเฉเจเจผเจเจฐเฉ 'เจคเฉ เจเจพเจ เจ เจคเฉ เจนเจฐ เจเฉเจเจผ เจจเฉเฉฐ เจเจชเจฃเฉ เจนเฉฑเจฅเจพเจ เจจเจพเจฒ เจเฉเจนเฉ.
เจธเจฎเฉฑเจเจฐเฉ
เจชเจพเฉเจพ
เจเจชเจฃเฉ เจเฉฑเจเฉ เจเฉเจเฉ เจจเฉเฉฐ เจชเฉเจฐเจพเจชเจค เจเจฐเจจ เจฒเจ เจธเจพเจจเฉเฉฐ เจธเจญ เจคเฉเจ เจชเจนเจฟเจฒเจพเจ เจเฉ เจเฉฐเจฎ เจเจฐเจจ เจฆเฉ เจฒเฉเฉ เจนเฉ เจเจน เจนเฉ เจธเจพเจกเฉ เจฆเฉเจเจฐเจพ เจตเจฟเจเจธเจค เจเฉเจคเฉ เจเจ เจธเฉเจซเจเจตเฉเจ เจฐ เจจเฉเฉฐ เจธเจฐเจต เจตเจฟเจเจชเจ, เจ เจฒเฉฑเจ-เจฅเจฒเฉฑเจ เจฌเจฒเจพเจเจพเจ เจตเจฟเฉฑเจ เจตเฉฐเจกเจฃเจพ เจเฉ เจเจชเจญเฉเจเจคเจพ เจฆเฉ เจฆเฉเจฐเจฟเจธเจผเจเฉเจเฉเจฃ เจคเฉเจ เจเจเจธเจพเจฐ เจนเจจเฅค
เจชเจนเจฟเจฒเฉ เจนเจฟเฉฑเจธเฉ เจตเจฟเฉฑเจ, เจ เจเจฟเจนเฉ เจเฉฑเจ เจฎเจฟเจเจฐเฉ เจฌเจฒเจพเจ เจฆเจพ เจตเจฐเจฃเจจ เจเฉเจคเจพ เจเจฟเจ เจธเฉ - เจเฉฑเจ เจธเจฟเจฐเจฒเฉเจ เจฒเจพเจเจฌเฉเจฐเฉเจฐเฉ เจตเจพเจฒเจพ เจเฉฑเจ เจชเฉเจฐเฉเจเฉเจเจ. เจเจ เจนเฉเจฃ เจเจชเจฃเฉ เจชเฉเจฐเฉเจเฉเจเจ เจตเจฟเฉฑเจ เจเฉฑเจ เจเฉฐเจชเจพเจเจฒ เจเฉเจคเฉ เจฒเจพเจเจฌเฉเจฐเฉเจฐเฉ เจเฉเฉเฉเจเฅค
เจ
เจเจฟเจนเจพ เจเจฐเจจ เจฒเจ, เจเจ เจซเฉฐเจเจธเจผเจจ เจจเฉเฉฐ เจฒเจพเจเฉ เจเจฐเฉเจ 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