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:
63
pixi/run.unit.tests.cmake
Normal file
63
pixi/run.unit.tests.cmake
Normal file
@@ -0,0 +1,63 @@
|
||||
# cmake/run.examples.cmake
|
||||
|
||||
# Get the project root directory (assuming this script is in cmake/ subdirectory)
|
||||
get_filename_component(PROJECT_ROOT "${CMAKE_CURRENT_LIST_DIR}/.." ABSOLUTE)
|
||||
|
||||
# Default to Debug if CMAKE_BUILD_TYPE is not specified
|
||||
if(NOT CMAKE_BUILD_TYPE)
|
||||
set(CMAKE_BUILD_TYPE "Debug")
|
||||
else()
|
||||
message(STATUS "CMAKE_BUILD_TYPE is set to: ${CMAKE_BUILD_TYPE}")
|
||||
endif()
|
||||
|
||||
# Define the directory where executables are located
|
||||
# Based on CMakeLists.txt: "${CMAKE_SOURCE_DIR}/out/${CMAKE_BUILD_TYPE}"
|
||||
set(EXAMPLES_BIN_DIR "${PROJECT_ROOT}/out/${CMAKE_BUILD_TYPE}")
|
||||
|
||||
if(NOT EXISTS "${EXAMPLES_BIN_DIR}")
|
||||
message(FATAL_ERROR "Examples binary directory not found: ${EXAMPLES_BIN_DIR}. Please build the project first.")
|
||||
endif()
|
||||
|
||||
message(STATUS "Looking for unit test executables in: ${EXAMPLES_BIN_DIR}")
|
||||
|
||||
# Find all files starting with "unit_tests"
|
||||
file(GLOB EXAMPLE_FILES "${EXAMPLES_BIN_DIR}/unit_tests*")
|
||||
|
||||
foreach(EXAMPLE_PATH ${EXAMPLE_FILES})
|
||||
# Skip directories
|
||||
if(IS_DIRECTORY "${EXAMPLE_PATH}")
|
||||
continue()
|
||||
endif()
|
||||
|
||||
get_filename_component(FILENAME "${EXAMPLE_PATH}" NAME)
|
||||
get_filename_component(EXTENSION "${EXAMPLE_PATH}" EXT)
|
||||
|
||||
# Filter out potential debug symbols or non-executable artifacts
|
||||
if(EXTENSION STREQUAL ".pdb" OR EXTENSION STREQUAL ".ilk" OR EXTENSION STREQUAL ".obj")
|
||||
continue()
|
||||
endif()
|
||||
|
||||
# On Windows, we expect .exe
|
||||
if(MSVC AND NOT EXTENSION STREQUAL ".exe")
|
||||
continue()
|
||||
endif()
|
||||
|
||||
# On Linux/macOS, check permissions or just try to run it.
|
||||
|
||||
message(STATUS "-------------------------------------------------")
|
||||
message(STATUS "Running unit_tests: ${FILENAME}")
|
||||
message(STATUS "-------------------------------------------------")
|
||||
|
||||
execute_process(
|
||||
COMMAND "${EXAMPLE_PATH}"
|
||||
WORKING_DIRECTORY "${PROJECT_ROOT}"
|
||||
RESULT_VARIABLE EXIT_CODE
|
||||
)
|
||||
|
||||
if(NOT EXIT_CODE EQUAL 0)
|
||||
message(WARNING "Example ${FILENAME} exited with error code: ${EXIT_CODE}")
|
||||
else()
|
||||
message(STATUS "Example ${FILENAME} completed successfully.")
|
||||
endif()
|
||||
|
||||
endforeach()
|
||||
Reference in New Issue
Block a user