mirror of
https://github.com/orange-cpp/omath.git
synced 2026-02-13 15:03:27 +00:00
- 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
39 lines
1.3 KiB
CMake
39 lines
1.3 KiB
CMake
enable_testing()
|
|
|
|
project(unit_tests)
|
|
|
|
include(GoogleTest)
|
|
|
|
file(GLOB_RECURSE UNIT_TESTS_SOURCES CONFIGURE_DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/*.cpp")
|
|
add_executable(${PROJECT_NAME} ${UNIT_TESTS_SOURCES})
|
|
|
|
set_target_properties(
|
|
${PROJECT_NAME}
|
|
PROPERTIES ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/out/${CMAKE_BUILD_TYPE}"
|
|
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/out/${CMAKE_BUILD_TYPE}"
|
|
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/out/${CMAKE_BUILD_TYPE}"
|
|
CXX_STANDARD 23
|
|
CXX_STANDARD_REQUIRED ON)
|
|
|
|
if(TARGET gtest) # GTest is being linked as submodule
|
|
target_link_libraries(${PROJECT_NAME} PRIVATE gtest gtest_main omath::omath)
|
|
else() # GTest is being linked as vcpkg package
|
|
find_package(GTest CONFIG REQUIRED)
|
|
target_link_libraries(${PROJECT_NAME} PRIVATE GTest::gtest GTest::gtest_main omath::omath)
|
|
endif()
|
|
|
|
if(OMATH_ENABLE_COVERAGE)
|
|
include(${CMAKE_SOURCE_DIR}/cmake/Coverage.cmake)
|
|
omath_setup_coverage(${PROJECT_NAME})
|
|
endif()
|
|
|
|
if(OMATH_ENABLE_VALGRIND)
|
|
omath_setup_valgrind(${PROJECT_NAME})
|
|
endif()
|
|
|
|
# Skip test discovery for Android/iOS builds or when cross-compiling - binaries
|
|
# cannot run on host
|
|
if(NOT (ANDROID OR IOS OR EMSCRIPTEN))
|
|
gtest_discover_tests(${PROJECT_NAME})
|
|
endif()
|