mirror of
https://github.com/boostorg/parser.git
synced 2026-01-19 04:22:13 +00:00
116 lines
3.9 KiB
CMake
116 lines
3.9 KiB
CMake
include_directories(${CMAKE_HOME_DIRECTORY})
|
|
|
|
include(CTest)
|
|
|
|
enable_testing()
|
|
|
|
add_custom_target(check COMMAND ${CMAKE_CTEST_COMMAND} --output-on-failure -j4 -C ${CMAKE_CFG_INTDIR})
|
|
|
|
##################################################
|
|
# Parser tests
|
|
##################################################
|
|
add_executable(parser_ parser.cpp)
|
|
set_property(TARGET parser_ PROPERTY CXX_STANDARD ${CXX_STD})
|
|
target_link_libraries(parser_ parser boost ${link_flags})
|
|
if (MSVC)
|
|
target_compile_options(parser_ PRIVATE /source-charset:utf-8 /bigobj)
|
|
elseif (USE_ASAN OR USE_UBSAN)
|
|
target_compile_options(parser_ PRIVATE ${compile_flags})
|
|
endif ()
|
|
add_test(NAME parser_ COMMAND parser_)
|
|
|
|
add_executable(parser_api parser_api.cpp)
|
|
set_property(TARGET parser_api PROPERTY CXX_STANDARD ${CXX_STD})
|
|
target_link_libraries(parser_api parser boost ${link_flags})
|
|
if (MSVC)
|
|
target_compile_options(parser_api PRIVATE /source-charset:utf-8 /bigobj)
|
|
elseif (USE_ASAN OR USE_UBSAN)
|
|
target_compile_options(parser_api PRIVATE ${compile_flags})
|
|
endif ()
|
|
add_test(NAME parser_api COMMAND parser_api)
|
|
|
|
add_executable(
|
|
compile_tests
|
|
compile_tests_main.cpp
|
|
compile_attribute.cpp
|
|
compile_seq_attribute.cpp
|
|
compile_or_attribute.cpp
|
|
compile_combining_groups.cpp
|
|
compile_all_t.cpp
|
|
)
|
|
set_property(TARGET compile_tests PROPERTY CXX_STANDARD ${CXX_STD})
|
|
target_link_libraries(compile_tests parser boost)
|
|
|
|
macro(add_test_executable name)
|
|
add_executable(${name} ${name}.cpp)
|
|
set_property(TARGET ${name} PROPERTY CXX_STANDARD ${CXX_STD})
|
|
target_link_libraries(${name} parser boost ${link_flags})
|
|
if (MSVC)
|
|
target_compile_options(${name} PRIVATE /source-charset:utf-8 /bigobj)
|
|
elseif (USE_ASAN OR USE_UBSAN)
|
|
target_compile_options(${name} PRIVATE ${compile_flags})
|
|
endif ()
|
|
add_test(NAME ${name} COMMAND ${name})
|
|
endmacro()
|
|
|
|
add_test_executable(github_issues)
|
|
add_test_executable(search)
|
|
add_test_executable(split)
|
|
add_test_executable(replace)
|
|
add_test_executable(transform_replace)
|
|
add_test_executable(hl)
|
|
add_test_executable(aggr_tuple_assignment)
|
|
add_test_executable(parser_perm)
|
|
add_test_executable(parser_attributes)
|
|
add_test_executable(parser_lazy_params)
|
|
add_test_executable(parser_if_switch)
|
|
add_test_executable(parser_rule)
|
|
add_test_executable(parser_rule_with_params)
|
|
add_test_executable(parser_action)
|
|
add_test_executable(parser_action_with_params)
|
|
add_test_executable(parser_symbol_table)
|
|
add_test_executable(parser_quoted_string)
|
|
add_test_executable(tracing)
|
|
add_test_executable(parse_empty)
|
|
add_test_executable(tuple_aggregate)
|
|
add_test_executable(class_type)
|
|
add_test_executable(case_fold_generated)
|
|
add_test_executable(no_case)
|
|
add_test_executable(merge_separate)
|
|
add_test_executable(parse_coords_new)
|
|
add_test_executable(parser_seq_permutations_1)
|
|
add_test_executable(parser_seq_permutations_2)
|
|
add_test_executable(parser_or_permutations_1)
|
|
add_test_executable(parser_or_permutations_2)
|
|
|
|
if (MSVC)
|
|
add_executable(vs_output_tracing tracing.cpp)
|
|
set_property(TARGET vs_output_tracing PROPERTY CXX_STANDARD ${CXX_STD})
|
|
target_link_libraries(vs_output_tracing parser boost ${link_flags})
|
|
target_compile_options(vs_output_tracing PRIVATE /source-charset:utf-8 /bigobj)
|
|
target_compile_definitions(vs_output_tracing PRIVATE BOOST_PARSER_TRACE_TO_VS_OUTPUT)
|
|
add_test(NAME vs_output_tracing COMMAND vs_output_tracing)
|
|
endif()
|
|
|
|
set(COVERAGE_TRACE_COMMAND
|
|
lcov --capture
|
|
-output-file ${PROJECT_BINARY_DIR}/coverage.info
|
|
--directory ${PROJECT_BINARY_DIR}
|
|
--include ${PROJECT_SOURCE_DIR}/include/*
|
|
)
|
|
|
|
set(COVERAGE_HTML_COMMAND
|
|
genhtml --legend -f -q
|
|
${PROJECT_BINARY_DIR}/coverage.info
|
|
--prefix ${PROJECT_SOURCE_DIR}
|
|
--output-directory ${PROJECT_BINARY_DIR}/coverage_html
|
|
)
|
|
|
|
add_custom_target(
|
|
coverage
|
|
COMMAND ${COVERAGE_TRACE_COMMAND}
|
|
COMMAND ${COVERAGE_HTML_COMMAND}
|
|
COMMENT "Generating coverage report"
|
|
VERBATIM
|
|
)
|