mirror of
https://github.com/orange-cpp/omath.git
synced 2026-02-13 07:03:25 +00:00
Add initial project configuration and build scripts for omath library
- Created pixi.toml for project metadata and dependencies management. - Added formatting script (fmt.cmake) to ensure consistent CMake file formatting. - Implemented benchmark execution script (run.benchmark.cmake) to run benchmark tests. - Developed example execution script (run.examples.cmake) to run example applications. - Created unit test execution script (run.unit.tests.cmake) to run unit tests. removed lock file
This commit is contained in:
@@ -7,38 +7,23 @@ function(omath_setup_coverage TARGET_NAME)
|
||||
endif()
|
||||
|
||||
if(CMAKE_CXX_COMPILER_ID MATCHES "Clang" AND MSVC)
|
||||
target_compile_options(${TARGET_NAME} PRIVATE
|
||||
-fprofile-instr-generate
|
||||
-fcoverage-mapping
|
||||
/Zi
|
||||
)
|
||||
target_link_options(${TARGET_NAME} PRIVATE
|
||||
target_compile_options(${TARGET_NAME} PRIVATE -fprofile-instr-generate -fcoverage-mapping
|
||||
/Zi)
|
||||
target_link_options(
|
||||
${TARGET_NAME}
|
||||
PRIVATE
|
||||
-fprofile-instr-generate
|
||||
-fcoverage-mapping
|
||||
/DEBUG:FULL
|
||||
/INCREMENTAL:NO
|
||||
/PROFILE
|
||||
)
|
||||
/PROFILE)
|
||||
elseif(CMAKE_CXX_COMPILER_ID MATCHES "Clang|AppleClang")
|
||||
target_compile_options(${TARGET_NAME} PRIVATE
|
||||
-fprofile-instr-generate
|
||||
-fcoverage-mapping
|
||||
-g
|
||||
-O0
|
||||
)
|
||||
target_link_options(${TARGET_NAME} PRIVATE
|
||||
-fprofile-instr-generate
|
||||
-fcoverage-mapping
|
||||
)
|
||||
target_compile_options(${TARGET_NAME} PRIVATE -fprofile-instr-generate -fcoverage-mapping
|
||||
-g -O0)
|
||||
target_link_options(${TARGET_NAME} PRIVATE -fprofile-instr-generate -fcoverage-mapping)
|
||||
elseif(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
|
||||
target_compile_options(${TARGET_NAME} PRIVATE
|
||||
--coverage
|
||||
-g
|
||||
-O0
|
||||
)
|
||||
target_link_options(${TARGET_NAME} PRIVATE
|
||||
--coverage
|
||||
)
|
||||
target_compile_options(${TARGET_NAME} PRIVATE --coverage -g -O0)
|
||||
target_link_options(${TARGET_NAME} PRIVATE --coverage)
|
||||
endif()
|
||||
|
||||
if(TARGET coverage)
|
||||
@@ -47,40 +32,36 @@ function(omath_setup_coverage TARGET_NAME)
|
||||
|
||||
if(CMAKE_CXX_COMPILER_ID MATCHES "Clang" AND MSVC)
|
||||
message(STATUS "MSVC detected: Use VS Code Coverage from CI workflow")
|
||||
add_custom_target(coverage
|
||||
add_custom_target(
|
||||
coverage
|
||||
DEPENDS unit_tests
|
||||
COMMAND $<TARGET_FILE:unit_tests>
|
||||
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
|
||||
COMMENT "Running tests for coverage (use VS Code Coverage from CI)"
|
||||
)
|
||||
COMMENT "Running tests for coverage (use VS Code Coverage from CI)")
|
||||
|
||||
elseif(CMAKE_CXX_COMPILER_ID MATCHES "Clang|AppleClang")
|
||||
add_custom_target(coverage
|
||||
add_custom_target(
|
||||
coverage
|
||||
DEPENDS unit_tests
|
||||
COMMAND bash "${CMAKE_SOURCE_DIR}/scripts/coverage-llvm.sh"
|
||||
"${CMAKE_SOURCE_DIR}"
|
||||
"${CMAKE_BINARY_DIR}"
|
||||
"$<TARGET_FILE:unit_tests>"
|
||||
"${CMAKE_BINARY_DIR}/coverage"
|
||||
COMMAND bash "${CMAKE_SOURCE_DIR}/scripts/coverage-llvm.sh" "${CMAKE_SOURCE_DIR}"
|
||||
"${CMAKE_BINARY_DIR}" "$<TARGET_FILE:unit_tests>" "${CMAKE_BINARY_DIR}/coverage"
|
||||
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
|
||||
COMMENT "Running LLVM coverage"
|
||||
)
|
||||
COMMENT "Running LLVM coverage")
|
||||
|
||||
elseif(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
|
||||
add_custom_target(coverage
|
||||
add_custom_target(
|
||||
coverage
|
||||
DEPENDS unit_tests
|
||||
COMMAND $<TARGET_FILE:unit_tests> || true
|
||||
COMMAND lcov --capture --directory "${CMAKE_BINARY_DIR}"
|
||||
--output-file "${CMAKE_BINARY_DIR}/coverage.info"
|
||||
--ignore-errors mismatch,gcov
|
||||
COMMAND lcov --remove "${CMAKE_BINARY_DIR}/coverage.info"
|
||||
"*/tests/*" "*/gtest/*" "*/googletest/*" "*/_deps/*" "/usr/*"
|
||||
--output-file "${CMAKE_BINARY_DIR}/coverage.info"
|
||||
--ignore-errors unused
|
||||
COMMAND genhtml "${CMAKE_BINARY_DIR}/coverage.info"
|
||||
--output-directory "${CMAKE_BINARY_DIR}/coverage"
|
||||
COMMAND lcov --capture --directory "${CMAKE_BINARY_DIR}" --output-file
|
||||
"${CMAKE_BINARY_DIR}/coverage.info" --ignore-errors mismatch,gcov
|
||||
COMMAND
|
||||
lcov --remove "${CMAKE_BINARY_DIR}/coverage.info" "*/tests/*" "*/gtest/*"
|
||||
"*/googletest/*" "*/_deps/*" "/usr/*" --output-file
|
||||
"${CMAKE_BINARY_DIR}/coverage.info" --ignore-errors unused
|
||||
COMMAND genhtml "${CMAKE_BINARY_DIR}/coverage.info" --output-directory
|
||||
"${CMAKE_BINARY_DIR}/coverage"
|
||||
WORKING_DIRECTORY "${CMAKE_BINARY_DIR}"
|
||||
COMMENT "Running lcov/genhtml"
|
||||
)
|
||||
COMMENT "Running lcov/genhtml")
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
@@ -22,23 +22,19 @@ function(omath_setup_valgrind TARGET_NAME)
|
||||
return()
|
||||
endif()
|
||||
|
||||
set(VALGRIND_FLAGS
|
||||
--leak-check=full
|
||||
--show-leak-kinds=all
|
||||
--track-origins=yes
|
||||
--error-exitcode=99
|
||||
)
|
||||
set(VALGRIND_FLAGS --leak-check=full --show-leak-kinds=all --track-origins=yes
|
||||
--error-exitcode=99)
|
||||
|
||||
set(VALGRIND_TARGET "valgrind_${TARGET_NAME}")
|
||||
|
||||
if(NOT TARGET ${VALGRIND_TARGET})
|
||||
add_custom_target(${VALGRIND_TARGET}
|
||||
add_custom_target(
|
||||
${VALGRIND_TARGET}
|
||||
DEPENDS ${TARGET_NAME}
|
||||
COMMAND ${VALGRIND_EXECUTABLE} ${VALGRIND_FLAGS} $<TARGET_FILE:${TARGET_NAME}>
|
||||
WORKING_DIRECTORY $<TARGET_FILE_DIR:${TARGET_NAME}>
|
||||
COMMENT "Running Valgrind memory check on ${TARGET_NAME}..."
|
||||
USES_TERMINAL
|
||||
)
|
||||
USES_TERMINAL)
|
||||
|
||||
add_dependencies(valgrind_all ${VALGRIND_TARGET})
|
||||
endif()
|
||||
|
||||
Reference in New Issue
Block a user