-
Notifications
You must be signed in to change notification settings - Fork 11
Feature/add gcov target #31
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
39d540b
d744137
d462d55
5ac8f1c
50f1556
3b44eda
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,3 +1,5 @@ | ||
| /build | ||
| /out | ||
| CMakeUserPresets.json | ||
| CMakeCache.txt | ||
| CMakeFiles/ |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -3,7 +3,9 @@ | |
| # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception | ||
| # cmake-format: on | ||
|
|
||
| cmake_minimum_required(VERSION 3.23) | ||
| set(CMAKE_SKIP_TEST_ALL_DEPENDENCY FALSE) | ||
|
|
||
| cmake_minimum_required(VERSION 3.25...3.31) | ||
|
|
||
| project( | ||
| beman.inplace_vector | ||
|
|
@@ -13,6 +15,10 @@ project( | |
| LANGUAGES CXX | ||
| ) | ||
|
|
||
| if(${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_BINARY_DIR}) | ||
| message(FATAL_ERROR "In-source builds are not allowed!") | ||
| endif() | ||
|
Comment on lines
+18
to
+20
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Please exclude changes unrelated to adding gcov target...
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. done
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This is not done. Please exclude. |
||
|
|
||
| # [CMAKE.SKIP_EXAMPLES] | ||
| option( | ||
| BEMAN_EXEMPLAR_BUILD_EXAMPLES | ||
|
|
@@ -27,41 +33,58 @@ option( | |
| ${PROJECT_IS_TOP_LEVEL} | ||
| ) | ||
|
|
||
| set(CPACK_GENERATOR TGZ) | ||
|
|
||
| include(GNUInstallDirs) | ||
| include(CPack) | ||
|
|
||
| add_library(beman.inplace_vector INTERFACE) | ||
| # [CMAKE.LIBRARY_ALIAS] | ||
| add_library(beman::inplace_vector ALIAS beman.inplace_vector) | ||
|
|
||
| target_include_directories( | ||
| target_sources( | ||
| beman.inplace_vector | ||
| INTERFACE | ||
| $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include> | ||
| $<INSTALL_INTERFACE:include> | ||
| PUBLIC | ||
| FILE_SET inplace_vector_public_headers | ||
| TYPE HEADERS | ||
| BASE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/include | ||
| FILES | ||
| "${CMAKE_CURRENT_SOURCE_DIR}/include/beman/inplace_vector/inplace_vector.hpp" | ||
| ) | ||
| set_target_properties( | ||
| beman.inplace_vector | ||
| PROPERTIES VERIFY_INTERFACE_HEADER_SETS ON | ||
| ) | ||
| target_compile_features(beman.inplace_vector INTERFACE cxx_std_23) | ||
|
|
||
| set(TARGET_PACKAGE_NAME ${PROJECT_NAME}-config) | ||
| set(TARGETS_EXPORT_NAME ${PROJECT_NAME}-targets) | ||
| set(INSTALL_CONFIGDIR ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}) | ||
|
|
||
| # Install the InplaceVector library to the appropriate destination | ||
| install( | ||
| TARGETS beman.inplace_vector | ||
| EXPORT ${TARGETS_EXPORT_NAME} | ||
| DESTINATION | ||
| ${CMAKE_INSTALL_LIBDIR} | ||
| ) | ||
|
|
||
| # Install the header files to the appropriate destination | ||
| install( | ||
| DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/ | ||
| DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${CMAKE_PROJECT_NAME} | ||
| FILES_MATCHING | ||
| PATTERN | ||
| "${CMAKE_CURRENT_SOURCE_DIR}/include/beman/inplace_vector/inplace_vector.hpp" | ||
| FILE_SET inplace_vector_public_headers | ||
|
Comment on lines
-47
to
+68
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Please exclude changes unrelated to adding gcov target
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. done
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Please exclude |
||
| ) | ||
|
|
||
| if(BEMAN_INPLACE_VECTOR_BUILD_TESTS) | ||
| include(CTest) | ||
| enable_testing() | ||
| add_subdirectory(tests/beman/inplace_vector) | ||
| endif() | ||
|
|
||
| if(BEMAN_EXEMPLAR_BUILD_EXAMPLES) | ||
| add_subdirectory(examples) | ||
| endif() | ||
|
|
||
| # Coverage | ||
| configure_file(cmake/gcovr.cfg.in gcovr.cfg @ONLY) | ||
|
|
||
| add_custom_target( | ||
| process_coverage | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Can we test this in CI? Its fine if this doesn't have like a nice reporting interface, but can you add a CI target to ensure this cmake target doesn't fail? Also can you update README regarding this target?
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. yes
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Can you add a CI job to test this. |
||
| WORKING_DIRECTORY ${CMAKE_BINARY_DIR} | ||
| DEPENDS test | ||
| COMMENT "Running gcovr to process coverage results" | ||
| COMMAND mkdir -p coverage | ||
| COMMAND gcovr --config gcovr.cfg . | ||
| ) | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,12 @@ | ||
| # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception. | ||
|
|
||
| root = @CMAKE_SOURCE_DIR@ | ||
ClausKlein marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| cobertura = @CMAKE_BINARY_DIR@/coverage/cobertura.xml | ||
| sonarqube = @CMAKE_BINARY_DIR@/coverage/sonarqube.xml | ||
| html-details = @CMAKE_BINARY_DIR@/coverage/coverage.html | ||
| gcov-parallel = yes | ||
| html-theme = blue | ||
| html-self-contained = yes | ||
| print-summary = yes | ||
| filter = .*/beman/inplace_vector/.* | ||
| exclude = .*\.t\.cpp | ||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please exclude changes unrelated to adding gcov target
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done