| cmake_minimum_required (VERSION 3.0) | |
| project (RegexClear C) | |
| function (output_results msg) | |
| message("results from: ${msg}") | |
| message("CMAKE_MATCH_0: -->${CMAKE_MATCH_0}<--") | |
| message("CMAKE_MATCH_1: -->${CMAKE_MATCH_1}<--") | |
| message("CMAKE_MATCH_2: -->${CMAKE_MATCH_2}<--") | |
| message("CMAKE_MATCH_COUNT: -->${CMAKE_MATCH_COUNT}<--") | |
| endfunction () | |
| function (check_for_success msg) | |
| if (CMAKE_MATCH_1 STREQUAL "0" AND | |
| CMAKE_MATCH_2 STREQUAL "1") | |
| message("Matched string properly") | |
| else () | |
| message("Failed to match properly") | |
| endif () | |
| output_results("${msg}") | |
| endfunction () | |
| function (check_for_failure msg) | |
| if (CMAKE_MATCH_1 STREQUAL "" AND | |
| CMAKE_MATCH_2 STREQUAL "") | |
| message("Matched nothing properly") | |
| else () | |
| message("Found a match where there should be none") | |
| endif () | |
| output_results("${msg}") | |
| endfunction () | |
| macro (do_regex_success msg) | |
| string(REGEX MATCH "(0)(1)" output "01") | |
| check_for_success("${msg}") | |
| endmacro () | |
| macro (do_regex_failure msg) | |
| string(REGEX MATCH "(0)(1)" output "12") | |
| check_for_failure("${msg}") | |
| endmacro () | |
| do_regex_success("setting up initial state") | |
| list(INSERT CMAKE_MODULE_PATH 0 | |
| "${CMAKE_CURRENT_SOURCE_DIR}/cmake") | |
| find_package(dummy) # Ensure cmMakefile::PushScope/PopScope work. | |
| check_for_failure("checking after find_package") | |
| do_regex_failure("clearing out results with a failing match") | |
| do_regex_success("making a successful match before add_subdirectory") | |
| add_subdirectory(subdir) | |
| check_for_success("ensuring the subdirectory did not interfere with the parent") # Ensure that the subdir didn't mess with this scope. |