mirror of
https://github.com/orange-cpp/omath.git
synced 2026-02-13 07:03:25 +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
64 lines
2.1 KiB
CMake
64 lines
2.1 KiB
CMake
# 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 benchmark executables in: ${EXAMPLES_BIN_DIR}")
|
|
|
|
# Find all files starting with "omath_benchmark"
|
|
file(GLOB EXAMPLE_FILES "${EXAMPLES_BIN_DIR}/omath_benchmark*")
|
|
|
|
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 benchmark: ${FILENAME}")
|
|
message(STATUS "-------------------------------------------------")
|
|
|
|
execute_process(
|
|
COMMAND "${EXAMPLE_PATH}"
|
|
WORKING_DIRECTORY "${PROJECT_ROOT}"
|
|
RESULT_VARIABLE EXIT_CODE
|
|
)
|
|
|
|
if(NOT EXIT_CODE EQUAL 0)
|
|
message(WARNING "Benchmark ${FILENAME} exited with error code: ${EXIT_CODE}")
|
|
else()
|
|
message(STATUS "Benchmark ${FILENAME} completed successfully.")
|
|
endif()
|
|
|
|
endforeach()
|