55 lines
1.7 KiB
CMake
55 lines
1.7 KiB
CMake
add_subdirectory(selftest_suite)
|
|
|
|
find_package(Python COMPONENTS Interpreter REQUIRED)
|
|
|
|
add_custom_command(OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/clar.suite"
|
|
COMMAND "${Python_EXECUTABLE}" "${CMAKE_SOURCE_DIR}/generate.py" --output "${CMAKE_CURRENT_BINARY_DIR}"
|
|
DEPENDS main.c selftest.c
|
|
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
|
|
)
|
|
|
|
add_executable(selftest)
|
|
set_target_properties(selftest PROPERTIES
|
|
C_STANDARD 90
|
|
C_STANDARD_REQUIRED ON
|
|
C_EXTENSIONS OFF
|
|
)
|
|
|
|
# MSVC generates all kinds of warnings. We may want to fix these in the future
|
|
# and then unconditionally treat warnings as errors.
|
|
if (NOT MSVC)
|
|
set_target_properties(selftest PROPERTIES
|
|
COMPILE_WARNING_AS_ERROR ON
|
|
)
|
|
endif()
|
|
|
|
target_sources(selftest PRIVATE
|
|
main.c
|
|
selftest.c
|
|
"${CMAKE_CURRENT_BINARY_DIR}/clar.suite"
|
|
)
|
|
target_compile_definitions(selftest PRIVATE
|
|
CLAR_FIXTURE_PATH="${CMAKE_CURRENT_SOURCE_DIR}/expected/"
|
|
)
|
|
target_compile_options(selftest PRIVATE
|
|
$<IF:$<CXX_COMPILER_ID:MSVC>,/W4,-Wall>
|
|
)
|
|
target_include_directories(selftest PRIVATE
|
|
"${CMAKE_SOURCE_DIR}"
|
|
"${CMAKE_CURRENT_BINARY_DIR}"
|
|
)
|
|
target_link_libraries(selftest clar)
|
|
|
|
add_test(NAME build_selftest_suite
|
|
COMMAND "${CMAKE_COMMAND}" --build "${CMAKE_BINARY_DIR}" --config "$<CONFIG>" --target selftest_suite
|
|
)
|
|
set_tests_properties(build_selftest_suite PROPERTIES FIXTURES_SETUP clar_test_fixture)
|
|
|
|
add_test(NAME build_selftest
|
|
COMMAND "${CMAKE_COMMAND}" --build "${CMAKE_BINARY_DIR}" --config "$<CONFIG>" --target selftest
|
|
)
|
|
set_tests_properties(build_selftest PROPERTIES FIXTURES_SETUP clar_test_fixture)
|
|
|
|
add_test(NAME selftest COMMAND "${CMAKE_CURRENT_BINARY_DIR}/selftest" "$<TARGET_FILE:selftest_suite>")
|
|
set_tests_properties(selftest PROPERTIES FIXTURES_REQUIRED clar_test_fixture)
|