11#[==[ .rst:
2- .. _vcov_module_add_module
2+ .. cmake:command:: vcov_module_add_module
3+
4+ .. code-block:: cmake
5+
6+ vcov_module_add_module(<name>
7+ CLASSES [<class>...]
8+ SOURCES [<source>...]
9+ HEADERS [<header>...]
10+ )
311#]==]
412function (vcov_module_add_module name )
513 cmake_parse_arguments (PARSE_ARGV 1 _vcov "" "" "CLASSES;SOURCES;HEADERS" )
@@ -14,18 +22,31 @@ function (vcov_module_add_module name)
1422 add_library (${name} STATIC )
1523 endif ()
1624 target_sources (${name} PRIVATE ${_vcov_SOURCES} ${_vcov_HEADERS} )
17- target_include_directories (${name} PUBLIC ${Boost_INCLUDE_DIRS} ${CMAKE_CURRENT_SOURCE_DIR } )
25+ target_include_directories (${name} PUBLIC
26+ ${Boost_INCLUDE_DIRS}
27+ ${CMAKE_CURRENT_SOURCE_DIR }
28+ ${CMAKE_CURRENT_BINARY_DIR }
29+ )
1830 target_link_libraries (${name} PUBLIC ${Boost_LIBRARIES} )
1931 else ()
2032 add_library (${name} INTERFACE )
2133 target_sources (${name} INTERFACE ${_vcov_HEADERS} )
22- target_include_directories (${name} INTERFACE ${Boost_INCLUDE_DIRS} )
34+ target_include_directories (${name} INTERFACE
35+ ${Boost_INCLUDE_DIRS}
36+ ${CMAKE_CURRENT_BINARY_DIR }
37+ )
2338 endif ()
2439 add_library (vcov::${name} ALIAS ${name} )
2540endfunction ()
2641
2742#[==[ .rst:
28- .. _vcov_module_add_dependencies
43+ .. cmake:command:: vcov_module_add_dependencies
44+
45+ .. code-block:: cmake
46+
47+ vcov_module_add_dependencies(<name>
48+ DEPENDENCIES [<name>...]
49+ )
2950#]==]
3051function (vcov_module_add_dependencies module )
3152 cmake_parse_arguments (PARSE_ARGV 1 _vcov "" "" "DEPENDENCIES" )
@@ -44,7 +65,7 @@ function (vcov_module_add_dependencies module)
4465 endif ()
4566 get_target_property (dep_includes ${_vcov_dep} INCLUDE_DIRECTORIES)
4667 if (dep_includes)
47- target_include_directories (${module} PRIVATE ${dep_includes} )
68+ target_include_directories (${module} PUBLIC ${dep_includes} )
4869 endif ()
4970 endforeach ()
5071
@@ -57,15 +78,26 @@ function (vcov_module_add_dependencies module)
5778endfunction ()
5879
5980#[==[ .rst:
60- .. vcov_add_test
81+ .. cmake:command:: vcov_add_test
82+
83+ .. code-block:: cmake
84+
85+ vcov_add_test(<name>)
6186#]==]
6287function (vcov_add_test module )
6388 enable_testing ()
6489 add_subdirectory (Testing )
6590endfunction ()
6691
6792#[==[ .rst:
68- .. vcov_add_test_sources
93+ .. cmake:command:: vcov_add_test_sources
94+
95+ .. code-block:: cmake
96+
97+ vcov_add_test_sources(<name>
98+ SOURCES [<source>...]
99+ DEPENDENCIES [<name>...]
100+ )
69101#]==]
70102function (vcov_add_test_sources module )
71103 cmake_parse_arguments (PARSE_ARGV 1 _vcov "" "" "SOURCES;DEPENDENCIES" )
@@ -80,15 +112,11 @@ function (vcov_add_test_sources module)
80112 add_executable (${_vcov_source_name} ${_vcov_source} )
81113 if (module_includes)
82114 target_include_directories (${_vcov_source_name} PRIVATE
83- ${module_includes}
84- ${GTEST_INCLUDE_DIRS}
85- )
115+ ${module_includes} ${GTEST_INCLUDE_DIRS} )
86116 endif ()
87117 if (module_deps)
88118 target_link_libraries (${_vcov_source_name} PRIVATE
89- ${module_deps}
90- GTest::gtest GTest::gtest_main
91- )
119+ ${module_deps} GTest::gtest GTest::gtest_main )
92120 endif ()
93121 add_dependencies (${_vcov_source_name} ${module} )
94122 gtest_discover_tests (${_vcov_source_name} )
0 commit comments